Návrh geograficky distribuované síťové architektury
V distribuované aplikaci je důležité zajistit, aby komponenty mohly spolehlivě komunikovat a požadavky se můžou směrovat do jiné komponenty nebo oblasti, když dojde k selhání.
Rozhodli jsme se přepracovat architekturu našeho expedičního portálu v Azure, abychom snížili jeho zranitelnost vůči regionálním výpadkům. Chceme zajistit, aby aplikace přepnula na komponenty v sekundární oblasti, pokud je primární oblast nedostupná. Převzetí služeb při selhání by mělo způsobit minimální přerušení v poskytování služeb uživatelům.
Tady se dozvíte, jak Azure DNS, Traffic Manager, Front Door a Azure CDN podporují architekturu aplikací naší přepravní společnosti.
Azure DNS
Vzpomeňte si, že pro implementaci Azure DNS nepotřebujeme žádné změny. Azure DNS používáme k hostování záznamů názvu domény, které identifikují naši aplikaci.
Azure DNS poskytuje překlad názvů zcela prostřednictvím infrastruktury Azure. Tato služba je ze své podstaty multiregionální a proto není potřeba upravovat naši stávající konfiguraci Azure DNS tak, aby podporovala tuto funkci v našem novém návrhu architektury.
Smlouva SLA pro Azure DNS má také 100% záruku, že platné požadavky DNS obdrží odpověď od alespoň jednoho názvového serveru Azure DNS po celou dobu.
Volba směrovače provozu
Potřebujeme službu, která dokáže vyrovnávat zatížení a přesměrovávat provoz napříč několika oblastmi s distribuovanými webovými aplikacemi.
Azure poskytuje několik různých služeb, které můžou směrovat provoz mezi komponentami front-endu. Vzpomeňte si, že musíme nahradit naši službu Azure Application Gateway, protože je svázaná s jednou oblastí. Pokud tato oblast selže, nebude nic, co by umožnilo směrování.
V Azure existují dva směrovače provozu, které můžou provádět globální směrování mezi několika oblastmi a nejsou ohroženy výpadkem jedné oblasti:
- Azure Traffic Manager
- Azure Front Door
Pojďme se podívat na tyto služby podrobněji, abychom mohli zvolit správný směrovač pro naši aplikaci.
Co je Azure Traffic Manager?
Azure Traffic Manager je globální nástroj pro vyrovnávání zatížení, který používá záznamy DNS ke směrování provozu do cílů ve více oblastech Azure.
Traffic Manager můžeme nakonfigurovat tak, aby směrovalo všechny požadavky do naší primární oblasti a sledovalo odezvu služby App Service v této oblasti. Pokud služba App Service v primární oblasti selže, Traffic Manager automaticky směruje žádosti uživatelů do služby App Service v sekundární oblasti. Tím se provede přesměrování převzetí služeb při selhání, které zajišťuje nepřetržitou službu. Toto uspořádání nazýváme režim směrování podle priority.
Vzhledem k tomu, že Traffic Manager ke směrování provozu používá systém DNS, směruje jakýkoli protokol, nejen provoz HTTP. Traffic Manager ale nemůže směrovat ani filtrovat provoz na základě vlastností HTTP, jako jsou kódy zemí klienta nebo hlavičky uživatelského agenta. Také nemůže ukončit protokol TLS (Transport Layer Security), kde směrovač dešifruje požadavky a šifruje odpovědi, aby se tento zatížení odebral z virtuálních serverů služby App Service. Pokud potřebujeme některou z těchto funkcí, musíme použít Azure Front Door.
Traffic Manager používá vysoce konfigurovatelné monitorování koncových bodů. Můžeme například definovat protokol, port, cestu, vlastní nastavení hlavičky, očekávané rozsahy stavových kódů a tolerovaný počet selhání. Monitorování koncových bodů nám poskytuje nepřetržitou představu o celkovém stavu všech částí naší aplikace.
Co je Azure Front Door?
Stejně jako Traffic Manager je Azure Front Door globálním nástrojem pro vyrovnávání zatížení. Na rozdíl od Traffic Manageru funguje ve vrstvě síťové aplikace, vrstvě 7 a k filtrování a směrování používá vlastnosti HTTP a HTTPS.
Se službou Front Door můžeme provádět mnoho typů směrování, které Traffic Manager nepodporuje. Provoz můžeme například směrovat na základě kódu země prohlížeče. Front Door také podporuje ukončení protokolu TLS.
Existuje však výjimka. Pokud chceme směrovat provoz pro jakýkoli jiný protokol než HTTP a HTTPS, musíme použít Traffic Manager.
Front Door nám umožňuje přiřadit priority různým back-endům, které tvoří portál pro sledování. Tyto priority umožňují službě Front Door směrovat požadavky podle potřeby. Služby primární oblasti přiřadíme s nejvyšší prioritou a služby sekundární oblasti s nižší prioritou.
Služba Front Door implementuje zdravotní sondy pro monitorování stavu našich služeb a v případě selhání může správně směrovat provoz. Režim směrování priority a monitorování koncových bodů ve službě Front Door se podobá těmto funkcím v Traffic Manageru, s tím rozdílem, že sondy stavu vždy fungují přes protokol HTTP.
Veškerý provoz webového uživatelského rozhraní našeho expedičního portálu a jeho rozhraní API probíhá přes HTTPS, což nám umožňuje nahradit Azure Traffic Manager za službu Front Door. Front Door můžeme také nakonfigurovat s prioritním přiřazením backendu.
Azure CDN
V naší architektuře s jednou oblastí jsme použili Azure CDN k ukládání statického obsahu do mezipaměti ze služby Azure Blob Storage. Služba Azure CDN je globální síť serverů, která ukládá statický obsah do mezipaměti blízko uživatelům. Tuto službu pro architekturu s více oblastmi nemusíme upravovat. Existují však aspekty týkající se našeho účtu Azure Storage, který probereme v další lekci.