What is serverless computing
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. Contrast that with traditional cloud computing where chunks of resources need to be allocated in advance so that they’re available when they’re needed. With traditional cloud hosting, you might add 4GB of RAM so that your application has sufficient memory available for peaks in usage. With Serverless, your application might request and be allocated exactly 3.76GB of RAM to complete some 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 backend 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.
- Can be used for nearly any type of application or backend service.
- Serverless, usually enabled as “pay as you go”, enables the building of applications with increased agility and often, lower total cost of ownership.
- Developers can focus on their core product instead of managing and operating servers or runtimes.