Moderní architektura založená na microservices přináší značnou provozní složitost. Jednotlivé služby jsou sice malé a nezávislé, ale ve větším systému jich mohou být desítky až stovky. Každá z nich musí řešit bezpečnost, vyvažování zátěže, monitoring a řízení provozu.
Zatímco u monolitické aplikace stačilo tyto oblasti řešit jednou, v microservices architektuře je nutné je řešit pro každou službu zvlášť. Kubernetes sice poskytuje základní podporu (např. objekt Service, L4 load balancing nebo service discovery), ale neřeší pokročilé scénáře, jako jsou:
- metriky na L7 úrovni,
- inteligentní směrování provozu,
- rate limiting,
- circuit breaking.
Samotný Kubernetes proto nestačí ke spolehlivému provozu většího počtu microservices. Jak systém roste, stává se jeho správa a observabilita stále obtížnější. Zde přichází ke slovu service mesh – dedikovaná infrastruktura, která řeší komunikaci mezi službami transparentně a centrálně, bez nutnosti zásahů do aplikačního kódu.
