In recent years, as developers, we have grown accustomed to the traditional ways of building applications and handling their deployments on the production infrastructure. In this traditional architecture, we developed applications where the application takes in a request from the Client, checks whether the Client is authorized to perform that action, and then moves on to executing that action.
Once the application was developed, we deployed it over a platform that would be compatible with our application. This involves the choice of the operating system, the kind of the infrastructure where this platform will be running, for example a bare-metal server, a VM, or a container, and then we maintained the infrastructure by handling its scalability and fixing any issues that may arise. For example, a simple system that manages employee payroll inside an organization will look like this:
In this case, the application keeps running on a server, waiting...