Upravit

Sdílet prostřednictvím


Integrace Azure Spring Apps s cílovými zónami

Azure Application Gateway
Azure Key Vault
Azure Spring Apps

Tato referenční architektura nasadí základní architekturu Azure Spring Apps do cílových zón Azure.

V tomto scénáři vaše organizace očekává, že úloha bude používat federované prostředky spravované centrálními týmy (platformami) – příklady centralizované správy zahrnují sítě pro místní připojení, správu přístupu k identitám a zásady. Tyto pokyny předpokládají, že organizace přijala cílové zóny Azure, aby použila konzistentní zásady správného řízení a ušetřila náklady napříč několika úlohami.

Důležité

Tato referenční architektura je součástí pokynů k akcelerátoru cílových zón Azure Spring Apps. Osvědčené postupy jsou určené pro vlastníka úloh, který chce splnit předchozí očekávání.

Úloha se nasadí v předplatném cílové zóny aplikace Azure zřízeném organizací. Jako vlastník úlohy vlastníte prostředky v tomto předplatném.

Úloha závisí na předplatných cílových zón platformy Azure pro sdílené prostředky. Tyto prostředky vlastní týmy platformy. Zodpovídáte ale za řízení požadavků u tohoto týmu, aby vaše úlohy fungovaly podle očekávání. Tyto pokyny označují tyto požadavky jako tým platformy.

Důrazně doporučujeme porozumět konceptu cílových zón Azure.

Možnosti návrhu provedené v této architektuře jsou popsány v klíčových oblastech technického návrhu tohoto akcelerátoru. Další informace najdete v akcelerátoru cílových zón Azure Spring Apps.

Tip

GitHub logo Architektura je založená na ukázkové implementaci na GitHubu, která ilustruje některé z možností návrhu. Zvažte implementaci jako první krok k produkčnímu prostředí.

Architektura

Následující diagram znázorňuje architekturu pro tento přístup:

Diagram that shows an architecture for an Azure Spring Apps workload in a landing zone.

Obvyklá využití pro tuto architekturu:

  • Privátní aplikace: Interní aplikace nasazené v hybridních cloudových prostředích
  • Veřejné aplikace: Externě přístupné aplikace.

Tyto případy použití jsou podobné s výjimkou konfigurace pravidel zabezpečení a síťového provozu.

Komponenty

Následující části popisují komponenty této architektury. Komponenty jsou rozdělené podle odpovědností za vlastnictví, které vám pomůžou určit, co se má sdílet s týmy platformy organizace. Dokumentaci k produktům o službách Azure najdete v části Související prostředky .

Prostředky vlastněné týmem aplikací

Váš tým zodpovídá za vytváření a údržbu následujících zdrojů informací.

  • Azure Spring Apps Standard hostuje aplikace Java Spring Boot v Azure.

  • Aplikace Azure Gateway Standard_v2 je reverzní proxy server, který směruje příchozí webový provoz do Azure Spring Apps. Tato skladová položka obsahuje integrovanou službu Azure Web Application Firewall, která kontroluje provoz ohrožení zabezpečení projektu OWASP (Open Web Application Security Project).

  • Azure Virtual Machines funguje jako jump box pro operace správy.

  • Azure Database for MySQL ukládá data aplikací.

  • Azure Key Vault ukládá tajné kódy a konfiguraci, jako je připojovací řetězec do databáze.

  • Log Analytics je funkce služby Azure Monitor, která se také označuje jako protokoly služby Azure Monitor. Log Analytics je jímka monitorování, která ukládá protokoly a metriky z aplikace a služeb Azure.

  • Aplikace Azure Přehledy se používá jako nástroj pro správu výkonu aplikací (APM), který shromažďuje všechna data monitorování aplikací a ukládá je přímo v Log Analytics.

Prostředky vlastněné týmem platformy

Tato architektura předpokládá, že již existují následující prostředky. Centrální týmy organizace vlastní a spravují tyto prostředky. Vaše aplikace závisí na těchto službách, aby se snížily provozní režie a optimalizovaly náklady.

  • Azure Firewall kontroluje a omezuje odchozí provoz.

  • Azure Bastion poskytuje zabezpečený přístup k jump boxu pro správu.

  • Azure ExpressRoute poskytuje privátní připojení z místního prostředí k infrastruktuře Azure.

  • Azure DNS poskytuje překlad názvů mezi místními místy.

  • Azure VPN Gateway propojuje aplikaci se vzdálenými týmy ve vaší místní síti.

Důležité informace o aplikacích

Referenční implementace zahrnuje ukázkovou aplikaci, která znázorňuje typickou aplikaci mikroslužeb hostované v instanci Azure Spring Apps. Následující části obsahují podrobnosti o hostované aplikaci. Další informace najdete v ukázce obchodu PetClinic.

Zjišťování služeb

Ve vzoru mikroslužeb musí být funkce registru služeb podporovaná pro směrování požadavků uživatelů a komunikace mezi službami.

Služby by měly být schopné komunikovat s jinými službami. Když se vytvoří nové instance, přidají se do registru, aby je bylo možné dynamicky zjistit. V této architektuře je pro Azure Spring Apps povolený registr spravované služby Spring Cloud Service Registry (OSS ). Tato služba udržuje registr instancí živých aplikací, umožňuje vyrovnávání zatížení na straně klienta a odděluje poskytovatele služeb od klientů, aniž by se museli spoléhat na službu DNS (Domain Name Service).

Instance Azure Spring Apps implementuje model směrování brány, který poskytuje jediný vstupní bod pro externí provoz. Brána směruje příchozí požadavky do aktivních instancí služby nalezených v registru. V tomto návrhu se model implementuje s opensourcovou implementací brány Spring Cloud. Nabízí sadu funkcí, která zahrnuje ověřování a autorizaci, funkce odolnosti a omezování rychlosti.

Konfigurační server

V případě mikroslužeb musí být konfigurační data oddělená od kódu. V této architektuře azure Spring Apps Config Server umožňuje správu prostředků prostřednictvím připojitelného úložiště, které podporuje místní úložiště a úložiště Git.

Redundance

Zóny dostupnosti můžete použít při vytváření instance Azure Spring Apps.

Díky této funkci Azure Spring Apps automaticky distribuuje základní prostředky napříč logickými oddíly základní infrastruktury Azure. Tato distribuce poskytuje vyšší úroveň dostupnosti a chrání před selháním hardwaru nebo událostmi plánované údržby.

Redundance zón zajišťuje rovnoměrné distribuci základních uzlů virtuálních počítačů napříč všemi zónami dostupnosti. Redundance zón ale nezaručuje ani distribuci instancí aplikací. Pokud instance aplikace selže, protože její umístěná zóna přestane fungovat, Azure Spring Apps vytvoří novou instanci aplikace pro tuto aplikaci na uzlu v jiné zóně dostupnosti.

Pokud ve službě Azure Spring Apps povolíte vlastní prostředek, například vlastní trvalé úložiště, povolte pro prostředek redundanci zón. Další informace najdete v tématu Povolení vlastního trvalého úložiště v Azure Spring Apps.

Zóny dostupnosti nejsou podporované ve všech oblastech. Pokud chcete zjistit, které oblasti podporují zóny dostupnosti, podívejte se na oblasti Azure s podporou zóny dostupnosti.

Škálovatelnost

Služba Azure Spring Apps nabízí funkce automatického škálování , které umožňují škálovat aplikace na základě prahových hodnot metrik nebo během určitého časového intervalu. Automatické škálování se doporučuje, když aplikace potřebují vertikálně navýšit kapacitu nebo vertikálně navýšit kapacitu v reakci na měnící se poptávku.

Azure Spring Apps také podporuje ruční škálování aplikací úpravou počtu procesorů, paměti/GB na instanci a počtu instancí aplikací. Tento typ škálování je vhodný pro jednorázovou aktivitu škálování, kterou můžete chtít provést pro určité aplikace. Upravte hodnoty tak, aby splňovaly požadavky vaší aplikace na škálování, a zajistěte, aby vaše nastavení byla v maximálních limitech pro každý atribut.

Důležité

Ruční škálování aplikací úpravou nastavení se liší od možnosti ručního škálování pro nastavení automatického škálování na webu Azure Portal.

Aspekty sítí

V tomto návrhu je úloha závislá na prostředcích vlastněných týmem platformy pro přístup k místním prostředkům, řízení výchozího provozu atd. Další informace najdete v tématu Akcelerátor cílové zóny Azure Spring Apps: Topologie sítě a připojení.

Topologie sítě

Tým platformy určuje topologii sítě. V této architektuře se předpokládá hvězdicová topologie.

Virtuální síť rozbočovače

Předplatné připojení obsahuje centrální virtuální síť sdílenou celou organizací. Síť obsahuje síťové prostředky vlastněné a spravované týmem platformy. Pro tuto architekturu jsou v rozsahu následující týmové prostředky platformy:

  • Azure Firewall řídí odchozí provoz do internetu.
  • Azure Bastion zabezpečuje přístup k jump boxu pro správu.
Paprsková virtuální síť

Cílová zóna aplikace má alespoň jednu předem zřízenou virtuální síť, která je v partnerském vztahu k centrální síti. Vlastníte prostředky v této síti, jako je nástroj pro vyrovnávání zatížení, který směruje a chrání příchozí připojení HTTP/s k Azure Spring Apps z internetu.

Předem zřízená virtuální síť a partnerské vztahy musí být schopné podporovat očekávaný růst úlohy. Odhadněte velikost virtuální sítě a pravidelně vyhodnoťte požadavky u týmu platformy. Informace najdete v tématu Požadavky na virtuální síť.

Důležité

Tým platformy

  • Přiřaďte oprávnění poskytovatele Owner prostředků Azure Spring Apps k vytvořené virtuální síti.
  • Zadejte jedinečné adresy pro virtuální sítě, které se účastní partnerských vztahů.
  • Přidělte adresní prostory IP adres, které jsou dostatečně velké, aby obsahovaly prostředky modulu runtime služby a nasazení a také podporovaly škálovatelnost.

Injektáž virtuální sítě a podsítě

Azure Spring Apps se nasadí do sítě prostřednictvím procesu injektáže virtuální sítě. Tento proces izoluje aplikaci od internetu, systémů v privátních sítích, dalších služeb Azure a dokonce i modulu runtime služby. Příchozí a odchozí provoz z aplikace je povolený nebo zakázaný na základě pravidel sítě.

Izolace se dosahuje prostřednictvím podsítí. Zodpovídáte za přidělování podsítí ve virtuální síti paprsku. Azure Spring Apps vyžaduje dvě vyhrazené podsítě pro modul runtime služby a pro aplikace Spring Boot v Javě.

Podsítě musí být vyhrazené pro jednu instanci Azure Spring Apps. Více instancí nemůže sdílet stejné podsítě.

Minimální velikost každé podsítě je /28. Skutečná velikost závisí na počtu instancí aplikace, které může Azure Spring Apps podporovat. Další informace najdete v tématu Použití menších rozsahů podsítí.

Upozorňující

Vybraná velikost podsítě se nemůže překrývat s existujícím adresními prostory virtuální sítě. Velikost by se také neměla překrývat s žádnými rozsahy adres partnerských vztahů nebo místních podsítí.

Síťové ovládací prvky

Aplikace Azure Gateway s firewallem webových aplikací omezuje příchozí provoz do paprskové virtuální sítě z internetu. Pravidla firewallu webových aplikací povolují nebo zakazují připojení HTTP/s.

Provoz v síti se řídí pomocí skupin zabezpečení sítě (NSG) v podsítích. Skupiny zabezpečení sítě filtrují provoz podle nakonfigurovaných IP adres a portů. V tomto návrhu se skupiny zabezpečení sítě umístí do všech podsítí. Podsíť Azure Bastion umožňuje provoz HTTPS z internetu, služeb brány, nástrojů pro vyrovnávání zatížení a virtuální sítě. Z podsítě je povolená pouze komunikace RDP a SSH s virtuálními sítěmi.

Privátní propojení slouží k řízení připojení mezi Službami Azure Spring Apps a dalšími službami Azure, jako je například přístup k trezoru klíčů a databázi. Privátní koncové body se umístí do samostatné podsítě.

Záznamy DNS hostitele aplikací by měly být uložené v Azure Privátní DNS, aby se zajistila nepřetržitá dostupnost během geografického selhání.

I když předplatné připojení má privátní zóny DNS, vytvořte vlastní zóny Azure Privátní DNS, které podporují služby, ke které mají přístup privátní koncové body.

Důležité

Tým platformy

  • Delegujte zóny Azure Privátní DNS týmu aplikace.
  • V centrální síti nastavte hodnotu serveru DNS na Výchozí (poskytovaná Azure) pro podporu privátních zón DNS spravovaných týmem aplikací.

Odchozí provoz z virtuální sítě musí být omezený, aby se zabránilo útokům na exfiltraci dat. Tento provoz se směruje přes centralizovanou bránu Azure Firewall (další segment směrování), která tok povolí nebo odmítne pomocí plně kvalifikovaného názvu domény (FQDN).

Důležité

Tým platformy

  • Vytvořte trasy definované uživatelem pro vlastní trasy.
  • Přiřaďte zásady Azure, které zablokují vytváření podsítí, které nemají novou směrovací tabulku.
  • Dejte týmu aplikací odpovídající oprávnění řízení přístupu na základě role (RBAC), aby mohli rozšířit trasy na základě požadavků na úlohy.

Správa identit a přístupu

Implementace identity úlohy musí být v souladu s osvědčenými postupy organizace, aby aplikace neporušovala hranice zabezpečení nebo zásad správného řízení organizace. Další informace najdete v tématu Akcelerátor cílové zóny Azure Spring Apps: Správa identit a přístupu.

Microsoft Entra ID se doporučuje pro ověřování uživatelů a služeb, které komunikují s instancí Azure Spring Apps.

Doporučeným přístupem je povolit microsoft Entra spravované identity pro prostředky Azure pro aplikaci, aby se aplikace mohla automaticky ověřit v jiných službách. V této architektuře se spravované identity přiřazené systémem používají k usnadnění správy.

K autorizaci použijte řízení přístupu na základě role (RBAC) Azure tím, že při udělování oprávnění použijete princip nejnižšího oprávnění.

Důležité informace o monitorování

Platforma cílové zóny Azure poskytuje sdílené pozorovatelné prostředky jako součást předplatných pro správu. Zřizování vlastních monitorovacích prostředků se ale doporučuje zjednodušit celkovou správu úloh. Další informace najdete v tématu Akcelerátor cílových zón Azure Spring Apps: Monitorování operací.

Tato architektura vytvoří následující prostředky:

  • Aplikace Azure Přehledy je řešení APM (Application Sledování výkonu ing) a je plně integrované do služby prostřednictvím agenta Javy. Tento agent poskytuje přehled o všech nasazených aplikacích a závislostech bez nutnosti dalšího kódu.
  • Pracovní prostor Azure Log Analytics je sjednocená jímka pro všechny protokoly a metriky shromážděné ze služeb Azure a aplikace.

Nakonfigurujte instanci Azure Spring Apps tak, aby odesílala diagnostické protokoly z aplikace do zřízeného pracovního prostoru služby Log Analytics. Další informace najdete v tématu Monitorování aplikací na konci.

Shromážděte protokoly a metriky pro ostatní služby Azure. Pro jump box je povolená diagnostika spouštění, takže můžete zachytit události při spouštění virtuálního počítače.

Nakonfigurujte nastavení diagnostiky tak, aby odesílala protokoly prostředků pro všechny ostatní prostředky Azure do pracovního prostoru služby Log Analytics. Protokoly prostředků se neshromažďují, dokud se nepřesměrují do cíle. Každý prostředek Azure vyžaduje vlastní nastavení diagnostiky.

Korelace dat z více pracovních prostorů

Protokoly a metriky generované úlohou a jeho komponentami infrastruktury se ukládají do pracovního prostoru služby Log Analytics úlohy. Protokoly a metriky generované centralizovanými službami, jako jsou Active Directory a Azure Firewall, se ale ukládají do centrálního pracovního prostoru služby Log Analytics spravovaného týmy platformy. Korelace dat z různých jímek může vést ke složitostem.

Představte si scénář toku uživatele, ve kterém má úloha závislosti na centralizovaných službách. Část dat se může shromažďovat na úrovni úloh a exportovat je do centrálního pracovního prostoru služby Log Analytics, kde souvisí s protokoly platformy.

Jiné položky však mohou existovat pouze v pracovním prostoru úlohy kvůli problémům, jako jsou objem dat, interoperabilita formátu nebo omezení zabezpečení. Nesouvisející položky protokolu, které existují ve dvou nebo více pracovních prostorech pro jeden tok uživatele, můžou ztížit řešení určitých problémů. Tyto přidané složitosti vyžadují, aby týmy spolupracovaly na řešení potíží s incidenty aplikací.

Pokud chcete pomoct s tímto typem spolupráce, seznamte se s postupy nastavenými vaší organizací. Když dojde k incidentu zabezpečení, můžou být správci na úrovni úloh požádáni, aby zkontrolovali protokoly svých systémů, jestli neobsahují známky škodlivé aktivity nebo poskytují kopie protokolů obslužným rutinám incidentů pro další analýzu. Když správci úloh řeší problémy s aplikacemi, můžou od správců platformy potřebovat pomoc, aby korelovali položky protokolu z podnikových sítí, zabezpečení nebo jiných služeb platformy.

Důležité

Tým platformy

  • Udělte RBAC dotazování a čtení jímek protokolů pro relevantní prostředky platformy.
  • Povolte protokoly pro AzureFirewallApplicationRule, AzureFirewallNetworkRulea AzureFirewallDnsProxy. Aplikační tým potřebuje monitorovat toky provozu z aplikace a požadavky na server DNS.
  • Dejte aplikačnímu týmu dostatečná oprávnění k provádění operací.

Další informace najdete v tématu Akcelerátor cílových zón Azure Spring Apps: Monitorování operací.

Sondy stavu

Aplikace Azure Gateway používá sondy stavu k zajištění směrování příchozího provozu do responzivních back-endových instancí. Doporučuje se test připravenosti, aktivity a spouštění aplikací Azure Spring Apps. Pokud dojde k selhání, můžou vám tyto sondy pomoct při řádném ukončení. Další informace naleznete v tématu Konfigurace sond stavu.

Bezpečnostní aspekty

Centralizované týmy poskytují v rámci platformy řízení sítí a identit. Úloha by ale měla mít dostupnost zabezpečení, aby se snížil prostor pro útoky. Další informace najdete v tématu Akcelerátor cílové zóny Azure Spring Apps: Zabezpečení.

Neaktivní uložená data

Neaktivní uložená data by měla být šifrovaná. Samotná aplikace je bezstavová. Všechna data se uchovávají v externí databázi, kde tato architektura používá Azure Database for MySQL. Tato služba šifruje data, včetně záloh a dočasných souborů vytvořených při spouštění dotazů.

Přenášená data

Přenášená data by měla být šifrovaná. Provoz mezi prohlížečem uživatele a bránou Aplikace Azure musí být šifrovaný, aby se zajistilo, že během přenosu zůstanou data beze změny. V této architektuře brána Aplikace Azure přijímá pouze provoz HTTPS a vyjednává metodu handshake protokolu TLS. Tato kontrola se vynucuje prostřednictvím pravidel skupiny zabezpečení sítě v podsíti služby Application Gateway. Certifikát TLS se načte přímo během nasazení.

Provoz ze služby Application Gateway do instance Azure Spring Apps je znovu zašifrovaný, aby se zajistilo, že se do aplikace dostane jenom zabezpečený provoz. Modul runtime služby Azure Spring Apps přijímá tento provoz a funguje jako bod ukončení protokolu TLS. Z tohoto okamžiku není komunikace mezi službami v rámci aplikace šifrovaná. Komunikace s jinými službami Azure PaaS a modulem runtime služby však probíhá přes protokol TLS.

Můžete se rozhodnout implementovat kompletní komunikaci TLS prostřednictvím Azure Spring Apps. Vezměte v úvahu kompromisy. Může to mít negativní vliv na latenci a operace.

Přenášená data by se měla kontrolovat kvůli ohrožením zabezpečení. Firewall webových aplikací je integrovaný se službou Application Gateway a dále kontroluje provoz blokující ohrožení zabezpečení OWASP. Firewall webových aplikací můžete nakonfigurovat tak, aby detekovali, monitorovali a protokolovali výstrahy hrozeb. Nebo můžete nastavit službu tak, aby blokovala neoprávněná vniknutí a útoky zjištěné pravidly.

Ochrana před útoky DDoS

Distribuovaný odepření služby (DDoS) může systém snížit tak, že ho přetíží požadavky. Základní ochrana před útoky DDoS je povolená na úrovni infrastruktury pro všechny služby Azure, aby se chránily před těmito útoky. Zvažte upgrade na službu Azure DDoS Protection , abyste mohli využívat funkce, jako je monitorování, výstrahy, nastavení prahových hodnot pro aplikaci. Další informace najdete v tématu Nejčastější dotazy ke službě Azure DDoS Protection.

Správa tajných kódů

Přístup zabezpečení nulová důvěra (Zero Trust) Microsoftu vyžaduje, aby byly tajné kódy, certifikáty a přihlašovací údaje uložené v zabezpečeném trezoru. Doporučená služba je Azure Key Vault.

Existují alternativní způsoby ukládání tajných kódů v závislosti na službě a záměru Azure. Tato architektura implementuje následující přístup:

  • Certifikáty se načítají během nasazování.
  • Připojení k MySQL se implementuje pomocí service Připojení oru.

Strategie pro optimalizaci nákladů

Vzhledem k povaze návrhu distribuovaného systému je infrastruktura rozrůstaná realitou. Výsledkem této reality jsou neočekávané a nekontrolovatelné náklady. Služba Azure Spring Apps je vytvořená pomocí komponent, které se škálují, aby pomohly splnit poptávku a optimalizovat náklady. Základem této architektury je Azure Kubernetes Service (AKS). Služba je navržená tak, aby snížila složitost a provozní režii při správě Kubernetes a zahrnovala efektivitu v provozních nákladech na cluster.

Do jedné instance Azure Spring Apps můžete nasadit různé aplikace a typy aplikací. Služba podporuje automatické škálování aplikací aktivovaných metrikami nebo plány, které můžou zlepšit využití a nákladovou efektivitu.

K nižším provozním nákladům můžete také použít application Přehledy a Azure Monitor. Díky viditelnosti poskytované komplexním řešením protokolování můžete implementovat automatizaci pro škálování komponent systému v reálném čase. Můžete také analyzovat data protokolu a odhalit tak nedostatky v kódu aplikace, které můžete řešit, aby se zlepšily celkové náklady a výkon systému.

Nasazení scénáře

Nasazení pro tuto referenční architekturu je k dispozici v Akcelerátoru cílových zón Azure Spring Apps na GitHubu. Nasazení používá šablony Terraformu.

Artefakty v tomto úložišti poskytují základ, který můžete přizpůsobit pro své prostředí. Implementace vytvoří centrální síť se sdílenými prostředky, jako je Azure Firewall pro ilustrativní účely. Toto seskupení je možné mapovat na samostatná předplatná cílové zóny, aby byly funkce úloh a platforem oddělené.

Pokud chcete nasadit architekturu, postupujte podle podrobných pokynů.

Podpora VMware s úrovní Enterprise

Pokud chcete spravovat podporu VMware Tanzu® pro vaše živé nasazení, zvažte upgrade na úroveň Azure Spring Apps Enterprise. Registr služeb VMware Tanzu® je integrovaný pro Azure Spring Apps, který umožňuje zjišťování a registraci služeb.

Pro směrování brány můžete přepnout na bránu VMware Spring Cloud. Nabízí sadu funkcí, která zahrnuje ověřování a autorizaci, funkce odolnosti a omezování rychlosti.

Na podnikové úrovni služba Application Configuration Service for Tanzu® umožňuje správu prostředků ConfigMap nativních pro Kubernetes, které jsou naplněné z vlastností definovaných v jednom nebo několika úložištích Git.

Na této úrovni jsou podporované další služby VMware. Další informace najdete v tématu Úroveň Enterprise na Azure Marketplace.

Referenční implementace podporuje skladovou položku Azure Spring Apps Enterprise jako možnost nasazení. V této možnosti jsou některé změny architektury. Používá instanci flexibilního serveru Azure Database for PostgreSQL nasazeného s integrací virtuální sítě Azure a službou Azure Cache for Redis s privátním koncovým bodem. Ukázková aplikace je aplikace Fitness Store.

Další kroky

  • Projděte si oblasti návrhu akcelerátoru cílové zóny Azure Spring Apps.

Dokumentaci k produktům ke službám Azure používaným v této architektuře najdete v následujících článcích:

Další scénáře implementace najdete v následujících článcích: