- Mikroslužby umožňují vyvíjet modulární a škálovatelné aplikace rozdělením funkcí do nezávislých služeb.
- Nabízejí agilitu a rychlost ve vývoji, což usnadňuje začleňování změn.
- Jeho přijetí zlepšuje odolnost systému, protože selhání jedné služby neovlivní ostatní.
- Používají heterogenní technologie, což umožňuje týmům vybrat si nejlepší nástroj pro každý konkrétní úkol.
Proč jsou mikroslužby důležité?
Stručná historie mikroslužeb
Co jsou mikroslužby?
1. Definice mikroslužeb
2. Klíčové vlastnosti mikroslužeb
- Oddělování:Každá mikroslužba je nezávislá a lze ji vyvíjet, nasazovat a škálovat autonomně, aniž by to ovlivnilo ostatní služby.
- Jediná zodpovědnost: Každá mikroslužba odpovídá za konkrétní úkol nebo funkci podle principu jediné odpovědnosti.
- Heterogenní technologie: Mikroslužby lze rozvíjet v různé programovací jazyky a technologií, což vám umožní vybrat si pro každý úkol nejlepší nástroj.
- Odolnost: Protože jsou odděleny, selhání jedné mikroslužby neovlivní celý systém, čímž se zlepší celková odolnost.
- Škálovatelnost: Mikroslužby lze škálovat nezávisle podle potřeby a optimalizovat tak využití zdrojů.
Odkaz na Wikipedii o mikroslužbách
Architektura mikroslužeb
1. Komponenty architektury mikroslužeb
- Mikroslužby: Hlavní komponenty architektury, z nichž každá je zodpovědná za konkrétní úkol nebo funkci.
- Brána API: Centralizovaný vstupní bod, který směruje požadavky do příslušných mikroslužeb a spravuje zabezpečení, ověřování a směrování.
- Registrace služby: Komponenta, která udržuje aktuální záznam všech dostupných mikroslužeb a jejich umístění.
- Sledování a registrace: Nástroje pro sledování výkonu, stavu a protokolů mikroslužeb.
- Komunikace mezi službami: Mechanismy pro bezpečnou a efektivní komunikaci mikroslužeb, jako je HTTP/REST, zasílání zpráv nebo streamování událostí.
2. Komunikační vzorce mezi mikroslužbami
- Žádost/odpověď: Jedna mikroslužba odešle požadavek druhé a čeká na odpověď, běžně pomocí HTTP/REST.
- Asynchronní zasílání zprávMikroslužby komunikují prostřednictvím systému zasílání zpráv, jako jsou fronty zpráv nebo systémy streamování událostí. V tomto přístupu mikroslužba odesílá zprávy do fronty nebo tématu a ostatní mikroslužby tyto zprávy spotřebovávají asynchronně. Tento vzor umožňuje větší oddělení a škálovatelnost.
- Streamování událostí: Mikroslužby publikují a využívají nepřetržité streamy událostí v reálném čase pomocí systémů pro streamování událostí, jako je Apache Kafka nebo Amazon Kinesis. Tento přístup je vhodný pro případy použití, které vyžadují zpracování dat v reálném čase a vysokou škálovatelnost.
- Choreografie akcí: Místo přímé komunikace mezi mikroslužbami se používá centralizovaná sběrnice událostí, kde mikroslužby publikují a naslouchají relevantním událostem. Každá mikroslužba reaguje na události nezávisle a podporuje větší oddělení.
- Vzdálená volání procedur (RPC)Mikroslužby mohou komunikovat prostřednictvím protokolů RPC, jako je gRPC, které poskytují efektivnější, binárně orientovanou komunikaci ve srovnání s HTTP/REST.
- Sdílené databázové dotazyV některých případech mohou mikroslužby přistupovat ke sdíleným databázím a dotazovat se na ně relevantní data, i když tento přístup může představovat zvýšené propojení a mělo by se s ním zacházet opatrně.
Výhody mikroslužeb
1. Agilita a rychlost rozvoje
2. Škálovatelnost a odolnost
3. Snadná údržba
4. Přijímání nových technologií
5. Výzvy mikroslužeb
6. Složitost řízení
7. Distribuované monitorování a protokolování
8. Testování a nasazení
9. Bezpečnost a dodržování předpisů
Mikroslužby vs. Monolitická architektura
Srovnání přístupů
- Monolitická architektura: Aplikace je vytvořena jako jeden celek, kde jsou všechny komponenty těsně propojeny a nasazeny jako jeden balíček.
- Architektura mikroslužeb: Aplikace je rozdělena na menší, nezávislé služby, z nichž každá je zaměřena na konkrétní úkol nebo funkci a je nasazena individuálně.
Kdy zvolit mikroslužby?
Případy použití mikroslužeb
1. Elektronické obchodování
2. Finanční služby
3. Lékařská péče
4. Zábava a média
Populární nástroje a frameworky
1. Správa kontejnerů (Docker, Kubernetes)
2. Orchestrování služeb
3. Brány API
4. Monitorování a záznam
Doporučené postupy pro implementaci mikroslužeb
1. Soudržný design služeb
2. Automatizace infrastruktury
3. Proaktivní monitorování
4. Distribuovaná správa dat
Budoucnost mikroslužeb
Trendy a pokroky v mikroslužbách
- Mikroslužby řízené událostmiOčekává se, že komunikační vzory řízené událostmi, jako je streamování událostí a asynchronní zasílání zpráv, získají větší popularitu v architekturách mikroslužeb.
- Služby bez serveru: Kombinace mikroslužeb a bezserverových služeb se prosazuje, což umožňuje větší škálovatelnost a efektivitu využití zdrojů.
- Umělá inteligence a strojové učení: Začlenění schopností umělé inteligence a strojového učení do mikroslužeb může umožnit chytřejší a adaptivnější aplikace.
- Servisní síťSítě služeb, jako jsou Istio a Linkerd, usnadňují správu a monitorování mikroslužeb ve složitých prostředích a poskytují funkce, jako je inteligentní směrování, řízení provozu a odolnost.