logo

Co jsou mikroslužby?

Mikroslužby představují architektonický přístup k vývoji softwarových aplikací jako soubor malých, nezávislých služeb, které spolu komunikují přes síť. Namísto budování monolitické aplikace, kde jsou všechny funkce pevně integrovány do jediné kódové základny, mikroslužby rozdělují aplikaci na menší, volně propojené služby.

velikonoční vajíčka pro android



Důležitá témata pro mikroslužby

1. Co jsou mikroslužby?

Mikroslužba je malá, volně propojená distribuovaná služba. Každá mikroslužba je navržena tak, aby vykonávala specifickou obchodní funkci a lze ji vyvíjet, nasazovat a škálovat nezávisle. Umožňuje vám vzít velkou aplikaci a rozložit ji nebo rozdělit na snadno ovladatelné malé komponenty s úzce definovanými odpovědnostmi. Je považován za stavební kámen moderních aplikací. Mikroslužby mohou být napsány v různých programovacích jazycích a rámcích a každá služba funguje jako miniaplikace sama o sobě.

2. Jak mikroslužby fungují?

Mikroslužby fungují tak, že složitou aplikaci rozdělují na menší, nezávislé části, které spolu komunikují a spolupracují a poskytují flexibilitu, škálovatelnost , a snadnější údržba, podobně jako stavba města z modulárních, vzájemně propojených komponent.



Pojďme pochopit, jak fungují mikroslužby:

  • Modulární struktura:
    • Architektura mikroslužeb rozděluje velké, monolitické aplikace na menší, nezávislé služby.
    • Každá služba je samostatný modul se specifickou obchodní schopností nebo funkcí.
    • Tato modulární struktura podporuje flexibilitu, snadnost vývoje a zjednodušenou údržbu.
  • Nezávislé funkce:
    • Každá mikroslužba je navržena tak, aby zvládla určitou obchodní funkci nebo funkci.
    • Jedna služba může například spravovat ověřování uživatelů, zatímco jiná zpracovává funkce katalogu produktů.
    • Tato nezávislost umožňuje specializovaný vývoj a údržbu každé služby.
  • Sdělení:
    • Mikroslužby spolu komunikují prostřednictvím dobře definovaných aplikačních programovacích rozhraní (API).
    • API slouží jako rozhraní, přes která si služby vyměňují informace a požadavky.
    • Tato standardizovaná komunikace umožňuje interoperabilitu a flexibilitu při integraci služeb.
  • Flexibilita:
    • Architektura mikroslužeb podporuje použití různých technologií pro každou službu.
    • To znamená, že různé programovací jazyky, rámce a databáze lze vybrat na základě specifických požadavků každé mikroslužby.
    • Týmy mají flexibilitu používat ty nejlepší nástroje pro jejich příslušné funkce.
  • Nezávislost a aktualizace:
    • Mikroslužby fungují nezávisle a umožňují aktualizace nebo úpravy jedné služby, aniž by to ovlivnilo celý systém.
    • Toto oddělení služeb snižuje riziko narušení celého systému během aktualizací, což usnadňuje implementaci změn a vylepšení.
    • Mikroslužby také přispívají k odolnosti systému tím, že zajišťují, že pokud jedna služba narazí na problémy nebo selhání, nezničí celý systém.
  • Škálovatelnost:
    • Mikroslužby nabízejí škálovatelnost tím, že umožňují přidávání instancí konkrétních služeb.
    • Pokud určitá funkce vyžaduje více prostředků, lze nasadit další instance této mikroslužby, aby zvládly zvýšenou poptávku.
    • Tato škálovatelnost je zásadní pro přizpůsobení se různým pracovním zátěžím.
  • Neustálé zlepšování:
    • Modulární povaha mikroslužeb umožňuje neustálé zlepšování.
    • Vývojové týmy mohou nezávisle pracovat na aktualizacích pro své příslušné služby a vydávat je.
    • Tato agilita umožňuje systému rychle se vyvíjet a reagovat na měnící se požadavky nebo potřeby uživatelů.

3. Jaké jsou hlavní součásti architektury Microservices?

Architektura mikroslužeb zahrnuje několik komponent, které spolupracují na vytvoření modulárního, škálovatelného a nezávisle nasaditelného systému.

Mezi hlavní součásti mikroslužeb patří :



  • Mikroslužby: Jedná se o jednotlivé samostatné služby, které zapouzdřují specifické obchodní schopnosti. Každá mikroslužba se zaměřuje na určitou funkci nebo vlastnost.
  • Brána API: API Gateway je centrální vstupní bod pro externí klienty pro interakci s mikroslužbami. Spravuje požadavky, zpracovává autentizaci a směruje požadavky na příslušné mikroslužby.
  • Registr a vyhledávání služeb: Tato komponenta sleduje umístění a síťové adresy všech mikroslužeb v systému. Zjišťování služeb zajišťuje, že se služby mohou dynamicky lokalizovat a komunikovat mezi sebou.
  • Load Balancer: Nástroje pro vyrovnávání zatížení distribuují příchozí síťový provoz mezi více instancí mikroslužeb. To zajišťuje, že pracovní zátěž je rovnoměrně rozložena, optimalizuje se využití zdrojů a brání tomu, aby se jakákoliv jednotlivá služba stala úzkým hrdlem.
  • Kontejnerizace: Kontejnery, jako je Docker, zapouzdřují mikroslužby a jejich závislosti. Orchestrační nástroje, jako je Kubernetes, spravují nasazení, škálování a provoz kontejnerů a zajišťují efektivní využití zdrojů.
  • Event Bus/Message Broker: Sběrnice událostí nebo zprostředkovatel zpráv usnadňuje komunikaci a koordinaci mezi mikroslužbami. Umožňuje službám publikovat a odebírat události, což umožňuje asynchronní komunikaci a oddělení.
  • Centralizované protokolování a monitorování: Centralizované nástroje pro protokolování a monitorování pomáhají sledovat výkon a stav mikroslužeb. Poskytují přehled o chování systému, zjišťují problémy a pomáhají při odstraňování problémů.
  • Databáze za mikroslužbu: Každá mikroslužba má obvykle svou vlastní databázi, která zajišťuje autonomii dat. To umožňuje službám nezávisle spravovat a škálovat úložiště dat podle jejich specifických požadavků.
  • Ukládání do mezipaměti: Mechanismy ukládání do mezipaměti lze implementovat pro zlepšení výkonu ukládáním často používaných dat blíže k mikroslužbám. To snižuje potřebu opakovaně získávat stejná data z databází.
  • Součásti odolnosti a odolnosti proti chybám: Implementace komponent pro odolnost proti chybám, jako jsou jističe a mechanismy opakování, zajišťuje, že systém dokáže elegantně zvládnout selhání v mikroslužbách a zotavit se bez dopadu na celkovou funkčnost.

4. Jaké jsou návrhové vzory mikroslužeb?

Když nastane problém při práci na systému, existují určité postupy, které je třeba dodržovat, a v mikroslužbách jsou tyto postupy návrhové vzory. Vzory návrhu mikroslužeb jsou takové postupy, které při dodržení vedou k efektivním architektonickým vzorům, které vedou k překonání problémů, jako je neefektivní správa těchto služeb, a také maximalizace výkonu. Při práci na aplikaci si člověk musí být vědom toho, který návrhový vzor použít pro vytvoření efektivní aplikace.

  • Agregátor
    • Vyvolal služby, aby získal požadované informace (související data) z různých služeb, použil určitou logiku a vytvořil výsledek.
    • Shromážděné údaje mohou být použity příslušnými službami. Kroky, které následují ve vzoru agregátoru, zahrnují požadavek přijatý službou a poté požadavek zadaný více jiným službám zkombinuje každý výsledek a nakonec odpoví na původní požadavek.
  • Brána API
    • API Gateway funguje jako řešení požadavku na mikroslužby.
    • Slouží jako vstupní bod ke všem mikroslužbám a vytváří jemně zrnité API pro různé klienty.
    • Odeslané požadavky jsou předány bráně API a nástroj pro vyrovnávání zatížení pomáhá při kontrole, zda je požadavek zpracován a odeslán příslušné službě.
  • Sourcing událostí
    • Tento návrhový vzor vytváří události týkající se změn (dat) ve stavu aplikace.
    • Pomocí těchto událostí mohou vývojáři sledovat záznamy o provedených změnách.
  • Škrtič
    • Strangler je také známý jako vzor vinné révy, protože funguje stejným způsobem, jakým réva škrtí strom kolem sebe. Pro každé volání URI (Uniform Resource Identifier) ​​probíhá volání tam a zpět a je také rozděleno do různých domén.
    • Zde zůstávají dvě samostatné aplikace vedle sebe ve stejném prostoru URI a zde bude brána v úvahu vždy jedna doména. Nová refaktorovaná aplikace tedy nahrazuje původní aplikaci.
  • Rozklad
    • Decomposition design pattern je dekompozice aplikace na menší mikroslužby, které mají svou vlastní funkcionalitu.
    • Na základě obchodních požadavků můžete aplikaci rozdělit na dílčí součásti. Například Amazon má samostatné služby pro produkty, objednávky, zákazníky, platby atd.

5. Co jsou anti-vzory v mikroslužbách?

Naučit se antipatterny v mikroslužbách je zásadní pro vyvarování se běžných chyb. Poskytuje pohled na potenciální problémy, které mohou ohrozit škálovatelnost systému, nezávislost a udržovatelnost. Díky pochopení těchto antipatternů mohou vývojáři činit informovaná rozhodnutí, implementovat osvědčené postupy a přispívat k úspěšnému návrhu a nasazení robustních architektur mikroslužeb.

Níže je uvedeno 5 hlavních antivzorů v mikroslužbách

  • Datový monolit: Sdílení centralizované databáze mezi mikroslužbami, které podkopává nezávislost a škálovatelnost.
  • Chatovací služby: Mikroslužby příliš komunikující pro malé úkoly, což vede ke zvýšené režii sítě a latenci.
  • Nadměrné používání mikroslužeb: Vytváření příliš mnoha mikroslužeb pro triviální funkce, zavádění zbytečné složitosti.
  • Neadekvátní hranice služeb: Špatně definované hranice mikroslužeb, což má za následek nejednoznačnost a nejasné odpovědnosti.
  • Ignorování zabezpečení: Zanedbávání bezpečnostních problémů v mikroslužbách, riskování zranitelností a narušení dat.

6. Příklad mikroslužeb v reálném světě

Pojďme pochopit Miscroservices pomocí reálného příkladu aplikace Amazon E-Commerce:

Internetový obchod Amazonu je jako obří puzzle složené z mnoha malých, specializovaných kousků nazývaných mikroslužby. Každá mikroslužba dělá specifickou práci, aby se ujistil, že vše běží hladce. Společně tyto mikroslužby fungují v zákulisí a poskytují vám skvělý zážitek z nakupování.

Níže jsou uvedeny mikroslužby zahrnuté v aplikaci Amazon E-commerce:

  1. Uživatelská služba: Spravuje uživatelské účty, ověřování a předvolby. Zabývá se registrací uživatelů, přihlašováním a správou profilů a zajišťuje uživatelům přizpůsobené prostředí.
  2. Vyhledávací služba: Pohání funkci vyhledávání na platformě a umožňuje uživatelům rychle najít produkty. Indexuje informace o produktech a poskytuje relevantní výsledky vyhledávání na základě uživatelských dotazů.
  3. Katalogová služba: Spravuje katalog produktů, včetně podrobností o produktu, kategorií a vztahů. Zajišťuje, že informace o produktech jsou přesné, aktuální a snadno dostupné uživatelům.
  4. Služba košíku : Spravuje nákupní košík uživatele a umožňuje mu přidávat, odebírat a upravovat položky před pokladnou. Zajišťuje bezproblémové nakupování tím, že sleduje vybrané položky.
  5. Služba seznamu přání : Spravuje seznamy přání uživatelů a umožňuje jim ukládat produkty pro budoucí nákup. Poskytuje uživatelům pohodlný způsob, jak sledovat a spravovat požadované položky.
  6. Služba přijímání objednávek : Přijímá a zpracovává objednávky zadané zákazníky. Ověřuje objednávky, kontroluje dostupnost produktů a zahajuje proces plnění objednávky.
  7. Služba zpracování objednávek: Řídí zpracování a plnění objednávek. Koordinuje se se skladovými, přepravními a platebními službami, aby bylo zajištěno včasné a přesné doručení objednávky.
  8. Platební služba : Zabývá se zpracováním plateb za objednávky. Bezpečně zpracovává platební transakce, integruje se s platebními bránami a spravuje data související s platbami.
  9. Logistická služba : Koordinuje logistiku doručení objednávky. Vypočítává náklady na dopravu, přiděluje dopravce, sleduje zásilky a spravuje trasy doručení.
  10. Skladová služba: Spravuje zásoby napříč sklady. Sleduje stav zásob, aktualizuje dostupnost zásob a koordinuje doplňování zásob.
  11. Notifikační služba : Zasílá uživatelům upozornění týkající se jejich objednávek, akcí a dalších relevantních informací. Informuje uživatele o stavu jejich interakcí s platformou.
  12. Služba doporučení : Poskytuje uživatelům přizpůsobená doporučení produktů. Analyzuje chování a preference uživatelů a navrhuje relevantní produkty, zlepšuje uživatelský dojem a zvyšuje prodeje.

7. Mikroslužby vs. Monolitická architektura?

Níže je tabulkové srovnání mezi mikroslužbami a monolitickou architekturou napříč různými aspekty:

Aspekt

Architektura mikroslužeb

Monolitická architektura

Styl architektury

Rozloženo na malé, nezávislé služby.

Jediná, těsně integrovaná kódová základna.

Struktura vývojového týmu

Malé, mezifunkční týmy pro každou mikroslužbu.

Větší, centralizovaný vývojový tým.

Škálovatelnost

Nezávislé škálování jednotlivých služeb.

Škálování zahrnuje replikaci celé aplikace.

Rozvinutí

Nezávislé nasazení služeb.

Celá aplikace je nasazena jako jeden celek.

Využití zdrojů

Efektivní využívání zdrojů jako služby lze škálovat nezávisle.

Zdroje alokované na základě celkových potřeb aplikace.

Rychlost vývoje

Rychlejší vývojové a zaváděcí cykly.

Pomalejší vývoj a nasazení díky celé kódové základně.

Flexibilita

Snazší přijetí nových technologií pro konkrétní služby.

Omezená flexibilita díky společnému technologickému zásobníku.

Údržba

Snazší údržba menších, zaměřených kódových základen.

Údržba může být pro velkou, monolitickou kódovou základnu složitá.

Testování

Nezávislé testování každé mikroslužby.

Komplexní testování celé aplikace.

Závislost na infrastruktuře

Méně závislé na konkrétních volbách infrastruktury.

Vázané na konkrétní infrastrukturu díky sdílené kódové základně.

8. Jak přejít z Monolithic na Microservices?

Monolitic-to-Microservices

Níže jsou uvedeny hlavní klíčové kroky k přechodu od monolitické k architektuře mikroslužeb:

  • Vyhodnotit Monolit: Porozumět existující monolitické aplikaci a identifikovat komponenty pro migraci.
  • Definujte mikroslužby: Rozdělte monolit na různé obchodní funkce pro mikroslužby.
  • Vzor Strangleru: Postupně nahrazujte monolitické části mikroslužbami a uplatňujte postup postupné migrace.
  • Definice API: Jasně definujte API a smlouvy pro bezproblémovou komunikaci mikroslužeb.
  • Implementace CI/CD: Nastavte Continuous Integration/Continuous Deployment (CI/CD) pro automatizované testování a nasazení.
  • Decentralizovat data: Přechod na přístup databáze za službu, snížení závislostí na centrální databázi.
  • Zjištění služby: Zavést mechanismy zjišťování služeb pro dynamickou komunikaci mezi mikroslužbami.
  • Protokolování a monitorování: Implementujte centralizované protokolování a monitorování pro přehled o výkonu mikroslužeb.
  • Průřezové obavy: Spravujte průřezové problémy, jako je zabezpečení a ověřování, konzistentně napříč mikroslužbami.
  • Iterativní vylepšení: Přijměte iterativní přístup, neustále zdokonalujte a rozšiřujte mikroslužby na základě zpětné vazby a vyvíjejících se potřeb.

9. Architektura orientovaná na služby (SOA) vs. architektura mikroslužeb

Níže je tabulkové srovnání architektury SOA (Service-Oriented Architecture) a mikroslužeb napříč různými aspekty:

Aspekt

Architektura orientovaná na služby (SOA)

Architektura mikroslužeb

Rozsah

Zahrnuje široký soubor architektonických principů.

Zaměřuje se na budování malých nezávislých služeb.

Velikost Služeb

Služby bývají rozsáhlejší a komplexnější.

Služby jsou malé, zaměřené a jednoúčelové.

Správa dat

Společný datový model a sdílené databáze jsou běžné.

Každá služba má svou vlastní databázi nebo úložiště dat.

Sdělení

Obvykle se spoléhá na standardizované protokoly, jako je SOAP.

Používá odlehčené protokoly, jako je REST nebo zasílání zpráv.

Technologická rozmanitost

Může mít různé technologie, ale často standardizovaný middleware.

Podporuje různé technologie pro každou službu.

Rozvinutí

Služby jsou často nasazovány nezávisle.

Podporuje nezávislé nasazení mikroslužeb.

Škálovatelnost

Běžné je horizontální škálování celých služeb.

Umožňuje nezávislé škálování jednotlivých služeb.

Rychlost vývoje

Pomalejší vývojové cykly díky větším službám.

Rychlejší vývojové cykly s menšími službami.

Flexibilita

Může být flexibilní, ale změny mohou ovlivnit více služeb.

Poskytuje flexibilitu díky nezávislým službám.

Využití zdrojů

Při nízké poptávce mohou být zdroje nedostatečně využívány.

Efektivní využití zdrojů, protože služby se mohou škálovat nezávisle.

Správa závislostí

Spoléhá na sdílené komponenty a centralizované řízení.

Každá mikroslužba spravuje své závislosti nezávisle.

Obtížnost přijetí

Obecně vyžaduje více plánování a organizačních změn.

Snadnější postupné přijetí a vhodné pro agilní vývoj.

10. Cloudové nativní mikroslužby

Mikroslužby a cloud se navzájem poskytují tím, že poskytují flexibilní, efektivní a spolupracující prostředí pro vytváření a provoz softwarových aplikací

  • Zjednodušené operace Poskytovatelé cloudu se starají o údržbu a zabezpečení infrastruktury, což usnadňuje týmy mikroslužeb. Mohou se soustředit na své specifické úkoly, aniž by si dělali starosti s technickými detaily.
  • Efektivita nákladů Kombinace mikroslužeb s cloudovými prostředky je jako platit za přesné nástroje a pracovní prostor, které používáte. Je to nákladově efektivní, protože nezůstanete uvízli nad zbytečným vybavením nebo prostorem.
  • Flexibilita Potřebujete více týmů nebo chcete změnit svůj výrobní proces? Cloud vám umožňuje rychle se přizpůsobit, například přeskupit pracovní stanice ve flexibilním pracovním prostoru.

11. Role mikroslužeb v DevOps

DevOps a mikroslužby jsou úzce propojeny a často jdou ruku v ruce s cílem zlepšit aspekty vývoje, nasazení a provozu moderních softwarových systémů. Zde je stručný přehled toho, jak DevOps a mikroslužby spolupracují:

  1. Průběžná integrace/průběžné zavádění (CI/CD):
    • V architektuře mikroslužeb může být každá služba nezávisle vyvinuta, testována a nasazena. Pro efektivní správu neustálých aktualizací a vydání souvisejících s mikroslužbami jsou klíčové kanály CI/CD.
    • Postupy DevOps kladou důraz na kanály CI/CD, které zahrnují automatizaci vytváření, testování a nasazení softwaru.
  2. Agilní vývoj:
    • Mikroslužby ze své podstaty podporují agilní vývoj tím, že umožňují týmům pracovat nezávisle na konkrétních službách, což usnadňuje rychlé opakování a zavádění nových funkcí.
    • DevOps podporuje spolupráci mezi vývojovými a provozními týmy a podporuje agilní vývojové postupy.
  3. Nepřetržité monitorování a protokolování
    • Architektura mikroslužeb vyžaduje robustní monitorování pro sledování stavu a interakcí mezi různými službami, což pomáhá při včasné detekci a řešení problémů. DevOps klade důraz na nepřetržité monitorování a protokolování pro přehled o výkonu aplikací v reálném čase.

12. Výhody používání architektury Microservices

  1. Modularita a oddělení:
    • Nezávislý vývoj: Mikroslužby jsou vyvíjeny a nasazovány nezávisle, což umožňuje různým týmům pracovat na různých službách současně.
    • Izolace poruch: Selhání v jedné mikroslužbě nemusí nutně ovlivnit ostatní a poskytuje zvýšenou izolaci chyb.
  2. Škálovatelnost:
    • Granulované měřítko: Každá mikroslužba může být škálována nezávisle na jejích specifických potřebách zdrojů, což umožňuje efektivní využití zdrojů.
    • Pružnost: Architektury mikroslužeb se mohou snadno přizpůsobit různým pracovním zátěžím dynamickým škálováním jednotlivých služeb.
  3. Technologická rozmanitost:
    • Svoboda technologie: Každá mikroslužba může být implementována pomocí nejvhodnějšího technologického zásobníku pro její specifické požadavky, což podporuje technologickou rozmanitost.
  4. Autonomní týmy:
    • Posílení týmu: Mikroslužby často umožňují malým týmům s různými funkcemi pracovat nezávisle na konkrétních službách, čímž podporují autonomii a rychlejší rozhodování.
    • Snížená koordinační režie: Týmy mohou uvolnit a aktualizovat své služby, aniž by vyžadovaly rozsáhlou koordinaci s ostatními týmy.
  5. Rychlé nasazení a nepřetržité dodání:
    • Rychlejší cykly uvolňování: Mikroslužby lze vyvíjet, testovat a nasazovat nezávisle, což umožňuje rychlejší cykly vydávání.
    • Průběžná integrace a nasazení (CI/CD): Automatizační nástroje podporují nepřetržitou integraci a postupy nasazení, čímž zvyšují rychlost a spolehlivost vývoje.
  6. Snadná údržba:
    • Izolované kódové báze: Menší, zaměřené kódové základny jsou snáze pochopitelné, udržovatelné a odstraňovat problémy.
    • Průběžné aktualizace: Jednotlivé mikroslužby lze aktualizovat nebo vrátit zpět, aniž by to ovlivnilo celou aplikaci.

13. Výzvy používání architektury Microservices

  1. Složitost distribuovaných systémů: Mikroslužby představují složitost distribuovaných systémů. Správa komunikace mezi službami, zpracování latence sítě a zajištění konzistence dat napříč službami může být náročné.
  2. Zvýšená vývojová a provozní režie: Rozložení aplikace na mikroslužby vyžaduje další úsilí z hlediska vývoje, testování, nasazení a monitorování. Týmy potřebují spravovat větší počet služeb, z nichž každá má vlastní kódovou základnu, závislosti a proces nasazení.
  3. Režie komunikace mezi službami: Mikroslužby spolu potřebují komunikovat přes síť. To může mít za následek zvýšenou latenci a další složitost při správě komunikačních protokolů, zpracování chyb a přenosu dat.
  4. Konzistence dat a správa transakcí: Udržování konzistence dat napříč mikroslužbami může být náročné. Implementace distribuovaných transakcí a zajištění integrity dat se stává složitým a tradiční ACID transakce nemusí být snadno dosažitelné.
  5. Výzvy při nasazení: Koordinace nasazení více mikroslužeb, zejména pokud mezi nimi existují závislosti, může být složitá. Zajištění konzistence a zamezení prostojům služeb během aktualizací vyžaduje pečlivé plánování.
  6. Složitost monitorování a ladění: Sledování a ladění se v prostředí mikroslužeb stávají složitějšími. Identifikace hlavní příčiny problémů může zahrnovat sledování požadavků napříč více službami a centralizované protokolování se stává zásadním pro efektivní ladění.

14. Příklady společností z reálného světa využívající architekturu Microservices

Organizace zaznamenaly masivní změnu při používání mikroslužeb ve svých aplikacích, a to je místo, kde přišel přechod z monolitické na mikroslužbu. Můžete si projít některé příklady ze skutečného života v aplikacích, které používají mikroslužbu:

  • Amazonka: Zpočátku byl Amazon monolitická aplikace, ale když se objevila mikroslužba, Amazon byl první platformou, která rozdělila svou aplikaci na malé komponenty, a tím přizpůsobila mikroslužbu. Díky své schopnosti měnit jednotlivé funkce a zdroje se funkčnost webu výrazně zlepšila.
  • Netflix: Netflix je jednou z takových společností, která využívá mikroslužby API . V roce 2007, kdy Netflix zahájil svůj přechod na službu streamování filmů, utrpěl obrovské výpadky služeb a problémy, pak přišla architektura mikroslužeb, která byla pro platformu požehnáním.
  • Uber: Když Uber přešel z monolitické přírody na mikroslužbu, zažil hladký průběh. Pomocí architektury mikroslužeb se ve větší míře zvýšil počet zobrazení a vyhledávání webových stránek.

15. Technologie umožňující architekturu mikroslužeb

  • Přístavní dělník:
    • Docker je kontejnerizační platforma, která umožňuje vývojářům zabalit aplikace a jejich závislosti do lehkých přenosných kontejnerů. Tyto kontejnery zapouzdřují vše potřebné ke spuštění aplikace, včetně kódu, běhového prostředí, knihoven a systémových nástrojů, což zajišťuje konzistenci napříč různými prostředími.
  • Kubernetes:
    • Kubernetes je open-source platforma pro orchestraci kontejnerů původně vyvinutá společností Google. Automatizuje nasazení, škálování a správu kontejnerových aplikací, poskytuje funkce pro plánování kontejnerů, zjišťování služeb, vyvažování zátěže a další.
  • Servisní síť:
    • Technologie Service mesh jako Istio a Linkerd poskytují vyhrazenou infrastrukturní vrstvu pro zpracování komunikace mezi službami, řízení provozu a pozorovatelnost v architekturách mikroslužeb. Nabízejí funkce, jako je vyrovnávání zátěže, zjišťování služeb, přerušení obvodu a shromažďování metrik.
  • API brány :
    • Brány API, jako jsou Kong a Tyk, slouží jako vstupní body pro externí klienty pro přístup k aplikacím založeným na mikroslužbách. Poskytují funkce, jako je směrování, autentizace, omezení rychlosti a transformace požadavku/odpovědi.
  • Event-Driven Architecture :
    • Architektury řízené událostmi usnadňují komunikaci mezi mikroslužbami tím, že jim umožňují produkovat a spotřebovávat události asynchronně. Technologie jako Apache Kafka, RabbitMQ a Amazon SNS/SQS poskytují škálovatelné a spolehlivé systémy zasílání zpráv pro vytváření mikroslužeb řízených událostmi.
  • Bezserverové výpočty:
    • Bezserverové platformy, jako je AWS Lambda, Azure Functions a Google Cloud Functions, nejsou exkluzivní pro mikroslužby, ale lze je použít k nasazení jednotlivých mikroslužeb bez správy základní infrastruktury, dalšího oddělení a škálování služeb.

16. Závěr

Teď, když to víte Co jsou mikroslužby , je velmi důležité mít o nich praktickou představu tím, že na nich budete pracovat. Tento článek zcela odpoví na všechny vaše pochybnosti o mikroslužbách, jejich architektuře, fungování, funkcích, aplikacích v reálném životě atd. Mikroslužby jsou při sestavování aplikace nezbytným pojmem. Proto je velmi důležité ji dobře ovládat.