serverless computing (original) (raw)

What is serverless computing?

Serverless computing is a cloud computing execution model that lets software developers build and run applications and servers without having to provision or manage the back-end infrastructure. With serverless, the cloud vendor takes care of all routine infrastructure management and maintenance, including updating the operating system (OS), applying patches, managing security, system monitoring and planning capacity.

With serverless computing, developers purchase back-end services from cloud services vendors on a pay-as-you-go basis, which means they pay only for the services used. The main goal of serverless computing is to make it simpler for developers to write code designed to run on cloud platforms and to perform a specific role.

How serverless computing works

With serverless computing, developers don't have to deal with managing machine instances in the cloud. Instead, they can run code on cloud servers without having to configure or maintain the servers. Pricing is based on the actual amount of resources consumed by an application rather than on pre-purchased units of capacity.

Typically, if developers host their applications on virtual servers based in the cloud, they must set up and manage those servers, install OSes on them, monitor them and continually update the software.

With a serverless model, developers can write a function in their favorite programming language and post it to a serverless platform. The cloud service provider manages the infrastructure and the software, and maps the function to an application programming interface (API) endpoint, transparently scaling function instances on demand.

Advantages and disadvantages of serverless computing

The advantages of serverless computing include the following:

The disadvantages of serverless computing include the following:

Serverless computing use cases

There are numerous use cases for serverless computing:

Common uses for serverless platforms.

Serverless vs. other cloud back-end models

There are numerous differences between serverless computing and other cloud back-end models, such as infrastructure as a service (IaaS), backend as a service (BaaS) and PaaS.

Serverless vs. IaaS

Under the IaaS cloud computing model, developers pre-purchase units of capacity rather than on demand as with serverless computing. This means organizations pay public cloud vendors for server components that are always on to run the main components of their applications.

Consequently, an organization's server administrator and tech team are responsible for estimating how much capacity the company uses on average per month to select a pricing plan that meets its needs.

However, serverless architecture applications are deployed only when necessary, as an event triggers the application code to run. The public cloud vendor allocates the resources needed for that operation to run, and the company stops paying when the code finishes running.

Serverless vs. BaaS

One of the primary differences between BaaS and serverless computing is scalability. With serverless, the scale of the application automatically increases depending on app use. The cloud provider's infrastructure automatically assigns the servers or containers needed to initiate this increase.

BaaS might not automatically scale an application because some BaaS platforms have a request-per-second limitation to prevent automated scaling. However, many BaaS vendors offer platforms that work much like serverless computing and scale apps automatically.

In addition, since serverless architectures are event-driven, they run in response to events. But BaaS apps are typically not event-driven, which means they need more server resources.

Serverless vs. PaaS

Scaling up and down is easy with serverless apps because it depends on demand and doesn't require developer intervention.

While a PaaS offering also enables scalability, developers are required to set up the scaling parameters. In general, PaaS provides developers better control over their deployment environments than serverless computing.

With serverless, developers only pay for what they use. With PaaS, developers typically pay a monthly fee for services -- no matter how much they use -- which is much more predictable and might end up being less expensive.

Role of serverless computing in digital transformation

Serverless computing plays an important part in digital transformation. First, it enables developers to be more productive by helping them focus on writing code that has business value, without having to worry about the underlying infrastructure that will support the code. Regardless of vertical industry or company size, a serverless computing strategy can help increase developer productivity by eliminating management overhead.

Features of a serverless computing software development environment include the following:

What to look for in a serverless architecture

Organizations should look for serverless platforms that help them develop applications end to end, tapping services across databases, storage, messaging, data analytics, machine learning and smart assistants.

Some serverless cloud services provide scalability and cost savings, but they can create additional complexities -- such as constrained runtimes or vendor lock-in -- so that's also an important consideration when choosing a serverless architecture.

Developers often face a hard tradeoff between the ease and velocity of serverless computing and the flexibility and portability of containers. This is why most organizations benefit from a full-stack approach rather than limiting serverless to compute functions.

Serverless computing vendors and languages

The major serverless computing vendors include the following:

Development tools

There are numerous third-party vendor tools developers can use when they're working with serverless computing, including the following:

Future of serverless computing

The global serverless computing market is expected to increase by more than 23.17% between 2021 and 2026, according to a report from Mordor Intelligence.

"Advancements in computing technology are enabling organizations to incorporate a serverless environment, thereby augmenting the market," the report said. "The benefits of Serverless Computing such as unconditional development and deployment, built-in scalability among others are playing an important role in supporting the rapid adoption of Serverless Computing thereby fueling the growth of the market."

This was last updated in November 2022

Continue Reading About serverless computing

Dig Deeper on Systems automation and orchestration