mikrosluzby
Obsah
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í.
mikrosluzby.txt · Poslední úprava: autor: admin
