Model Směrování prostřednictvím brány
Směruje žádosti na několik služeb s využitím jednoho koncového bodu. Tento model se hodí, když chcete vystavit více služeb v jednom koncovém bodě a směrovat na správnou službu na základě požadavku.
Kontext a problém
Když klient potřebuje používat více služeb, může být náročné nastavit samostatný koncový bod pro každou službu a nechat klienta každý koncový bod spravovat. Třeba aplikace pro elektronické obchodování může poskytovat služby jako 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.
Ř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.
S tímto modelem stačí, když klientská aplikace ví o jednom koncovém bodu a komunikuje jenom s ním. Pokud dojde ke konsolidaci nebo rozložení služby, 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.

Tento model může také pomoct s nasazením, protože vám umožní spravovat, jak se aktualizace zavedou mezi uživatele. 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 nabízíte klientům, a poskytuje vám flexibilitu v používání různých strategií vydaných verzí, ať už přírůstkových, paralelních nebo kompletních uvádění 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 představovat kritický prvek způsobující selhání. Zajistěte, aby byla správně navržená a splňovala vaše požadavky na dostupnost. Při implementaci berte v úvahu schopnost odolnosti proti chybám.
- Služba brány může představovat kritický bod. 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.
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.
Tento model nemusí být vhodný, pokud máte jednu aplikaci, která používá jenom jednu nebo dvě služby.
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;
}
}
V Azure je možné nastavit více služeb za instancí Application Gateway, která poskytuje směrování vrstvy 7.