Azure Functions v hybridním prostředí

Azure Functions
Azure Monitor
Azure Pipelines
Azure Storage
Azure Virtual Network

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

Diagram znázorňuje několik místních virtuálních počítačů, které jsou připojené ke službě Azure Functions v různých oblastech. Vývojáři monitorují své aplikace funkcí pomocí služby Azure Monitor.

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:

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:

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

Další kroky

Projděte si následující doprovodné materiály k architektuře pro Azure Functions:

Projděte si následující doprovodné materiály k architektuře pro virtuální sítě Azure: