Upravit

Sdílet prostřednictvím


Základní architektura Azure Spring Apps

Azure Application Gateway
Azure Key Vault
Azure Spring Apps
Azure Database for MySQL

Tato referenční architektura popisuje, jak spouštět úlohy Java Spring Boot v Azure Spring Apps. Návrh využívá redundanci zón k dosažení vysoké dostupnosti. Implementujte tento návrh, aby se zabránilo selhání aplikace, pokud dojde k výpadku ve všech datacentrech v zóně.

Tato architektura vám pomůže:

  • Zvyšte dostupnost aplikace v nasazení s jednou zónou.
  • Zvyšte celkovou odolnost a cíl úrovně služby (SLO) vaší aplikace.

Toto řešení představuje základní strategii pro nasazení Azure Spring Apps. Další řešení, která jsou založená na této architektuře, najdete v tématu Nasazení azure Spring Apps do několika oblastí a integrace Azure Spring Apps s cílovými zónami.

Tip

Logo GitHubu Podívejte se na ukázkovou implementaci , která ilustruje některé z možností návrhu této architektury. Tuto implementaci zvažte jako první krok k produkčnímu prostředí.

Architektura

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

Diagram znázorňující referenční architekturu Azure Spring Apps pro více oblastíStáhněte si soubor aplikace Visio s touto architekturou.

Workflow

Tento pracovní postup odpovídá předchozímu diagramu:

  1. Uživatel přistupuje k aplikaci pomocí názvu hostitele HTTP aplikace, například www.contoso.com. Azure DNS se používá k překladu požadavku na tento název hostitele do veřejného koncového bodu Aplikace Azure Gateway.

  2. Application Gateway se používá ke kontrole požadavku. Používá se také k přesměrování povoleného provozu na IP adresu nástroje pro vyrovnávání zatížení, který je ve zřízené instanci Azure Spring Apps. Application Gateway je integrovaná se službou Azure Web Application Firewall.

  3. Interní nástroj pro vyrovnávání zatížení se používá ke směrování provozu do back-endových služeb.

  4. Během zpracování požadavku aplikace komunikuje s dalšími službami Azure ve virtuální síti. Aplikace může například přijímat tajné kódy ze služby Azure Key Vault nebo ukládat stav z databáze.

Komponenty

Následující služby Azure jsou komponenty v této architektuře:

  • Standardní verze Azure Spring Apps se používá k hostování ukázkové aplikace Java Spring Boot implementované jako mikroslužby.

  • Standardní verze služby Application Gateway v2 slouží ke správě provozu do aplikací. Funguje jako místní reverzní proxy server v oblasti, ve které vaše aplikace běží.

    Tato skladová položka obsahuje integrovanou bránu Firewall webových aplikací, která pomáhá chránit vaše webové aplikace před zneužitím a ohrožením zabezpečení. Firewall webových aplikací ve službě Application Gateway sleduje zneužití projektu OWASP (Open Web Application Security Project).

  • Azure DNS se používá k překladu požadavků odesílaných na název hostitele aplikace. Tyto požadavky se přeloží na veřejný koncový bod služby Application Gateway. Privátní zóny Azure DNS se používají k překladu požadavků na privátní koncové body, které přistupují k pojmenovaných prostředkům Azure Private Link .

  • Azure Database for MySQL slouží k ukládání stavu v back-endové relační databázi.

  • Key Vault se používá k ukládání tajných kódů a certifikátů aplikací. Mikroslužby, které běží v Azure Spring Apps, používají tajné kódy aplikace. Azure Spring Apps a Application Gateway používají certifikáty pro zachování názvů hostitelů.

Alternativy

Azure Database for MySQL není jedinou možností pro databázi. Můžete použít také tento příkaz:

Redundance

Sestavte redundanci úlohy, abyste minimalizovali jednotlivé body selhání. V této architektuře replikujete komponenty napříč zónami v rámci oblasti. V architektuře se ujistěte, že používáte zóny dostupnosti pro všechny komponenty v nastavení.

Služby Azure se nepodporují ve všech oblastech a ne všechny oblasti podporují zóny. Než vyberete oblast, ověřte její regionální a zónovou podporu.

Zónově redundantní služby automaticky replikují nebo distribuují prostředky napříč zónami. Vždy dostupné služby jsou vždy dostupné ve všech geografických oblastech Azure a jsou odolné vůči výpadkům v celé zóně a oblasti.

Následující tabulka uvádí typy odolnosti služeb v této architektuře:

Služba Odolnost
Azure DNS Vždy k dispozici
Application Gateway Zónově redundantní
Azure Spring Apps Zónově redundantní
Azure Database for MySQL Zónově redundantní
Key Vault Zónově redundantní
Azure Virtual Network Zónově redundantní
Privátní koncové body Azure Zónově redundantní

Azure Spring Apps podporuje redundanci zón. Díky redundanci zón je veškerá základní infrastruktura služby rozložená do několika zón dostupnosti, což aplikaci poskytuje vyšší dostupnost. Aplikace se škáluje horizontálně bez jakýchkoli změn kódu. Vysoce výkonná síť propojuje zóny dostupnosti Azure. Připojení má latenci odezvy menší než 2 milisekundy (ms). Nemusíte se spoléhat na asynchronní replikaci datových úloh, což často představuje výzvy při návrhu.

Pro Službu Application Gateway je nastaveno více zón dostupnosti, včetně veřejné IP adresy, kterou služba Application Gateway používá. Veřejné IP adresy se standardní skladovou jednotkou podporují zóny dostupnosti.

Tato architektura využívá Azure Database for MySQL s možností nasazení flexibilního serveru, aby podporovala vysokou dostupnost s automatickým převzetím služeb při selhání. V závislosti na požadavcích na latenci zvolte zónově redundantní vysokou dostupnost nebo vysokou dostupnost stejné zóny. Díky konfiguraci s vysokou dostupností možnost flexibilního serveru automaticky zřizuje a spravuje pohotovostní repliku. Pokud dojde k výpadku, potvrzená data se neztratí.

Key Vault je automaticky zónově redundantní v libovolné oblasti, ve které jsou zóny dostupnosti k dispozici. Instance služby Key Vault, která se používá v této architektuře, se nasadí k ukládání tajných kódů pro back-endové služby.

Škálovatelnost

Škálovatelnost označuje schopnost úlohy efektivně splňovat požadavky, které na ni uživatelé umístí. Přístup s více zónami je lepší pro škálovatelnost než nasazení s jednou zónou, protože rozšiřuje zatížení mezi zóny dostupnosti.

Tato architektura má několik komponent, které můžou automaticky škálovat na základě metrik:

V závislosti na nastavení databáze může dojít k další latenci, když potřebujete synchronizovat data mezi zónami.

Zabezpečení sítě

Chraňte aplikaci před neoprávněným přístupem z internetu, systémů v privátních sítích, dalších služeb Azure a úzce propojených závislostí.

Virtuální síť je základním stavebním blokem privátní sítě v Azure. Tato architektura používá virtuální síť pro oblast nasazení. Umístěte komponenty do podsítí a vytvořte tak další izolaci. Azure Spring Apps vyžaduje vyhrazenou podsíť pro modul runtime služby a samostatnou podsíť pro aplikace Java Spring Boot.

Chraňte své virtuální sítě pomocí služby Azure DDoS Protection. Kombinování ochrany před distribuovaným odepřením služeb (DDoS) s osvědčenými postupy návrhu aplikací za účelem zajištění lepších omezení rizik pro ochranu před útoky DDoS.

Návrh architektury zahrnuje několik řešení typu Platforma jako služba (PaaS), která pomáhají zpracovat žádost uživatele. U těchto služeb umístěte přísné síťové kontroly, abyste měli jistotu, že aplikace není ovlivněná.

Privátní připojení

Využijte privátní koncové body nebo integraci sítě k poskytování komunikace z Azure Spring Apps s podpůrnými službami, jako jsou Key Vault a Azure Database for MySQL.

K řízení přístupu použijte privátní koncové body. Síťová rozhraní používají privátní IP adresy k přenosu služeb do virtuální sítě. Tato architektura používá služby Azure, které automaticky nastavují privátní koncové body.

Nasaďte azure Spring Apps do sítě prostřednictvím procesu injektáže virtuální sítě. K aplikaci se přistupuje tak, že se dostanete k privátní IP adrese.

Databáze se řídí podobným modelem. Režim nasazení flexibilního serveru služby Azure Database for MySQL podporuje integraci virtuální sítě prostřednictvím vyhrazené podsítě.

Další služby, jako je key Vault, jsou připojené k virtuální síti prostřednictvím služby Private Link. U služby Private Link je potřeba povolit privátní koncový bod, který zakáže přístup k veřejné síti. Další informace najdete v tématu Integrace služby Key Vault se službou Private Link.

Privátní koncové body nevyžadují vyhrazenou podsíť, ale je vhodné je umístit do samostatné podsítě. Privátní IP adresy k privátním koncovým bodům se přiřazují z této podsítě.

Privátní koncový bod a síťová integrovaná připojení používají privátní zónu Azure DNS.

Řízení toku provozu

V této architektuře jsou příchozí požadavky povolené jenom prostřednictvím veřejného koncového bodu, který služba Application Gateway zveřejní. Provoz je stále potřeba zkontrolovat, aby se zablokovala zneužití a ohrožení zabezpečení. Firewall webových aplikací ve službě Application Gateway sleduje ohrožení zabezpečení OWASP. Příchozí provoz se kontroluje na základě nakonfigurovaných pravidel s akcí, která se má provést.

Instance Azure Spring Apps má interní nástroj pro vyrovnávání zatížení, který směruje a distribuuje provoz do back-endových služeb. Nástroj pro vyrovnávání zatížení je nakonfigurovaný tak, aby přijímal provoz pouze ze služby Application Gateway.

Aplikace se může muset připojit k jiným koncovým bodům přes veřejný internet. Pokud chcete tento tok omezit, zvažte umístění služby Azure Firewall na výchozí cestu.

Nastavení reverzního proxy serveru

Toto řešení používá službu Application Gateway jako reverzní proxy server. Před Azure Spring Apps ale můžete použít různé reverzní proxy servery. Službu Application Gateway můžete kombinovat se službou Azure Front Door nebo můžete místo služby Application Gateway použít Službu Azure Front Door.

Informace o scénářích reverzního proxy serveru, jejich nastavení a jejich aspektech zabezpečení najdete v tématu Zveřejnění aplikací Azure Spring Apps prostřednictvím reverzního proxy serveru.

Správa identit a přístupu

Kromě používání síťových ovládacích prvků posiluje stav zabezpečení pomocí identity jako hraniční sítě.

Aplikace by se měla ověřit, když se připojí k back-endovým službám, například pokud aplikace načítá tajné kódy ze služby Key Vault. Doporučeným přístupem v aplikaci je povolit spravované identity Microsoft Entra pro prostředky Azure. Tato metoda konfigurace přiřadí aplikaci identitu, aby získala tokeny ID Microsoft Entra, což snižuje režii při správě přihlašovacích údajů.

Tato architektura používá spravované identity přiřazené systémem pro několik interakcí.

Back-endové služby by měly umožňovat přístup k instančnímu objektu, který je přidělen spravované identitě. Služba by měla definovat minimální zásady přístupu pro určité akce. V této architektuře se služba Key Vault používá k udělení přístupu k tajným kódům, certifikátům a klíčům aplikace.

Správa tajných kódů

Tato architektura ukládá tajné kódy aplikací a certifikáty do jednoho trezoru klíčů. Tajné kódy aplikací a certifikáty pro uchovávání názvů hostitelů se liší, takže je můžete chtít uložit do samostatných trezorů klíčů. Tento alternativní přístup přidá do vaší architektury další trezor klíčů.

Sledování

Azure Monitor je monitorovací řešení pro shromažďování, analýzu a reagování na data monitorování z cloudu a místních prostředí.

Přidejte do aplikace instrumentaci pro generování protokolů a metrik na úrovni kódu. Zvažte povolení distribuovaného trasování pro zajištění pozorovatelnosti napříč službami v instanci Azure Spring Apps. Ke shromažďování protokolů a dat metrik použijte nástroj pro správu výkonu aplikací (APM). Agent Application Přehledy Java pro Azure Monitor je dobrou volbou pro nástroj APM.

Pomocí diagnostiky platformy můžete získat protokoly a metriky ze všech služeb Azure, jako je Azure Database for MySQL. Integrujte všechna data s protokoly služby Azure Monitor, abyste mohli poskytovat ucelený přehled o vaší aplikaci a službách platformy.

Pracovní prostor služby Azure Log Analytics je jímka dat monitorování, která shromažďuje protokoly a metriky z prostředků Azure a Přehledy aplikací. Toto řešení protokolování poskytuje viditelnost, která pomáhá automatizačním procesům škálovat komponenty v reálném čase. Analýza dat protokolu může také odhalit nedostatky v kódu aplikace, které můžete řešit za účelem zlepšení nákladů a výkonu.

Pokyny k monitorování specifické pro aplikaci Spring najdete v tématu Monitorování aplikací na konci a monitorování pomocí dynatrace Java OneAgent.

Automatizované nasazení

Co nejvíce automatizujte nasazení infrastruktury a nasazení kódu aplikace.

Automatizace nasazení infrastruktury zaručuje, že konfigurace infrastruktury je stejná, což pomáhá vyhnout se posunům konfigurace, potenciálně mezi prostředími. Automatizaci infrastruktury můžete použít také k testování operací převzetí služeb při selhání.

Pro své aplikace můžete použít strategii modrého nebo kanárského nasazení.

Důležité informace

Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.

Následující aspekty poskytují pokyny k implementaci pilířů architektury Azure Well-Architected Framework v kontextu této architektury.

Spolehlivost

Spolehlivost zajišťuje, aby vaše aplikace splňovala závazky, které uděláte pro své zákazníky. Další informace najdete v tématu Přehled pilíře spolehlivosti.

Implementujte následující návrhy pro vytvoření spolehlivější aplikace:

Zabezpečení

Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.

Implementujte následující návrhy pro vytvoření bezpečnější aplikace:

Optimalizace nákladů

Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

U této architektury můžete očekávat vyšší náklady, protože nasazujete komponenty do více zón. Místo jedné instance Azure Spring Apps spustíte dvě nebo dokonce tři instance. Za povolení redundance zón ve službě ale neplatí žádné další poplatky. Další informace najdete v tématu o cenách služby Azure Spring Apps.

Zvažte následující možnosti implementace, které řeší náklady:

  • Do jedné instance Azure Spring Apps můžete nasadit různé aplikace a typy aplikací. Když nasadíte více aplikací, náklady na základní infrastrukturu se sdílí napříč aplikacemi.

  • Azure Spring Apps podporuje automatické škálování aplikací aktivované metrikami nebo plány, což může zlepšit využití a efektivitu nákladů.

  • Pomocí služby Application Přehledy ve službě Azure Monitor můžete snížit provozní náklady. Průběžné monitorování může pomoct rychleji řešit problémy a zlepšit náklady a výkon.

  • Na základě vašich požadavků vyberte nejlepší cenovou úroveň:

  • Automatické škálování můžete použít pro aplikace k vertikálnímu navýšení a snížení kapacity na základě poptávky.

Odhadované náklady na služby pro tuto architekturu najdete v cenové kalkulačce Azure. Tento odhad používá rozumné výchozí hodnoty pro malou aplikaci. Odhad můžete aktualizovat na základě očekávaných hodnot propustnosti vaší aplikace.

Provozní dokonalost

Efektivita provozu zahrnuje provozní procesy, které nasazují aplikaci a udržují ji spuštěnou v produkčním prostředí. Další informace najdete v tématu Přehled pilíře efektivity provozu.

Kromě dříve popsaných pokynů k monitorování implementujte následující návrhy, které vám pomůžou nasadit a monitorovat aplikaci.

Efektivita výkonu

Efektivita výkonu je schopnost úlohy škálovat se tak, aby efektivním způsobem splňovala požadavky, které na ni kladou uživatelé. Další informace najdete v tématu Přehled pilíře efektivity výkonu.

Implementujte následující návrhy pro vytvoření efektivnější aplikace:

Nasazení tohoto scénáře

Pokud chcete tuto architekturu nasadit, postupujte podle podrobných pokynů v referenční architektuře azure Spring Apps s více zónami. Nasazení používá šablony Terraformu.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autor:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky