What is serverless?

The term serverless refers to a cloud computing model where the cloud vendor owns the responsibility of provisioning, executing, and dynamically managing compute resources for the user, instead of the user owning the responsibility themselves.

Although the term incorrectly implies that no physical servers are involved, a serverless environment is one that abstracts away physical servers so that the end user need not be concerned with them. One of the main benefits of serverless computing is that a user pays only for the compute resources consumed to execute a service in the cloud. For example, traditionally to run applications in the cloud, you would have to spin up several virtualized servers to meet capacity, and pay for the usage even if your applications sit idle - wasting time and money. However, with serverless, the cloud vendor is responsible for ensuring that you just the right compute resources to meet any demand.

Serverless computing simplifies the process of developing and deploying code. Applications and code can be developed to be completely serverless, or they can be written to work in conjunction with traditional apps. Serverless databases remove the need to provision or scale database hardware. Additionally, a serverless architecture doesn’t require any setup or maintenance - including scaling to demand - from your staff, because the cloud vendor takes care of these responsibilities.

Most cloud vendors offer function-as-a-service (FaaS), which is a serverless environment for deploying and executing your applications. Kubernetes is also a type of serverless computing. These are generally more cost-effective methods of deployment than renting or owning a fixed quantity of servers because it eliminates periods of underutilization. Serverless environments are thus elastic - scaled up or down to apply the right amount of compute resources. Serverless computing can be done in a private or public cloud environment.