Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Styl architektury je řada architektur, které sdílejí specifické vlastnosti. N-tier je běžným stylem architektury například. V poslední době začínají architektury mikroslužeb získávat laskavost. Styly architektury nevyžadují použití konkrétních technologií, ale některé technologie jsou vhodnější pro určité architektury. Kontejnery jsou například vhodné pro mikroslužby.
Identifikovali jsme sadu stylů architektury, které se běžně vyskytují v cloudových aplikacích. Článek pro každý styl obsahuje následující součásti:
- Popis a logický diagram stylu
- Doporučení, kdy zvolit tento styl
- Výhody, výzvy a osvědčené postupy
- Doporučené nasazení, které používá relevantní služby Azure
Rychlá prohlídka stylů
Tato část obsahuje stručný přehled stylů architektury, které jsme identifikovali, spolu s některými důležitými aspekty jejich použití. Tento seznam není vyčerpávající. Další podrobnosti najdete v odkazovaných článcích.
N-vrstvá
N-vrstvá je tradiční architektura pro podnikové aplikace, která rozděluje aplikaci na logické vrstvy a fyzické vrstvy. Každá vrstva má určitou odpovědnost a vrstvy spravují závislosti pouze voláním do vrstev pod nimi. Mezi typické vrstvy patří prezentace, obchodní logika a přístup k datům.
N-úrovňové architektury jsou vhodné pro migraci stávajících aplikací, které už používají vrstvenou architekturu. Tento přístup vyžaduje minimální změny při přechodu na Azure a podporuje smíšená prostředí s místními i cloudovými komponentami. Horizontální vrstvení ale může ztížit zavedení změn, aniž by to ovlivnilo více částí aplikace, což omezuje flexibilitu pro časté aktualizace.
Web –Queue-Worker
Web-Queue-Worker je architektura, která se skládá z webového front-endu, fronty zpráv a back-endového pracovního procesu. Webový front-end zpracovává požadavky HTTP a interakce uživatelů, zatímco pracovní proces provádí úlohy náročné na prostředky, dlouhotrvající pracovní postupy nebo dávkové operace. Komunikace mezi front-endem a pracovním procesem probíhá prostřednictvím asynchronní fronty zpráv.
Tato architektura je ideální pro aplikace s relativně jednoduchými doménami, které mají určité požadavky na zpracování náročné na prostředky. Je snadné pochopit a nasadit spravované Azure služby, jako je App Service a Azure Functions. Front-end a pracovní proces můžete škálovat nezávisle, abyste zajistili flexibilitu při přidělování prostředků. Ale bez pečlivého návrhu se obě komponenty mohou stát velkými a monolitickými.
Mikroslužby
Architektura mikroslužeb rozloží aplikace do kolekce malých autonomních služeb. Každá služba implementuje jednu obchodní funkci v rámci omezeného kontextu a je samostatná s vlastním úložištěm dat. Služby komunikují prostřednictvím dobře definovaných rozhraní API a dají se vyvíjet, nasazovat a škálovat nezávisle.
Mikroslužby umožňují týmům pracovat nezávisle a podporovat časté aktualizace s vyšší rychlostí vydávání. Tato architektura je vhodná pro složité domény, které vyžadují časté změny a inovace. Přináší ale významnou složitost v oblastech, jako je zjišťování služeb, konzistence dat a správa distribuovaných systémů. Úspěch vyžaduje vyspělé postupy vývoje a DevOps, díky kterým je vhodnější pro organizace s pokročilými technickými možnostmi.
Architektura založená na událostech
Architektury řízené událostmi používají model publikování a odběru , kde producenti událostí generují streamy událostí a příjemci událostí reagují na tyto události téměř v reálném čase. Producenti a spotřebitelé jsou od sebe odděleni, přičemž komunikace probíhá prostřednictvím kanálů událostí nebo zprostředkovatelů. Tato architektura podporuje jednoduché zpracování událostí i komplexní analýzu vzorů událostí.
Architektury řízené událostmi jsou excelované ve scénářích, které vyžadují zpracování v reálném čase s minimální latencí. Mezi příklady patří řešení IoT, finanční obchodní systémy nebo aplikace, které potřebují zpracovávat velké objemy streamovaných dat. Architektury řízené událostmi poskytují vynikající škálovatelnost a izolaci chyb, ale představují problémy související s zaručeným doručováním, řazením událostí a konečnou konzistencí napříč distribuovanými komponentami.
Velký objem dat
Architektury velkých objemů dat zpracovávají příjem, zpracování a analýzu dat, která jsou pro tradiční databázové systémy příliš velká nebo složitá. Mezi tyto architektury obvykle patří komponenty pro úložiště dat (například datová jezera), dávkové zpracování pro historickou analýzu, zpracování datových proudů pro přehledy v reálném čase a analytické úložiště dat pro generování sestav a vizualizaci.
Architektury velkých objemů dat jsou nezbytné pro organizace, které potřebují extrahovat přehledy z masivních datových sad, podporovat prediktivní analýzy pomocí strojového učení nebo zpracovávat streamovaná data ze zařízení IoT v reálném čase. Moderní implementace často používají spravované služby, jako je Microsoft Fabric, aby zjednodušily vytváření a údržbu řešení pro velké objemy dat.
Výkonné výpočetní systémy
Architektury velkých výpočetních prostředků podporují rozsáhlé úlohy, které pro výpočetně náročné operace vyžadují stovky nebo tisíce jader. Práce se dá rozdělit na samostatné úlohy, které běží na mnoha jádrech současně, přičemž každý úkol přijímá vstup, zpracovává je a vytváří výstup. Úkoly můžou být nezávislé (trapně paralelní) nebo úzce propojené vyžadující vysokorychlostní komunikaci.
Velký výpočetní výkon je nezbytný pro simulace, modelování finančních rizik, vědecké výpočty, analýzu technického zatížení a 3D vykreslování. Azure nabízí možnosti, jako je Azure Batch pro spravované úlohy s velkými výpočetními prostředky nebo sadu HPC Pack pro tradiční správu clusterů. Tyto architektury můžou v případě potřeby rozšířit kapacitu na vyžádání a škálovat na tisíce jader.
Styly architektury jako omezení
Styl architektury umisťuje omezení návrhu, včetně sady prvků, které se můžou objevit, a povolených vztahů mezi těmito prvky. Omezení řídí "tvar" architektury omezením vesmíru voleb. Když architektura odpovídá omezením určitého stylu, objeví se některé žádoucí vlastnosti.
Mezi omezení v mikroslužbách patří například:
- Služba představuje jedinou odpovědnost.
- Každá služba je nezávislá na ostatních službách.
- Data jsou pro službu, která je vlastníkem, soukromá. Služby nesdílely data.
Když dodržujete tato omezení, získáte systém, který vám umožní provést následující akce:
- Nezávisle nasaďte služby.
- Izolujte chyby.
- Nabízení častějších aktualizací
- Jednodušší zavedení nových technologií do aplikace
Každý styl architektury má své vlastní kompromisy. Než zvolíte styl architektury, je nezbytné porozumět základním principům a omezením. Bez toho, abyste porozuměli, riskujete, že vytvoříte návrh, který povrchně odpovídá stylu, aniž by si uvědomil jeho plné výhody. Zaměřte se více na to, proč vybíráte konkrétní styl, než jak ho implementovat. Buďte praktickí. Někdy je lepší uvolnit omezení než honit čistotu architektury.
V ideálním případě by měla být volba stylu architektury vykonána se vstupem od informovaných zúčastněných stran, které se podílejí na pracovních úlohách. Tým úloh by měl začít identifikací povahy problému, který řeší. Pak by měly definovat klíčové obchodní faktory a odpovídající charakteristiky architektury, označované také jako nefunkční požadavky, a určit jejich prioritu. Pokud je například čas uvedení na trh kritický, může tým určit prioritu udržovatelnosti, testovatelnosti a spolehlivosti, aby umožnil rychlé nasazení. Pokud má tým úzká rozpočtová omezení, může mít přednost proveditelnost a jednoduchost. Výběr a udržování stylu architektury není jednorázový úkol. Vyžaduje průběžné měření, ověřování a upřesnění. Vzhledem k tomu, že pozdější změna směru architektury může být nákladná, je často vhodné investovat více úsilí předem, aby podporovala dlouhodobou efektivitu a snížila rizika.
Následující tabulka shrnuje, jak jednotlivé styly spravují závislosti a typy domén, které jsou pro každý styl nejvhodnější.
| Styl architektury | Správa závislostí | Typ domény |
|---|---|---|
| N-vrstva | Vodorovné vrstvy dělené podsítím | Tradiční obchodní doména. Frekvence aktualizací je nízká. |
| Web-Queue-Worker | Front-endové a back-endové úlohy oddělené asynchronním zasíláním zpráv. | Relativně jednoduchá doména s některými úlohami náročnými na prostředky |
| Mikroslužby | Vertikálně (funkčně) rozložené služby, které se vzájemně volají prostřednictvím rozhraní API. | Složitá doména. Časté aktualizace. |
| Architektura řízená událostmi | Producent nebo spotřebitel. Nezávislé zobrazení pro každý subsystém. | Internet věcí (IoT) a systémy v reálném čase. |
| Velké objemy dat | Rozdělte obrovskou datovou sadu na malé bloky dat. Paralelní zpracování místních datových sad | Analýza dat v dávkovém režimu a v reálném čase. Prediktivní analýza pomocí strojového učení |
| Velké výpočetní prostředky | Přidělení dat tisícům jader | Domény náročné na výpočetní prostředky, jako je simulace. |
Zvažte výzvy a výhody
Omezení také vytvářejí výzvy, takže je důležité pochopit kompromisy při přijetí některého z těchto stylů. Určete, jestli výhody stylu architektury převáží problémy , pro tuto subdoménu a ohraničený kontext.
Při výběru stylu architektury zvažte následující typy problémů:
Komplexnost: Složitost architektury musí odpovídat doméně. Pokud je příliš zjednodušená, může to vést k velkému míči bláta, kde závislosti nejsou dobře spravované a struktura se rozpadne.
Asynchronní zasílání zpráv a konečná konzistence: Asynchronní zasílání zpráv se používá k oddělení služeb a ke zlepšení spolehlivosti, protože je možné opakovat zprávy. Zvyšuje také škálovatelnost. Asynchronní zasílání zpráv ale také vytváří problémy při zpracování konečné konzistence a možnosti duplicitních zpráv.
Komunikace mezi službami: Rozložení aplikace do samostatných služeb může zvýšit komunikační režii. V architekturách mikroslužeb toto přetížení často vede k problémům s latencí nebo zahlcení sítě.
Ovladatelnost: Správa aplikace zahrnuje úlohy, jako je monitorování, nasazování aktualizací a udržování provozního stavu.
Související prostředky
- Deset principů návrhu pro aplikace Azure