Microservices-Architecture means: A software is strictly modularized, that is: A Software consists of many small services, which run as separate processes (with their own database and storage) and which communicate with each other via APIs. Since these microservices are independent of each other, they can run in distributed environments. In addition, each microservice can be written in its own programming language. Microservices can be easily scaled in a container infrastructure in a (public) cloud. If something fails, this usually only affects the module (micro service), not the entire system.

Advantages at a glance

  • Modularization
  • Team size/responsibility for a service
  • Specification on the level of a module (lower complexity)
  • Agile development of individual building blocks (independent development)
  • Autarkic services enable specific scaling
  • Technology independence

There are also - as always in life - a few disadvantages

  • Decentralized data storage and synchronization
  • CAP theorem/problem of distributed architecture
  • Additional monitoring and logging infrastructure
  • Higher complexity for operation (due to distributed architecture)
  • Negligence of reusability
Author

The author is a manager in the software industry with international expertise: Authorized officer at one of the large consulting firms - Responsible for setting up an IT development center at the Bangalore offshore location - Director M&A at a software company in Berlin.