The way applications are designed has changed dramatically with flexible infrastructure and the wide range of tools available in public clouds. Cloud-native applications leverage this ecosystem of resources to build flexible solutions and respond to business pressure.
The cloud concept has transcended the initial concept of infrastructure and platform as services (IaaS and PaaS respectively: For example - azure gaming and many more) to become a concept in which companies can manage these tools immediately and flexibly thanks to their liquefaction through programming.
This trigger has allowed designing a new generation of applications that are born with strong technical requirements (elastic scalability, incorporation of new technologies, real-time response, observability) and business (fast delivery times, ease of pivoting).
Cloud native applications squeeze these capabilities and allow us to design solutions quickly and resistant to time with microservice-oriented architectures and taking advantage of the specialization of each PaaS tool.
We can design the applications with two different strategies:
The development of native applications in the cloud allows them to be built as an ecosystem of functional components (microservices) that interact to solve tasks. This design model allows each component to have independent life cycles, adjust to demand and facilitate its maintenance. However, the price of this flexibility implies a greater effort in the control and governance of architecture.