Physical servers wasted lots of capacity. Virtual machines divided a single physical server into multiple virtual ones.
Containers enabled the developer to break down a large monolithic program into discrete pieces, which helps it run more efficiently. More recently, with the rise of serverless or event-driven computing, the whole idea of infrastructure is being abstracted away.
Serverless computing is not truly serverless but it removes the need for developers to worry about servers. Today, so much coding goes into connecting the program’s components to run on whatever hardware is designated. With serverless, the cloud vendor handles all of that for the developer.
The Primary advantage of serverless computing is that it allows developers to strip away all of the challenges associated with managing servers. There is no provisioning, deploying, patching or monitoring.
This allows developers to reduce the entire coding process to the function level. The programmer defines the event or function and the cloud provider figures out the exact amount of underlying infrastructure required to run it perhaps a single line of code.
Serverless computing offers a way for developers to concentrate on just the code by leaving the infrastructure management to the provider. Serverless allows developers to concentrate solely on the user’s needs without having to worry about what it takes to actually run the program.