How it works
The idea behind the microservice architectural pattern is very much in line with the Unix philosophy of "Do one thing, do it well". Microservices differ in that they are easily replaceable. Thus, such a service can be replaced or created by a new responsible development team within a short period of time.
Each microservice implements exactly one function with a focus on user experience. Microservices also differ in that they are developed only in groups. A team can equally be responsible for the development of multiple microservices, as long as they are technically related.
Microservices are isolated from other services and processes. This property makes it possible for basically any microservice to use a different programming language or database. Like all other services, microservices must be secure; processes such as monitoring or logging enable monitoring, authentication and authorization methods protect data from unauthorized access.
Software composed of individual microservices requires a large infrastructure. To manage the load balancing of external HTTP requests, so-called load balancers are used. The content delivery network controls the delivery of static content.
Elements of Microservices
A distinction is made between elements responsible for business requirements and platform and infrastructure services. Infrastructure and platform services perform central tasks such as monitoring or logging. Services that fulfill business requirements are supported by a number of platform or infrastructure services. They perform core tasks such as Web services logging, application and service monitoring, operational databases, configuration management, authorization, encryption, and authentication, as well as software distribution, autoscaling, A/B testing, and Testing with Error Injection (FIT).
There are also centralized routing services that take care of assigning URLs to instances with the appropriate services. Similarly, there are services for storing data, in particular caching, relational and NoSQL databases, and BLOB storage for arbitrary files.
Overview of the entire blog series on microservices