In a traditional approach, you’ve to built and deploy web applications to a server. Your application runs on that server and you are responsible for provisioning and managing the resources for it. There are a few issues with this.
- You are charged for keeping the server up even when your applications are not serving out any requests.
- You are responsible for uptime and maintenance of the server and all its resources.
- You are also responsible for applying the appropriate security updates to the server.
- When your business usage scales you need to manage scaling up your server as well. As a result manage scaling it down when you don’t have as much usage.
For smaller companies and individual developers this can be a lot to handle for building and maintaining the actual application. At larger organizations this is handled by the infrastructure team and usually it is not the responsibility of the individual developer. However, the processes necessary to support this can end up slowing down development times. As you cannot just go ahead and build your application without working with the infrastructure team to help you get up and running.
As developers we’ve been looking for a solution to these problems and this is where serverless comes in.
What is Serverless Computing?
Serverless is a cloud computing execution model where the cloud provider dynamically manages the allocation and provisioning of servers. A serverless application runs in stateless compute containers that are event-triggered and fully managed by the cloud provider. Pricing is based on the number of executions rather than pre-purchased compute capacity.