Idea řešení
Pokud se chcete podívat, jak tento článek rozšíříme o další informace, jako jsou potenciální případy použití, alternativní služby, aspekty implementace nebo pokyny k cenám, dejte nám vědět pomocí GitHub Feedback!
Tato architektura poskytuje řešení vysoké dostupnosti pro webovou aplikaci, která používá obrovské objemy dat. Jedná se o flexibilní přístup, který může poskytovat globální řešení, které distribuuje aplikace a data, aby byla koncovým uživatelům zachována.
Architektura vyžaduje vlastní software pro replikaci. To může být náročné na vytvoření v závislosti na aplikacích a konfiguraci.
Tady jsou některé možné konfigurace:
Aktivní/pasivní: K dispozici je primární oblast, která obvykle poskytuje službu všem uživatelům. K dispozici je také pohotovostní oblast, která se aktivuje, když primární oblast nemůže fungovat. Když je primární systém aktivní, replikační služba replikuje změny databáze do pohotovostní oblasti.
Aktivní/aktivní: Je k dispozici primární oblast, která je obvykle aktivní, poskytování služby čtení pro nejbližší uživatele a zápis služby všem uživatelům. Jedna nebo více dalších oblastí je aktivních a poskytuje koncovým uživatelům službu jen pro čtení. Zápisy jsou vždy směrovány do primární oblasti a čtení jsou vždy směrována na nejbližší aktivní oblast.
Stejně jako u konfigurace aktivní/pasivní existuje pohotovostní oblast, která se aktivuje, když primární oblast nebude fungovat. Když je primární systém aktivní, replikuje replikační služba změny databáze do oblastí, které jsou jen pro čtení a v pohotovostní oblasti. Když je aktivní pohotovostní oblast, replikační služba replikuje změny databáze do oblastí jen pro čtení.
Jednou z nevýhod tohoto přístupu je vysoká latence operací zápisu.
Vícenásobná aktivní: Existuje několik aktivních oblastí, z nichž každá umožňuje poskytnout uživatelům úplnou službu. Aktivita uživatele je vždycky směrována na nejbližší aktivní oblast.
Implementace vícenásobných aktivních je poměrně náročná a může vyžadovat profesionální návrh a implementaci.
Vzhledem k tomu, že replikace je vlastní implementace, může být úroveň konzistence libovolná.
Možné potíže s implementací vlastní replikace a potřebným časem je důležité vzít v této architektuře.
Poznámka
Vaše aplikace může za určitých okolností vyžadovat více účtů úložiště. Další informace najdete v tématu věnovaném důležitým informacím.
Potenciální případy použití
Tato architektura může být vhodná pro libovolnou aplikaci, která používá obrovský objem dat, který musí být vždycky dostupný. Mezi příklady patří aplikace:
- Sledujte návyky útraty zákazníků a chování při nákupu.
- Předpověď počasí.
- Nabídněte inteligentní provoz nebo implementujte systémy inteligentního provozu nebo využijte inteligentní technologie pro monitorování provozu.
- Analyzujte data z výroby Internet věcí (IoT).
- Zobrazit data inteligentního měřiče nebo pomocí inteligentní technologie monitorovat data měřičů.
Architektura
Stáhněte si soubor aplikace Visio s touto architekturou.
- klient se ověřuje pomocí Azure Active Directory (Azure AD) a uděluje přístup k webovým aplikacím hostovaným v Azure App Service.
- Přední dveře Azure, brána firewall a vrstva 7 pro vyrovnávání zatížení, přepíná uživatelský provoz do jiné oblasti Azure v případě regionu výpadku.
- Azure App Service hostuje websites a RESTful webová rozhraní API. Klienti prohlížeče spouštějí aplikace AJAX, které používají rozhraní API.
- Webová rozhraní API deleguje aplikace funkcí pro zpracování úloh na pozadí. úkoly jsou zařazené do fronty ve frontě Queue Storage Azure.
- Aplikace funkcí hostované Azure Functions provádějí úlohy na pozadí aktivované zprávami ve frontě.
- Vlastní software replikace zaručuje, že tabulky budou identické mezi oblastmi.
- Mezipaměť Azure pro Redis ukládá data tabulek pro aplikace Function App. Tím se přesměruje databázová aktivita a urychlí se aplikace Function App a Web Apps.
- Azure Table Storage obsahuje data používaná webovými aplikacemi.
Komponenty
- Azure Active Directory (Azure AD) je víceklientské služba pro správu identit a přístupu, která se může synchronizovat s místním adresářem. Azure DNS je hostitelská služba s vysokou dostupností pro domény DNS, která poskytuje aplikacím rychlé dotazy DNS a rychlé aktualizace záznamů DNS. Správa Azure DNS je podobná správě dalších služeb Azure a používá stejné přihlašovací údaje, rozhraní API, nástroje a fakturaci.
- přední dvířka Azure jsou zabezpečená síť pro doručování obsahu (CDN) a nástroj pro vyrovnávání zatížení s rychlým převzetím služeb Funguje na okraji blízko uživatelům, urychluje doručování obsahu a zároveň chrání aplikace, rozhraní API a weby před internetovými hrozbami.
- Azure App Service je plně spravovaná služba pro sestavování, nasazování a škálování webových aplikací. Aplikace můžete vytvářet pomocí .NET, .NET Core, Node.js, Java, Pythonu nebo PHP. aplikace můžou běžet v kontejnerech nebo na Windows nebo Linux. V rámci migrace sálového počítače se můžou klientské obrazovky nebo webové rozhraní kódovat jako rozhraní REST API založená na protokolu HTTP. Můžou být oddělené a můžou být bezstavové pro orchestraci systému založeného na mikroslužbách. Další informace o webových rozhraních API najdete v tématu design RESTful webového rozhraní API.
- Azure Functions poskytuje prostředí pro spouštění malých částí kódu nazývaných funkce, aniž by bylo nutné navázat infrastrukturu aplikace. Můžete ji použít ke zpracování hromadných dat, integraci systémů, práci s IoT a vytváření jednoduchých rozhraní API a mikroslužeb. Pomocí mikroslužeb můžete vytvářet servery, které se připojují ke službám Azure a jsou vždycky aktuální.
- Azure Storage je sada rozsáhlě škálovatelných a zabezpečených cloudových služeb pro data, aplikace a úlohy. zahrnuje azure Files, azure Table Storagea azure Queue Storage. Soubory Azure jsou často účinným nástrojem pro migraci úloh sálového počítače.
- Azure Queue Storage poskytuje jednoduché a nákladově efektivní a odolné fronty zpráv pro velké úlohy.
- Azure Table Storage je úložiště NoSQL klíč-hodnota pro rychlý vývoj, který využívá obrovských částečně strukturovaných datových sad. Tabulky jsou bez schématu a přizpůsobují se okamžitě podle potřeb změny. Přístup je rychlý a nákladově efektivní pro mnoho typů aplikací a obvykle náklady méně než jiné typy úložiště s klíčem.
- Azure cache pro Redis je plně spravovaná služba pro ukládání do mezipaměti v paměti a zprostředkovatel zpráv pro sdílení dat a stavu mezi výpočetními prostředky. Zahrnuje Open Source Redis i komerční produkt z Redis Labs jako spravované služby. Můžete zlepšit výkon vysoce propustnosti online aplikací pro zpracování transakcí tím, že je navrhujete pro škálování a používání úložiště dat v paměti, jako je například Azure cache pro Redis.
Alternativy
- Azure Traffic Manager směruje příchozí požadavky DNS napříč globálními oblastmi Azure na základě vašeho výběru metod směrování provozu. Poskytuje taky automatické převzetí služeb při selhání a směrování výkonu.
- Azure Content Delivery Network (CDN) ukládá do mezipaměti statický obsah na hraničních serverech pro rychlou odezvu a pomocí optimalizací sítě vylepšit odezvu na dynamický obsah. CDN je užitečná hlavně v případě, že je uživatelská základna globální.
- Služba Azure Kubernetes Service (AKS) je plně spravovaná služba Kubernetes pro nasazení a správu kontejnerových aplikací. Můžete ji použít k implementaci architektury mikroslužeb, jejíž součásti se škálují nezávisle na vyžádání.
- Azure Container Instances poskytuje rychlý a jednoduchý způsob, jak spouštět úlohy bez nutnosti spravovat infrastrukturu. To je užitečné během vývoje nebo pro spouštění neplánovaných úloh.
- Azure Service Fabric je platforma pro škálování a orchestraci kontejnerů a mikroslužeb.
- Azure Service Bus je spolehlivá cloudová služba zasílání zpráv pro jednoduchou hybridní integraci. dá se použít místo Queue Storage v této architektuře. další informace najdete v tématu Storage fronty a Service Bus fronty – porovnání a kontrast.
Požadavky
Architektura vyžaduje vlastní software pro replikaci. To může být náročné na vytvoření v závislosti na aplikacích a konfiguraci. Možné potíže s implementací vlastní replikace a potřebným časem je důležité vzít v této architektuře.
Vzhledem k tomu, že replikace je uživatelsky navržená, vývojáři mají skvělou flexibilitu při implementaci strategie konzistence dat.
existují omezení výkonu pro Table Storage, která se dají překonat přidáním Storagech účtů. Následující okolnosti můžou vyžadovat další účty:
- Implementace víceklientské architektury pro podporu více zákazníků
- Podpora zákazníků s vyššími sazbami za transakce
- Podpora zákazníků s velkými datovými sadami
- Urychlení přístupu k datům distribucí dat mezi více účtů úložiště
- Oddělení dat do horké, studené a archivní úrovně
- Vytvoření kopií dat pro účely zálohování a generování sestav
Další informace najdete v tématu škálovatelnost a cíle výkonnosti pro Table Storage.
Pokud již vaše aplikace obsahuje data, je nutné napsat rutiny pro kopírování starých dat do účtů úložiště. Ujistěte se, že máte časové razítko a příznaky kopírování ke sledování průběhu migrace dat.
Další kroky
- Styl architektury web-fronta-pracovní proces
- Pokyny pro návrh tabulek
- Použití geografické redundance k návrhu vysoce dostupných aplikací
- Strategie dělení dat