Serverless Introduction
A Brief History of Cloud
Originally, companies started by moving their hardware off-premises into Data Centers. The idea was to alleviate the stresses of managing hardware on-site. This was okay initially but eventually companies became overwhelmed with having to stay in constant communication with the data centers to get things racked, stacked, updated, etc. Customers of the data centers would put in an order and it would take days to weeks to months to be fulfilled; this was unacceptable.
Eventually, in 2006, EC2 launched allowing companies to not only move away from on-premises hardware, but to also remove the bottleneck of having to put in an order with a data center (e.g. a Linux environment setup) and await fulfillment. They could not do all of this quickly themselves. This approach was considered IaaS or Infrastructure as a Service.
The was a problem that still existed with the IaaS approach. It still required managing infrastructure, which required always having someone on-hand with knowledge of setting up OSes, understanding the proper CPU and RAM allocation needs, etc. To solve this, Microsoft's Azure and AWS's Elastic Beanstalk were created. This is known as PaaS or Platform as a Service. This allows developers to essentially only have to worry about their code and not about infrastructure.
There were then Containers such as Docker. Still, there were server implications, scaling in response to load, etc.; Still the customer's responsibility.
Finally, AWS Lambda was release; and thus the inception of the Serverless paradigm. Serverless allows you to deploy code without any need to manage servers, software, scaling, or any other low-level details. The cloud provider (i.e. AWS) handles all of the server concerns and the customer can just focus on their product.