The cloud is rapidly changing the way in which applications are designed and architected. We are shifting from monolithic applications to applications that are designed as loosely coupled services that can either communicate through APIs or are using asynchronous messaging and eventing. These applications need to be designed to easily scale horizontally, and new instances should be added or removed rapidly, and mostly automatically.
This brings big challenges to the underlying architecture of your applications. Operations should be able to be processed in parallel and deployments must be fully automated. The system as a whole, with all the different services included, should be resilient when failures occur.
Monitoring and telemetry must be embedded for the system as a whole as well, to gain insights into the health and performance...