What is serverless computing?

Serverless computing is a cloud computer architecture in which the cloud provider runs the server and dynamically manages the allocation of machine resources. The term “serverless” can be misleading as there are still servers providing these services, but all of the server space and infrastructure details are handled by the cloud provider.  Serverless delivers exact units of resources in response to a demand from the application. This is in contrast to traditional cloud computing where chunks of resources need to be allocated in advance so they’re available when needed. With traditional cloud hosting, you might add 4 GB of RAM to ensure your application has sufficient memory available for peaks in usage. With serverless, your application might request and be allocated exactly 3.76 GB of RAM to complete a particular task. The allocation is exactly what is needed to meet the demand of the application. With traditional cloud computing, the computer resources are dedicated to you whether you’re using them or not, while with serverless, you’re dynamically pulling only what you need from a vast ocean of resources.

In the early days of the web, anyone who wanted to build a web application had to own the physical hardware required to run a server, which is a cumbersome and expensive undertaking.  With the cloud, fixed numbers of servers or amounts of server space could be rented remotely. Developers and companies who rent these fixed units of server space generally over-purchase to ensure that a spike in traffic or activity wouldn’t exceed their monthly limits and break their applications. This meant that much of the server space that was paid for usually went to waste. Cloud vendors have enabled serverless computing, allowing developers to purchase back-end services on a flexible pay-as-you-go basis, meaning that developers only have to pay for the services they use. This is like switching from a cell phone data plan with a monthly fixed limit, to one that only charges for each byte of data that actually gets used.

 

Serverless computing attributes

  • Pricing is generally based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity, and can simplify the process of deploying code into production.
  • Infrastructure management like scaling, capacity planning, and maintenance operations are usually shielded from the developer or operator.
  • Serverless can be used for nearly any type of application or back-end service.
  • Serverless, usually enabled as pay-as-you-go, increases application-building agility and often lowers total cost of ownership.
  • Developers can focus on their core product instead of managing and operating servers or runtimes.

 

Suggested Reading and Related Topics

  • Capacity Planning: Discover how to plan and manage your resources efficiently to support your application’s performance requirements.
  • Horizontal Scaling and Vertical Scaling: Learn about the different scaling strategies for improving application performance and meeting growing demands.
  • Over-provisioned: Understand what it means to be over-provisioned and what the potential downsides are.