Skip to main content

What Is Serverless Computing?

Understanding serverless computing

Serverless computing providers enable software development teams to access tools they can use to write and deploy code without needing to provision, manage, or update servers and back-end infrastructure. Serverless computing is not really serverless — it’s a service that allows developers to avoid having to worry about servers. A cloud services provider is responsible for provisioning, maintaining, securing, and scaling the server infrastructure. Serverless solutions from public cloud providers are usually offered in an event-driven execution model, where customers pay only when serverless apps are being executed. When a serverless function is idle, there is no cost to the customer.

What is serverless computing vs. cloud computing?

Serverless computing is a type of cloud computing model. In cloud computing, a cloud services provider manages computing infrastructure like servers, storage, and networking, providing access to organizations and users via the internet. The cloud provider is responsible for maintaining, updating, and securing the service, and the customer can consume cloud resources on an on-demand, pay-as-you-use basis. In serverless computing, the cloud provider is responsible both for the cloud infrastructure as well as the scaling of apps. Serverless applications are typically deployed in containers that can run in any computing environment and can launch on demand when called.

How does serverless computing work?

Diagram illustrating serverless computing. Diagram illustrates a client querying a Network Time Protocol Server spun up on demand within a Docker container.

With serverless computing, developers can focus all their energy on writing front-end application code and business logic, deploying it to containers managed by the cloud service provider. The cloud provider spins up and provisions the required resources on demand when an application’s code is executed, scaling back to zero when execution stops. When an event triggers a serverless app to run, the cloud provider dynamically allocates and scales resources for the code, ending allocation of resources as soon as the app stops executing.

What is serverless computing vs. function as a service (FaaS)?

Function as a service (FaaS) is a cloud computing service that lets developers run code or containers without managing the infrastructure required to run the code. FaaS is an essential part of the serverless computing model, but serverless computing offers much more, including an entire stack of services such as serverless databases and storage, event streaming and messaging, and API gateways.

What are the benefits of serverless computing?

  • Reduced costs. Serverless computing is available on a pay-per-use model, where development teams can pay only for the services they use. This can be quite cost-effective compared to traditional methods of provisioning infrastructure for development environments, which can involve a great deal of over-provisioning and underutilization of assets.
  • Immense scalability. Serverless technologies can scale easily to accommodate demand and business requirements, while developers don’t have to worry at all about managing policies needed to scale up the code.
  • Accelerated time to market. Serverless architecture can significantly accelerate speed to market by enabling development environments to be provisioned incredibly quickly.
  • Greater productivity. Serverless solutions let developers focus on writing code, rather than managing infrastructure, giving them more time to innovate their front-end functionality and business logic.
  • Increased flexibility. Serverless platforms allow developers to write code in any language or framework.
  • Faster deployment. Developers can access serverless computing resources in minutes or hours, rather than waiting days, weeks, or months for on-premises infrastructure to be installed.

What are the drawbacks of serverless computing?

  • Potential latency. When a scalable serverless platform handles a function for the first time, there can be a delay or a “cold start” that may cause latency.
  • Difficulty debugging. Serverless instances make it more difficult to collect the data needed to debug and fix a serverless function, since serverless instances create new versions every time they are spun up.
  • Higher costs for long-running apps. Long-running tasks may cost more on a serverless environment than on a dedicated server or virtual machine.
  • Vendor lock-in. Relinquishing control of the underlying infrastructure of an IT stack can open up an organization to potential vendor lock-in, where changing providers may be prohibitively expensive.

What is serverless vs. PaaS?

Like serverless computing, platform as a service (PaaS) offerings allow developers to access application development tools without worrying about managing the back end. However, PaaS solutions do not scale as easily as serverless computing solutions, and the pricing model of a PaaS offering is not as precise as serverless.

What is serverless computing vs. managed Kubernetes?

Kubernetes is an open source container orchestration solution for managing and launching containerized applications. In a managed Kubernetes solution, third-party providers are responsible for some or all of the tasks involved in setting up and operating a Kubernetes platform. While serverless solutions offer little access to the underlying infrastructure, a Kubernetes solution provides full control over the application hosting environment. Serverless solutions scale more easily than a managed Kubernetes environment, and a pay-per-use pricing model may offer greater cost savings than Kubernetes.

What is serverless computing vs. BaaS?

Back-end as a service (BaaS) solutions are similar to serverless in that they allow developers to rent back-end services that allow them to avoid managing servers and back-end infrastructure. However, BaaS solutions may not automatically scale an application, and because they are not event-driven like serverless solutions, BaaS offerings may require more server resources.

Frequently Asked Questions (FAQ)

Cloud-native applications are software applications built to run on a cloud architecture, with features that leverage the benefits of cloud computing. Cloud-native applications are usually designed using containers and microservices connected by APIs, and they are dynamically orchestrated to handle resource management and balance workloads.

Cloud-based security is security practices and technology that are intended to protect infrastructure, applications, and data in the cloud. Cloud-based security solutions rely heavily on strong authentication, access controls, and data privacy protections. The goal of cloud-based security is to ensure compliance with regulatory frameworks and to prevent theft, leaks, and unauthorized access to sensitive data and private information in the cloud.

A multicloud environment is one where an organization uses cloud services from two or more public cloud providers, or two or more private cloud offerings. Multicloud environments avoid lock-in with a single vendor and enable organizations to access competitive pricing. A multicloud arrangement can also help protect critical business processes by providing data redundancy and recovery capabilities. And multicloud offerings usually deliver best-of-breed enterprise cloud security technologies to protect data and applications running in the cloud.

Why customers choose Akamai

Akamai powers and protects life online. Leading companies worldwide choose Akamai to build, deliver, and secure their digital experiences — helping billions of people live, work, and play every day. Akamai Connected Cloud, a massively distributed edge and cloud platform, puts apps and experiences closer to users and keeps threats farther away.

Explore all Akamai security solutions