The introduction of the container technologies, Docker and Kubernetes, revolutionized the software delivery process by guaranteeing parity across environments on-premises and in the cloud. This provided significant benefits in terms of repeatability and predictability but required considerable effort and skill to manage container clusters. As a result, companies looking to focus on developing systems of differentiation and innovation started turning to Serverless. Serverless architectures free teams from performing undifferentiating software delivery tasks, such as infrastructure provisioning, operations configuration, and scaling.

In a Serverless model, developers write code that gets executed by the cloud runtime as a result of an event. This code can be written in a variety of languages and uploaded to the cloud using a CI/CD pipeline or a zip file. Functions can be independently developed, packaged, and deployed resulting in high velocity and agility.

Benefits of Serverless include:

· Rapid time to market
· Ease of scale
· Lower Cost
· Increased Productivity
· Reduced complexity
· Reduced code (Bindings abstract the commonly used services)

Use cases for Serverless include:

· Decomposing or extending monolithic applications
· Process automation
· Experiments and prototyping
· APIs and Microservices
· Web and Mobile Back ends
· Real-time stream processing
· Real-time bot messaging

Free Serverless tiers provided by Microsoft (Azure Functions) allow developers to experiment at no cost.

Serverless architectures are transforming the way we build applications. It removes a substantial amount of operational overhead required to run IT platforms and allows companies to focus their energy on what differentiates them from the competition.