Sdílet prostřednictvím


Vzory návrhu v cloudu

Architekti navrhují úlohy integrací služeb platformy, funkcí a kódu tak, aby splňovaly funkční i nefunkční požadavky. Abyste mohli navrhovat efektivní úlohy, musíte porozumět těmto požadavkům a vybrat topologie a metodologie, které řeší problémy s omezeními vaší úlohy. Vzory návrhu cloudu poskytují řešení mnoha běžných problémů.

Návrh systému se silně spoléhá na zavedené vzory návrhu. Infrastrukturu, kód a distribuované systémy můžete navrhovat pomocí kombinace těchto vzorů. Tyto vzory jsou zásadní pro vytváření spolehlivých, vysoce zabezpečených, nákladově optimalizovaných, provozních a vysoce výkonných aplikací v cloudu.

Následující vzory návrhu cloudu jsou nezávislé na technologiích, takže jsou vhodné pro jakýkoli distribuovaný systém. Tyto vzory můžete použít napříč Azure, dalšími cloudovými platformami, místními nastaveními a hybridními prostředími.

Jak vzory návrhu cloudu vylepšují proces návrhu

Cloudové úlohy jsou zranitelné vůči pádům distribuovaného computingu, což jsou běžné, ale nesprávné předpoklady týkající se fungování distribuovaných systémů. Mezi příklady těchto fallacií patří:

  • Síť je spolehlivá.
  • Latence je nula.
  • Šířka pásma je nekonečná.
  • Síť je zabezpečená.
  • Topologie se nezmění.
  • Je tu jeden správce.
  • Správa verzí součástí je jednoduchá.
  • Implementace pozorovatelnosti může být zpožděná.

Tyto chybné představy můžou vést k vadným návrhům úloh. Vzory návrhu neodstraní tyto chybné představy, ale pomáhají zvýšit povědomí, poskytovat strategie kompenzace a poskytovat zmírnění rizik. Každý vzor návrhu cloudu má kompromisy. Místo toho, jak ho implementovat, se zaměřte na to, proč byste měli zvolit konkrétní vzor.

Zvažte, jak tyto standardní vzory návrhu používat jako základní stavební bloky pro dobře navržený návrh úloh. Každý vzor návrhu v rozhraní Azure Well-Architected Framework představuje jeden nebo více jeho pilířů. Některé vzory můžou představovat kompromisy, které ovlivňují cíle jiných pilířů.

Katalog vzorů

Každý vzor v tomto katalogu popisuje problém, který řeší, důležité informace o použití vzoru a příklad založený na službách a nástrojích Microsoft Azure. Některé vzory zahrnují ukázky kódu nebo fragmenty kódu, které ukazují, jak implementovat vzor v Azure.

Vzor Shrnutí pilíře architektury Well-Architected
Velvyslanec Vytvořte pomocné služby, které odesílají síťové požadavky jménem spotřebitelské služby nebo aplikace. -Spolehlivost

-Bezpečnost
Vrstva proti korupci Implementuje adaptační vrstvu mezi moderní aplikací a systémem starší verze. - Efektivita provozu
Asynchronní požadavek-odpověď Oddělení back-endového zpracování od front-endového hostitele Tento vzor je užitečný, když back-endové zpracování musí být asynchronní, ale front-end vyžaduje jasnou a včasnou odpověď. - Efektivita výkonu
Backendy pro frontendy Vytvořte samostatné back-endové služby pro konkrétní front-endové aplikace nebo rozhraní. -Spolehlivost

-Bezpečnost

- Efektivita výkonu
Přepážka Izolujte prvky aplikace do fondů, aby v případě selhání jednoho prvku fungovaly i ostatní. -Spolehlivost

-Bezpečnost

- Efektivita výkonu
Doplňování mezipaměti Načtěte data na vyžádání do mezipaměti z úložiště dat. -Spolehlivost

- Efektivita výkonu
Choreografie Nechte jednotlivé služby rozhodnout, kdy a jak se obchodní operace zpracovává, a ne v závislosti na centrálním orchestrátoru. - Efektivita provozu

- Efektivita výkonu
Jistič Zpracovávejte chyby, jejichž oprava může trvat různou dobu, když se aplikace připojí ke vzdálené službě nebo zdroji. -Spolehlivost

- Efektivita výkonu
Kontrola deklarace identity Rozdělte velkou zprávu na kontrolu nároku a datovou část, abyste zabránili zahlcení systému zasílání zpráv. -Spolehlivost

-Bezpečnost

- Optimalizace nákladů

- Efektivita výkonu
Kompenzační transakce Vrátí zpět práci provedenou posloupností kroků, které společně tvoří nakonec konzistentní operaci. -Spolehlivost
Konkurující spotřebitelé Umožňuje více souběžných příjemců zpracovávat zprávy, které obdrží ve stejném kanálu zasílání zpráv. -Spolehlivost

- Optimalizace nákladů

- Efektivita výkonu
Konsolidace výpočetních prostředků Sloučení více úkolů nebo operací do jedné výpočetní jednotky. - Optimalizace nákladů

- Efektivita provozu

- Efektivita výkonu
CQRS Operace, které čtou data, od těch, které aktualizují data, oddělte pomocí různých rozhraní. - Efektivita výkonu
Stampy nasazení Nasaďte několik nezávislých kopií aplikačních komponent, včetně úložišť dat. - Efektivita provozu

- Efektivita výkonu
Event Sourcing K zaznamenání celé řady událostí, které popisují akce prováděné s daty v doméně, použijte úložiště jen pro připojení. -Spolehlivost

- Efektivita výkonu
Externí úložiště konfigurace Přesuňte informace o konfiguraci z balíčku nasazení aplikace do centralizovaného umístění. - Efektivita provozu
Federovaná identita Deleguje ověřování na externího zprostředkovatele identity. -Spolehlivost

-Bezpečnost

- Efektivita výkonu
Agregace brány Používá bránu k agregaci několika jednotlivých požadavků do jednoho. -Spolehlivost

-Bezpečnost

- Efektivita provozu

- Efektivita výkonu
Odlehčení brány Přesměrovává zpracování sdílených nebo specializovaných funkcí služby na proxy brány. -Spolehlivost

-Bezpečnost

- Optimalizace nákladů

- Efektivita provozu

- Efektivita výkonu
Směrování brány Směrujte požadavky na více služeb pomocí jednoho koncového bodu. -Spolehlivost

- Efektivita provozu

- Efektivita výkonu
geode Nasaďte back-endové služby napříč geograficky distribuovanými uzly. Každý uzel může zpracovávat požadavky klientů z libovolné oblasti. -Spolehlivost

- Efektivita výkonu
Monitorování koncových bodů stavu Implementuje v aplikaci funkční kontroly, ke kterým mají externí nástroje v pravidelných intervalech přístup prostřednictvím zveřejněných koncových bodů. -Spolehlivost

- Efektivita provozu

- Efektivita výkonu
Indexová tabulka Vytvářejte indexy přes pole v úložištích dat, na která se dotazy často odkazují. -Spolehlivost

- Efektivita výkonu
Volba vedoucího Koordinujte akce v distribuované aplikaci tak, že jako vedoucí zvolíte jednu instanci. Vedoucí spravuje kolekci spolupracujících instancí úloh. -Spolehlivost
Materializované zobrazení Vygenerujte předem vyplněná zobrazení dat v jednom nebo více úložištích dat, pokud jsou data špatně naformátovaná pro požadované operace dotazu. - Efektivita výkonu
Zasílání zpráv most Vytvořte zprostředkující, který umožňuje komunikaci mezi systémy zasílání zpráv, které nejsou jinak nekompatibilní. - Optimalizace nákladů

- Efektivita provozu
Kanály a filtry Rozdělí úlohu, která provádí komplexní zpracování, do řady samostatných prvků, které je možné využít znovu. -Spolehlivost
Prioritní fronta Určete prioritu požadavků odeslaných službám, aby se žádosti s vyšší prioritou zpracovávaly rychleji. -Spolehlivost

- Efektivita výkonu
Vydavatel/odběratel Umožňuje aplikaci oznamovat události více příjemcům asynchronně bez párování odesílatelů s příjemci. -Spolehlivost

-Bezpečnost

- Optimalizace nákladů

- Efektivita provozu

- Efektivita výkonu
karantény Před tím, než je úloha spotřebuje, se ujistěte, že externí prostředky splňují úroveň kvality odsouhlasené týmem. -Bezpečnost

- Efektivita provozu
Vyrovnávání zátěže založené na frontě Použijte frontu, která vytvoří vyrovnávací paměť mezi úlohou a službou, aby se přerušované vysoké zatížení vyrovnalo. -Spolehlivost

- Optimalizace nákladů

- Efektivita výkonu
Omezování rychlosti Vyhněte se chybám omezování nebo minimalizujte jejich výskyt tím, že řídíte spotřebu prostředků. -Spolehlivost
Opakovat Umožněte aplikacím zvládat očekávané dočasné chyby opakováním neúspěšných operací. -Spolehlivost
Sága Správa konzistence dat napříč mikroslužbami ve scénářích distribuovaných transakcí -Spolehlivost
Scheduler Agent Supervisor Koordinuje sadu akcí napříč distribuovanými službami a prostředky. -Spolehlivost

- Efektivita výkonu
Sekvenční konvoj Zpracovat sadu souvisejících zpráv v definovaném pořadí bez blokování jiných skupin zpráv. -Spolehlivost
Sharding (rozdělování dat na fragmenty) Rozdělit úložiště dat do sady horizontálních oddílů nebo shardů. -Spolehlivost

- Optimalizace nákladů
Postranní vozík Nasaďte komponenty do samostatného procesu nebo kontejneru, abyste zajistili izolaci a zapouzdření. -Bezpečnost

- Efektivita provozu
Hostování statického obsahu Nasaďte statický obsah do cloudové služby úložiště pro přímé doručování klientů. - Optimalizace nákladů
Strangler Fig Přírůstkově migrovat starší systém postupným nahrazením částí funkcí novými aplikacemi a službami. -Spolehlivost

- Optimalizace nákladů

- Efektivita provozu
Omezování Řízení spotřeby prostředků z aplikací, tenantů nebo služeb -Spolehlivost

-Bezpečnost

- Optimalizace nákladů

- Efektivita výkonu
Osobní klíč Pomocí tokenu nebo klíče můžete klientům poskytnout omezený, přímý přístup ke konkrétnímu prostředku nebo službě. -Bezpečnost

- Optimalizace nákladů

- Efektivita výkonu

Vzory orchestrace agentů AI

Předchozí vzory návrhu cloudu řeší běžné problémy v distribuovaných systémech, ale úlohy AI, které používají více autonomních agentů, vyžadují specializované koordinační přístupy. Tradiční vzory, jako je Scheduler Agent Supervisor nebo Choreografie, poskytují základní koncepty. Agenti umělé inteligence ale představují jedinečné výzvy, jako jsou nedeterministické výstupy, dynamické možnosti odůvodnění a potřeba inteligentních předání mezi specializovanými komponentami.

Úlohy AI, které obsahují více autonomních agentů, najdete v tématu Vzory orchestrace agentů AI. Tyto vzory doplňují vzory návrhu cloudu v tomto katalogu tím, že řeší specifické požadavky na koordinaci inteligentních, autonomních komponent, které spolupracují na plnění složitých výsledků.

Další kroky

Prohlédněte si vzory návrhu z pohledu pilíře Well-Architected Framework, jehož cílem je optimalizovat model.