Micro Services
We are in the era of cloud computing and many companies are already moving their processing workloads from bare metal deployments in to private or public cloud deployments. This transition is not only about taking existing deployments and move them into containerized one, but it's also a transition in solution architecture and in how things are operated. In particular, the paradigm of "micro services" fits particularly well into cloud deployments and operations.
To set the scene, what is a micro service? https://microservices.io/ summarizes the micro service architecture as follows:
...an architectural style that structures an application as a collection of services that are:
Highly maintainable and testable
Loosely coupled
Independently deployable
Organized around business capabilities
Owned by a small team
These properties show what kind of values this architecture principle can bring to an organization in terms of processes, ways of working and structure.
If we look more into the technical side of a micro service architecture, we can identify other kinds of benefits. By deploying your solution in a micro service manner on a capable cloud native application platform, you can achieve benefits such as:
Fully automated lifecycle control
Controlled zero downtime upgrades
Adaptive and dynamic scaling (which gives you cost control and availability)
Abstraction from underlying infrastructure (which gives you cloud environment agnostic systems)
Clearly defined APIs and separation of concerns
An alignment with a rich ecosystem of cloud native operations tools