Tato referenční architektura znázorňuje několik místních větví organizace, které jsou rozložené geograficky. Každé umístění používá aplikaci funkcí Microsoft Azure, která je nakonfigurovaná s plánem Premium v blízké cloudové oblasti. Vývojáři v této architektuře monitorují všechny aplikace Azure Functions pomocí služby Azure Monitor jako jediného podokna skla.
Architektura
Stáhněte si soubor aplikace Visio s touto architekturou.
Komponenty
Tato architektura se skládá z následujících součástí:
- Funkce Azure Functions. Azure Functions je bezserverová platforma jako služba (PaaS) v Azure, která spouští malý kód s jedním úkolem, aniž by bylo nutné vytvořit novou infrastrukturu. Plán Azure Functions Premium přidává možnost komunikovat se službou Azure Functions soukromě přes virtuální síť.
- Azure Virtual Network. Virtuální sítě Azure jsou privátní sítě založené na cloudové platformě Azure, aby prostředky Azure mohly vzájemně komunikovat zabezpečeným způsobem. Koncové body služeb virtuálních sítí Azure zajišťují, aby prostředky Azure mohly komunikovat pouze přes zabezpečenou páteřní síť virtuální sítě.
- Místní síť: V této architektuře vytvořila organizace zabezpečenou privátní síť, která propojuje různé větve. Tato privátní síť je připojená k virtuálním sítím Azure pomocí připojení typu site-to-site .
- Vývojářské pracovní stanice. V této architektuře můžou jednotliví vývojáři pracovat na kódu pro Azure Functions zcela v zabezpečené privátní síti nebo z libovolného vzdáleného umístění. V obou scénářích mají vývojáři přístup ke službě Azure Monitor, aby mohli dotazovat nebo sledovat metriky a protokoly pro aplikace funkcí.
Podrobnosti scénáře
Obvyklá využití pro tuto architekturu:
- Organizace s mnoha fyzickými umístěními připojenými k virtuální síti v Azure za účelem komunikace se službou Azure Functions
- Úlohy s vysokým růstem, které používají Azure Functions místně a udržují možnost používat Azure pro jakékoli neočekávané nárůsty v práci.
Doporučení
Následující doporučení platí pro většinu scénářů. Pokud nemáte konkrétní požadavek, který by těmto doporučením nedopovídal, postupujte podle nich.
Návrh architektury bez serveru
Tradiční podnikové aplikace se směruje k monolitické aplikační architektuře, ve které jeden kód "řešení" spouští obchodní logiku celé organizace. S Azure Functions je osvědčeným postupem navrhnout bezserverovou architekturu, ve které jednotlivé funkce provádějí jednotlivé úlohy. Tyto jednotlivé úlohy jsou navržené tak, aby běžely rychle a integrovali do větších pracovních postupů.
Bezserverová architektura ve službě Azure Functions má mnoho výhod, mezi které patří:
- Aplikace se můžou automaticky škálovat podle jednotlivých obchodních funkcí místo škálování celého řešení. To může pomoct snížit náklady škálováním pouze toho, co je potřeba pro každý úkol, aby mohly sloužit stávajícím úlohám.
- Azure Functions poskytuje deklarativní vazby pro mnoho služeb Azure a snižuje množství kódu, které váš tým potřebuje k psaní, testování a údržbě.
- Jednotlivé funkce je možné opakovaně používat, což snižuje množství opakovaného kódu, který je nezbytný pro velká podniková řešení.
Spuštění místní služby Azure Functions
Můžete zvolit, aby služba Azure Functions běžela místně, a ne v Azure; Například:
- Váš tým může chtít spustit Azure Functions v rámci stávající místní instalace Kubernetes.
- Při vývoji může váš tým snadněji vyvíjet místně pomocí rozhraní příkazového řádku místo editoru na portálu.
- Vaše funkce se budou spouštět místně se sadou nástrojů nainstalovanou na místních virtuálních počítačích.
Azure Functions můžete spouštět místně třemi způsoby:
- Azure Functions Core Tools Azure Functions Core Tools je sada vývojářů, která se obvykle instaluje ze správce balíčků uzlů (npm). Umožňuje vývojářům vyvíjet, ladit a testovat aplikace funkcí na příkazovém řádku na místním počítači.
- Image kontejneru Dockeru pro Azure Functions Tuto image kontejneru můžete použít jako základní image pro kontejnery, které spouští Azure Functions na hostiteli Dockeru nebo v Kubernetes.
- Kubernetes. Azure Functions podporuje bezproblémové škálování řízené událostmi v rámci clusteru Kubernetes pomocí automatického škálování založeného na událostech (KEDA) založeného na Kubernetes. Projděte si osvědčené postupy pro správu clusterů Azure Kubernetes Service a clusterů Kubernetes s podporou Služby Azure Arc.
Připojení k síti
Vytváření aplikací funkcí pomocí plánu Premium otevírá možnost vysoce zabezpečeného připojení mezi sítěmi mezi virtuálními sítěmi Azure, Azure a místními sítěmi a sítěmi pro každou místní větev.
Měli byste použít připojení typu site-to-site nebo Azure ExpressRoute mezi virtuální sítí Azure a místními sítěmi. To umožňuje místním větvím komunikovat s aplikacemi funkcí v Azure pomocí jejich koncových bodů služby.
Kromě toho by každá virtuální síť v Azure měla také používat partnerský vztah virtuálních sítí k povolení komunikace mezi jednotlivými aplikacemi funkcí napříč oblastmi.
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.
Škálovatelnost
- Kód Azure Functions by měl být navržený tak, aby mohl škálovat nekonečně. Zvažte podmínky časování, zapůjčené soubory a další úlohy, které by mohly způsobit zablokování jedné funkce. Zvažte také napsání veškerého kódu Azure Functions tak, aby byl v návrhu bezstavový a defenzivní .
- U aplikací funkcí, které používají účty Azure Storage v triggerech nebo vazbách, nepoužívejte stejný účet, který se používá k ukládání metadat o aplikacích funkcí a jejich spuštěních.
Dostupnost
- Azure Functions v plánu Consumption se obvykle může vertikálně snížit na nulu instancí. Když nová událost aktivuje aplikaci funkcí, musí se vytvořit nová instance se spuštěným kódem. Latence přidružená k tomuto procesu se označuje jako studený start. Plán Azure Functions Premium nabízí možnost konfigurace předem připravených instancí pro všechny nové požadavky. Počet předem připravených instancí můžete nakonfigurovat až do minimálního počtu instancí v konfiguraci horizontálního navýšení kapacity.
- Zvažte, jestli chcete mít více plánů Premium ve více oblastech a pomocí Azure Traffic Manageru správně směrovat požadavky.
Možnosti správy
- Azure Functions musí být v prázdné podsíti, která je jiná než ostatní prostředky Azure. To může vyžadovat větší plánování při navrhování podsítí pro vaši virtuální síť.
- Zvažte vytvoření proxy pro každý místní prostředek, ke kterému může Azure Functions potřebovat přístup. To může chránit integritu vaší aplikace před všemi neočekáženými změnami místních sítí.
- Pomocí služby Azure Monitor můžete sledovat analýzy a protokoly pro Azure Functions v celém řešení.
DevOps
- V ideálním případě by operace nasazení měly pocházet z jednoho týmu (Dev nebo DevOps), a ne z každé jednotlivé větve. Zvažte použití moderního systému pracovních postupů, jako je Azure Pipelines nebo GitHub Actions, k nasazení aplikací funkcí opakovatelným způsobem ve všech oblastech Azure a potenciálně místně.
- Pomocí systému pracovních postupů můžete automatizovat opětovné nasazení kódu do Služby Azure Functions, protože se kód aktualizuje a označí pro vydání.
- Použijte sloty nasazení k otestování služby Azure Functions před finálním nasdílením změn do produkčního prostředí.
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ů.
- K odhadu nákladů použijte cenovou kalkulačku Azure.
- Plán Azure Functions Premium se vyžaduje pro připojení k virtuální síti Azure, přístup k privátní lokalitě, koncové body služby a předem zahřejené instance.
- Plán Azure Functions Premium se účtuje na instancích místo spotřeby. Minimálně jedna instance zajistí, že bude existovat alespoň měsíční vyúčtování i bez spuštění. Můžete nastavit maximální počet instancí pro řízení nákladů na úlohy, které se můžou zvětšit.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Raunak Jhawar | Vedoucí cloudový architekt
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- Dokumentace ke službě Azure Functions
- Azure App Service Hybrid Connections
- Správa hybridních prostředí pomocí PowerShellu
- Azure Functions pro připojení k prostředkům ve virtuální síti Azure
- Dokumentace k virtuálním sítím Azure
Související prostředky
Projděte si následující doprovodné materiály k architektuře pro Azure Functions:
- Zpracování bezserverových událostí
- Azure Functions v hybridním prostředí
- Škálování napříč cloudy s využitím Azure Functions
- Návod k kódu: Bezserverová aplikace se službou Functions
Projděte si následující doprovodné materiály k architektuře pro virtuální sítě Azure: