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