Serverless: History

Serverless - Beyond the buzzword is a book about Serverless aiming to give you all the information you need to make informed business decisions. This is part of a series of articles summarising some of the topics from the book.
More information about Serverless - Beyond the buzzword can be found here:

You can also watch the video version of this here:

What has transpired over the last decades to get us where we are today with Serverless. One of the really key technology innovations were virtual servers. These were actually developed in the seventies by IBM. But it wasn't until the two thousands that they became popular outside of mainframes. Virtual servers are a way to split a physical server into smaller software-defined servers. For example, physical mail and intranet servers could now be combined on a single shared physical server by moving each into a virtual server. This led to servers having higher utilisation and organisations needing less physical servers which resulted in massive cost savings.

When cloud providers first launched, self-managed virtual servers were really their core service. They provided a way to very easily spin up your own virtual server and manage it through a web interface. You could run it for as long as you needed then shut it down again when you were done and pay only for the time that it was running. The cloud providers included some support services such as networking, security and storage. This offering was called Infrastructure-as-a-Service (IaaS).

The cloud providers evolved this service, adding a platform above it which included the operating system, scaling, backup and other features. This meant that you no longer needed to manage the operating system or manually configure individual components to achieve scaling and redundancy. You could simply deploy your application into this platform, and it would handle spinning up the virtual servers, setting up auto-scaling and networking. This evolution was called Platform-as-a-Service (PaaS).

While infrastructure was evolving, so too was application development and deployment, and this is around when containers started to become popular. Google was especially focused on containers with their Kubernetes service. The difference between containers and virtual servers is that virtual servers are effectively a whole server at the software level. It has an operating system which means that the time to launch a virtual server can be quite long - anywhere from one to five or more minutes before it is ready to use. Containers exist on top of an operating system, so they contain only software and code. Because of that, they can launch much faster - measured in seconds rather than minutes. This can be considered Platform-as-a-Service, but it's sometimes called Containers-as-a-Service. Either way, with containers you generally still need to manage and pay for the underlying servers that the containers are running on.

Amazon then evolved the concept of virtual servers and containers further to create a new service. A service that can launch an application in milliseconds, execute the task, then shut it down again. This service had to have certain limits in place to guarantee that it could run this fast and be fully managed. This was Amazon's Lambda service that was launched in 2014. You configure the service and deploy your application code into it, and the cloud provider fully manages everything else. This evolution was called Function-as-a-Service, and it was really the beginning of true Serverless applications in the cloud.

To go deeper on this topic and to read many more related topics about Serverless Architecture please buy the book Serverless - Beyond the buzzword here:

Serverless - Beyond the buzzword. The book about the strategic impact of Serverless architecture