what is serverless computing

1 year ago 57
Nature

Serverless computing is a cloud computing execution model that allows developers to build and run applications without having to manage servers. In this model, the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers. Although servers are still used by cloud service providers to execute code for developers, developers of serverless applications are not concerned with capacity planning, configuration, management, maintenance, fault tolerance, or scaling of containers, VMs, or physical servers.

Key features of serverless computing include:

  • No infrastructure management: Using fully managed services enables developers to avoid administrative tasks and focus on core business logic. With a serverless platform, you simply deploy your code, and it runs with high availability.
  • Dynamic scalability: Serverless computing allows for automatic scaling, built-in high availability, and a pay-for-use billing model to increase agility and optimize costs.
  • Short bursts of computing: Serverless computing does not hold resources in volatile memory; computing is rather done in short bursts with the results persisted to storage.
  • Abstraction: Serverless computing offers a level of abstraction that enables developers to minimize the time and resources invested in infrastructure management.

Serverless computing can simplify the process of deploying code into production. Serverless code can be used in conjunction with code deployed in traditional styles, such as microservices or monoliths. Alternatively, applications can be written to be purely serverless and use no provisioned servers at all.

The most common use case of serverless today is supporting microservices architectures. The microservices model is focused on creating small services that do a single job and communicate with one another using APIs. While microservices can also be built and deployed on traditional infrastructure, serverless computing can offer benefits such as reduced operational costs and increased developer productivity.