Model Směrování prostřednictvím brány

Azure Application Gateway

Směrujte požadavky na více služeb nebo více instancí služby pomocí jednoho koncového bodu. Vzor je užitečný, když chcete:

  • Zveřejnění více služeb na jednom koncovém bodu a směrování do příslušné služby na základě požadavku
  • Zveřejnění více instancí stejné služby na jednom koncovém bodu pro účely vyrovnávání zatížení nebo dostupnosti
  • Zveřejnění různých verzí stejné služby na jednom koncovém bodu a směrování provozu napříč různými verzemi

Kontext a problém

Pokud klient potřebuje využívat více služeb, více instancí služeb nebo kombinaci obojího, musí se klient aktualizovat při přidání nebo odebrání služeb. Zvažte následující scénáře.

  • Více různorodých služeb – Aplikace elektronického obchodování může poskytovat služby, jako je vyhledávání, recenze, košík, pokladna a historie objednávek. Každá služba má jiné rozhraní API, se kterým musí klient pracovat, a klient musí vědět o každém koncovém bodu, aby se ke službám mohl připojit. Pokud se rozhraní API změní, musí se aktualizovat i klient. Pokud službu refaktorujete do dvou nebo více samostatných služeb, musí se změnit kód ve službě i klientovi.
  • Více instancí stejné služby – systém může vyžadovat spuštění více instancí stejné služby ve stejných nebo různých oblastech. Spouštění více instancí je možné provést pro účely vyrovnávání zatížení nebo splnění požadavků na dostupnost. Pokaždé, když se instance roztáčí nahoru nebo dolů tak, aby odpovídala poptávce, musí se klient aktualizovat.
  • Několik verzí stejné služby – V rámci strategie nasazení je možné nové verze služby nasadit společně s existujícími verzemi. To se označuje jako modrá zelená nasazení. V těchto scénářích musí být klient aktualizován pokaždé, když dojde ke změnám procenta provozu směrovaného do nové verze a existujícího koncového bodu.

Řešení

Před sadu aplikací, služeb nebo nasazení umístěte bránu. Pomocí směrování vrstvy 7 aplikace směrujte požadavek na příslušné instance.

V tomto vzoru klientská aplikace potřebuje jenom vědět o jednom koncovém bodu a komunikovat s jedním koncovým bodem. Následující příklad znázorňuje, jak model směrování brány řeší tři scénáře popsané v kontextu a části problému.

Několik různorodých služeb

Diagram brány sedící před vyhledávací službou, služba pokladny, služba historie objednávek, služba košíku a služba recenzí

Model směrování brány je užitečný v tomto scénáři, kdy klient využívá více služeb. Pokud je služba konsolidovaná, rozložená nebo nahrazená, klient nemusí nutně vyžadovat aktualizaci. Může pokračovat v zasílání požadavků na bránu a změní se jenom směrování.

Brána také umožňuje abstrahování služeb back-end z klientů. Díky tomu můžete zachovat jednoduchá volání klienta a povolit změny ve službách back-end za bránou. Volání klienta se můžou směrovat na libovolnou službu nebo služby, které potřebují zpracovat očekávané chování klienta. To vám umožňuje přidat, rozdělit a reorganizovat služby za bránou beze změny klienta.

Více instancí stejné služby

Diagram brány sedící před vyhledávací službou v oblasti 1 a vyhledávací služby v oblasti 2

Elasticita je klíčem ke cloud computingu. Služby mohou být roztáhnuty tak, aby uspokojily rostoucí poptávku nebo se zvýšily, když je poptávka nízká, aby se ušetřily peníze. Složitost registrace a zrušení registrace instancí služby je zapouzdřena v bráně. Klient neví o zvýšení nebo snížení počtu služeb.

Instance služby je možné nasadit v jedné nebo více oblastech. Model Geode podrobně popisuje, jak může nasazení s více oblastmi a aktivními aktivitami zlepšit latenci a zvýšit dostupnost služby.

Více verzí stejné služby

Diagram brány sedící před vyhledávací službou verze 1 a vyhledávací službou verze 1.1

Tento model lze použít pro nasazení tím, že vám umožní spravovat, jak se aktualizace nasadí uživatelům. Při nasazení nové verze služby ji můžete nasadit souběžně s existující verzí. Směrování umožňuje řídit, jakou verzi služby se klientům prezentuje. Díky tomu máte flexibilitu používat různé strategie vydávání, ať už přírůstkové, paralelní nebo úplné zavedení aktualizací. Všechny problémy zjištěné po nasazení nové služby můžete rychle vrátit provedením změny konfigurace v bráně, aniž by to ovlivnilo klienty.

Problémy a důležité informace

  • Služba brány může zavést jediný bod selhání. Ujistěte se, že je správně navržený tak, aby splňoval vaše požadavky na dostupnost. Při implementaci zvažte odolnost a odolnost proti chybám.
  • Služba brány může zavádět kritické body. Zajistěte, aby brána měla odpovídající výkon pro zpracování zátěže a dala se snadno škálovat v souladu s očekávaným růstem.
  • Proveďte testování s bránou, abyste se ujistili, že nezpůsobíte kaskádová selhání služeb.
  • Směrování prostřednictvím brány má úroveň 7. Může být založené na IP adrese, portu, hlavičce nebo adrese URL.
  • Služby brány můžou být globální nebo regionální. Azure Front Door je globální brána, zatímco Aplikace Azure Gateway je regionální. Pokud vaše řešení vyžaduje nasazení služeb ve více oblastech, použijte globální bránu. Pokud máte regionální úlohu, která vyžaduje podrobnou kontrolu nad vyváženým provozem, zvažte použití služby Application Gateway. Například chcete vyrovnávat provoz mezi virtuálními počítači.
  • Služba brány je veřejný koncový bod pro služby, které se nachází před. Zvažte omezení přístupu veřejné sítě k back-endovým službám tím, že služby zpřístupníte pouze přes bránu nebo privátní virtuální síť.

Kdy se má tento model použít

Tento model použijte v těchto případech:

  • Klient potřebuje používat více služeb, které jsou přístupné za bránou.
  • Chcete zjednodušit klientské aplikace pomocí jednoho koncového bodu.
  • Potřebujete směrovat požadavky z externě adresovatelných koncových bodů na interní virtuální koncové body, například vystavit porty na virtuálním počítači virtuálním IP adresám clusteru.
  • Klient potřebuje využívat služby spuštěné v několika oblastech kvůli latenci nebo výhodám dostupnosti.
  • Klient musí spotřebovat proměnlivý počet instancí služby.
  • Chcete implementovat strategii nasazení, ve které klienti přistupují k více verzím služby současně.

Tento model nemusí být vhodný, pokud máte jednu aplikaci, která používá jenom jednu nebo dvě služby.

Návrh úloh

Architekt by měl vyhodnotit způsob použití modelu směrování brány v návrhu úloh k řešení cílů a principů popsaných v pilířích architektury Azure Well-Architected Framework. Příklad:

Pilíř Jak tento model podporuje cíle pilíře
Rozhodnutí o návrhu spolehlivosti pomáhají vaší úloze stát se odolnou proti selhání a zajistit, aby se po selhání obnovila do plně funkčního stavu. Směrování brány umožňuje směrovat provoz jenom na uzly, které jsou v pořádku ve vašem systému.

- RE:05 Redundance
- RE:10 Monitorování stavu
Efektivita provozu pomáhá poskytovat kvalitu úloh prostřednictvím standardizovaných procesů a týmové soudržnosti. Směrování brány umožňuje oddělit požadavky od back-endů, což zase umožňuje back-endům podporovat pokročilé modely nasazení, přechody platforem a jediný bod správy pro překlad názvů domén a šifrování během přenosu.

- OE:04 Nástroje a procesy
- Postupy nasazení OE:11 Sejf
Efektivita výkonu pomáhá vaší úloze efektivně splňovat požadavky prostřednictvím optimalizací škálování, dat a kódu. Směrování brány umožňuje distribuovat provoz mezi uzly ve vašem systému a vyrovnávat zatížení.

- PE:05 Škálování a dělení

Stejně jako u jakéhokoli rozhodnutí o návrhu zvažte jakékoli kompromisy proti cílům ostatních pilířů, které by mohly být s tímto vzorem zavedeny.

Příklad

Když použijeme Nginx jako směrovač, je toto jednoduchý příklad konfiguračního souboru pro server, který směruje požadavky pro aplikace nacházejí se v různých virtuálních adresářích na různých počítačích v back-endu.

server {
    listen 80;
    server_name domain.com;

    location /app1 {
        proxy_pass http://10.0.3.10:80;
    }

    location /app2 {
        proxy_pass http://10.0.3.20:80;
    }

    location /app3 {
        proxy_pass http://10.0.3.30:80;
    }
}

K implementaci modelu směrování brány je možné použít následující služby Azure:

  • Instance služby Application Gateway, která poskytuje směrování vrstvy 7 v jednotlivých oblastech.
  • Instance služby Azure Front Door, která poskytuje globální směrování vrstvy 7.