Uživatelské nástroje

Nástroje pro tento web


mikrosluzby

Mikroslužby (Microservices)

Mikroslužby umožňují rozložit komplexní aplikaci na menší kusy, které spolu komunikují přes definovaná rozhraní (nejčastěji REST API). Každá mikroslužba se zaměřuje na jednu konkrétní obchodní funkci a může být vyvíjena, nasazována a škálována zcela samostatně.

[Image of Monolithic vs Microservices architecture diagram]

1. Klíčové vlastnosti

  • Autonomie: Každá služba může být napsána v jiném programovacím jazyce (např. katalog v Pythonu, platby v Javě) a mít vlastní databázi.
  • Specializace: Služba řeší jeden úkol (Single Responsibility Principle).
  • Decentralizace: Neexistuje žádný centrální bod, na kterém by závisel vývoj všech částí.
  • Odolnost: Pokud selže jedna mikroslužba (např. doporučování produktů), zbytek e-shopu (košík, platba) může stále fungovat.

2. Srovnání: Monolit vs. Mikroslužby

Vlastnost Monolitická architektura Architektura mikroslužeb
Vývoj Jednoduchý start, rychlé psaní kódu. Komplexnější na začátku, vyžaduje koordinaci.
Nasazení Musí se přenasadit celá aplikace. Lze aktualizovat pouze jednu malou službu.
Škálování Nutno kopírovat celý systém. Škáluje se jen ta služba, která je přetížená.
Chyby Jedna chyba může shodit celou aplikaci. Chyba je izolovaná v rámci jedné služby.

3. Komunikace mezi službami

Protože služby neběží v jednom procesu, musí spolu mluvit přes síť:

  • Synchronní: Pomocí protokolu HTTP/REST (čeká se na odpověď).
  • Asynchronní: Pomocí zpráv (Message Queues jako RabbitMQ nebo Kafka). Služba „A“ pošle zprávu „Objednávka vytvořena“ a dál se o ni nestará; služba „B“ si ji vyzvedne, až bude mít čas.

4. Nevýhody a výzvy

Mikroslužby nejsou „zlaté vejce“ a přinášejí nové problémy:

  • Režie sítě: Komunikace přes síť je pomalejší než volání funkcí v paměti.
  • Konzistence dat: Je těžké zajistit, aby data ve všech oddělených databázích byla v každém okamžiku stejná.
  • Komplexita provozu: Místo jedné aplikace musíte monitorovat, logovat a zabezpečovat stovky malých kontejnerů.

5. Technologie v pozadí

Provoz mikroslužeb by byl téměř nemožný bez moderních nástrojů:

  • Docker: Balí mikroslužby do izolovaných kontejnerů.
  • Kubernetes: Automatizuje správu a škálování těchto kontejnerů.
  • API Gateway: Jednotný vstupní bod pro uživatele, který směruje požadavky na správné mikroslužby.
Zajímavost: Giganti jako Netflix nebo Amazon mají tisíce mikroslužeb. Jejich systémy jsou tak komplexní, že k jejich zobrazení používají tzv. „Death Star“ diagramy, kde tisíce bodů (služeb) tvoří hustou pavučinu propojení.

Zpět na Rozcestník

mikrosluzby.txt · Poslední úprava: autor: admin