Orchestrators managing health and diagnostics information When you create a microservice-based application, you need to deal with complexity. Of course, a
single microservice is simple to deal with, but dozens or hundreds of types and thousands of
instances of microservices is a complex problem. It isn’t just about building your microservice
architecture
—
you also need high availability, addressability, resiliency, health, and diagnostics if you
intend to have a stable and cohesive system.
Figure 4-22 . A Microservice Platform is fundamental for an application’s health management The complex problems shown in Figure 4-22 are hard to solve by yourself. Development teams should
focus on solving business problems and building custom applications with microservice-based
approaches. They should not focus on solving complex infrastructure problems; if they did, the cost of
any microservice-based application would be huge. Therefore, there are microservice-oriented
platforms, referred to as orchestrators or microservice clusters, that try to solve the hard problems of
building and running a service and using infrastructure resources efficiently. This approach reduces
the complexities of building applications that use a microservices approach.
Different orchestrators might sound similar, but the diagnostics and health checks offered by each of
them differ in features and state of maturity, sometimes depending on the OS platform, as explained
in the next section.
Additional resources •
The Twelve-Factor App. XI. Logs: Treat logs as event streams https://12factor.net/logs
•
Microsoft Diagnostic EventFlow Library GitHub repo.
https://github.com/Azure/diagnostics-eventflow
•
What is Azure Diagnostics https://learn.microsoft.com/azure/azure-diagnostics
66
CHAPTER 3 | Architecting container and microservice-based applications
•