Sdílet prostřednictvím


Perspektiva architektury Azure Well-Architected v Azure Functions

Azure Functions je bezserverová výpočetní služba, která umožňuje spouštět kód řízený událostmi bez nutnosti explicitně spravovat infrastrukturu. Azure Functions jako „Funkce jako služba“ (FaaS) abstrahuje podkladovou infrastrukturu, což vám umožňuje soustředit se na váš kód. Tato služba se automaticky škáluje na základě poptávky a účtuje poplatky pouze za prostředky spotřebované během provádění.

Tento dokument předpokládá, že jste jako architekt zkontrolovali rozhodovací strom výpočetních prostředků a jako výpočetní řešení pro vaši pracovní zátěž zvolili Azure Functions. Pokyny uvedené zde odpovídají principům pilířů architektury Azure Well-Architected Framework.

Důležitý

Jak používat tohoto průvodce

Každá část obsahuje kontrolní seznam návrhu, který zvýrazňuje aspekty architektury s konkrétními strategiemi návrhu souvisejícími se službou Azure Functions.

Doporučení nabízejí technologické možnosti, které vám pomůžou tyto strategie implementovat. Tento seznam není vyčerpávající, ale obsahuje klíčová doporučení, která vám pomůžou sestavovat nebo optimalizovat úlohy pomocí Azure Functions.

Základní architektura znázorňující klíčová doporučení: návrh architektury bezserverových funkcí

Rozsah technologií

Tato kontrola se zaměřuje na vzájemně nesouvisející rozhodnutí pro následující prostředky Azure:

  • Aplikace funkcí

Poznámka

Tato příručka služby vychází z pokynů nalezených v průvodci službou App Service (Web Apps). Azure Functions je bezserverová výpočetní služba. Funkce se nasazují v plánech služby App Service, které poskytují základní výpočetní infrastrukturu pro vaši úlohu. Můžete si vybrat z několika plánů hostování. Plán Consumption je plně spravovaný a nepodporuje přístup k přidružené instanci služby App Service, zatímco Dedicated a Premium umožňují konfigurovat a spravovat instanci služby App Service. Doporučení a důležité informace o výběru plánu hostování typu Dedicated nebo Premium najdete v průvodci službou App Service.

Spolehlivost

Pilíř spolehlivosti zajišťuje nepřetržitou funkčnost tím, že budování odolnosti a umožňuje rychlé zotavení po selháních.

Principy návrhu spolehlivost poskytují strategie návrhu vysoké úrovně, které se vztahují na jednotlivé komponenty, systémové toky a celkový systém.

Kontrolní seznam návrhu

Zahajte svou strategii návrhu na základě principů návrhu spolehlivosti . Při zvažování konkrétních funkcí a konfigurací služby Azure Functions vyhodnoťte její význam pro vaše obchodní požadavky.

  • Pochopte spouštěče: Ujistěte se, že plně rozumíte tomu, jak se Azure Functions aktivuje. Triggery zahrnují požadavky HTTP, časovače, fronty a další. Zvolte triggery, které odpovídají požadavkům vaší aplikace na spolehlivost.

    Pokud například vaše funkce zpracovává zprávy z fronty, ujistěte se, že je samotná fronta odolná a že se zprávy dají znovu zpracovat, pokud dojde k selhání.

  • Implementace opakovaných pokusů a trvalých vzorů: Použijte předdefinované zásady opakování pro přechodné selhání. U složitějších pracovních postupů zvažte použití Durable Functions, které nabízejí správu stavu a koordinaci napříč několika prováděními funkcí.

    Durable Functions jsou zvláště užitečné pro scénáře, které vyžadují spolehlivost napříč dlouhotrvajícími pracovními postupy. Podporují automatické opakování a trvalou správu úloh.

  • Zajistěte řádné zpracování výjimek: Implementujte robustní zpracování výjimek, aby se zajistilo, že funkce budou selhávat hladce. Zaznamenávejte chyby a zvažte implementaci mechanismů upozorňování na kritické výpadky.

  • Plán škálovatelnosti: Azure Functions automaticky škáluje na základě poptávky. Ujistěte se, že je vaše aplikace navržená tak, aby zvládla špičky testováním výkonu při zatížení.

    Zvažte použití Application Insights k monitorování výkonu a sledování škálování vašich funkcí v reálném čase.

  • Návrh pro idempotentní: Ujistěte se, že se vaše funkce dají bezpečně opakovat, aniž by to způsobilo nežádoucí vedlejší účinky. Idempotence je zásadní pro funkce, které pracují s externími systémy nebo upravují data.

  • Používat Durable Functions pro dlouhotrvající operace: Pro operace, které vyžadují orchestraci nebo dlouhotrvající procesy, použijte Durable Functions k udržování stavu a zajištění spolehlivosti napříč několika kroky.

  • Monitorování stavu řešení: Integrujte řešení Azure Functions do celkového systému monitorování stavu úloh a upozorňování.

Doporučení
Doporučení Prospěch
Nakonfigurujte automatické opakování pro přechodné chyby. Další informace o zpracování chyb Azure Functions a opakovaných pokusech Zlepšuje spolehlivost tím, že se automaticky opakuje neúspěšné spuštění, což snižuje pravděpodobnost ztráty nebo přerušení dat.
K orchestraci složitých pracovních postupů a dlouhotrvajících procesů použijte Durable Functions. Další informace o Durable Functions. Poskytuje spolehlivé spouštění dlouhotrvajících pracovních postupů s integrovanou správou stavu a automatickými opakováními.
Implementujte monitorování a centralizované protokolování pomocí Application Insights. Nastavit Application Insights. Vylepšuje monitorování a řešení potíží tím, že poskytuje podrobné přehledy o spouštění funkcí a závislostech.
automaticky škálovat na základě plánu hostování funkcí, typu triggeru a poptávky. Informace o škálování. Zajišťuje, aby vaše aplikace zvládla nárůst provozu bez ručního zásahu, což zvyšuje spolehlivost a výkon.

Bezpečnost

Pilíř zabezpečení je zaměřen na zajištění důvěrnosti, integrity a dostupnosti vašich dat a služeb.

Principy návrhu zabezpečení nabízejí strategii vysoké úrovně pro zabezpečení služby Azure Functions, včetně osvědčených postupů pro ověřování, autorizaci a ochranu dat.

Kontrolní seznam návrhu

Začněte svou strategii návrhu s kontrolním seznamem pro přezkum návrhu zabezpečení a identifikujte potenciální zranitelnosti. Rozšiřte strategii začleněním dalších bezpečnostních opatření podle potřeby.

  • Používat spravované identity: Povolte spravovaným identitám pro aplikace funkcí zabezpečený přístup k dalším službám Azure bez nutnosti spravovat přihlašovací údaje. Informace o spravovaných identitách.

  • Zabezpečení aplikace funkcí pomocíMicrosoft Entra ID: Omezte přístup k funkcím tak, že nakonfigurujete Službu Azure Functions tak, aby vyžadovala ověřování Microsoft Entra ID. Nastavte ověřování Microsoft Entra.

  • Použití ovládacích prvků zabezpečení sítě: Seznamte se s dostupnými možnostmi modelu hostování pro zabezpečení konfigurace sítě Functions. Zabezpečte síť tak, aby splňovala vaše požadavky.

Doporučení
Doporučení Prospěch
Povolte spravované identity pro zabezpečený přístup k prostředkům Azure. Povolení spravovaných identit Zjednodušuje správu přihlašovacích údajů tím, že eliminuje potřebu ukládat a obměňovat tajné kódy, což zvyšuje zabezpečení.
Ke správě tajných kódů a pravidelné obměně použijte služby Azure Key Vault. Integrujte službu Key Vault s Azure Functions. Chrání citlivé informace, jako jsou klíče rozhraní API a připojovací řetězce, jejich bezpečné uložení a automatizovanou obměnou tajných klíčů, pokud použití spravované identity není možné.
Integrace s virtuální sítě a použití privátních koncových bodů. Zabezpečuje aplikace funkcí omezením přístupu k interní síti a zabráněním ohrožení veřejného internetu.

Integrace virtuální sítě a privátní koncové body nejsou dostupné v hostingovém plánu Consumption.

Optimalizace nákladů

Pilíř Optimalizace nákladů se zaměřuje na identifikaci způsobů, jak snížit náklady při zachování nezbytných úrovní výkonu.

Principy návrhu optimalizace nákladů poskytují strategie pro vyrovnávání nákladů a výkonu a zajišťují efektivní a nákladově efektivní nasazení služby Azure Functions.

Kontrolní seznam návrhu

Zahajte strategii optimalizace nákladů s návrhovým kontrolním seznamem pro Optimalizaci nákladůa upravte návrh tak, aby odpovídal rozpočtovým požadavkům.

  • Zvolit správný cenový plán: Azure Functions nabízí více cenových plánů, včetně plánu Consumption, plánu Premium a plánu Dedicated (App Service). Zvolte plán, který je v souladu s ohledem na vaše úlohy a náklady. Porovnání cenových plánů.

    Plán Consumption je ideální pro nepředvídatelné úlohy s občasnými spouštěními, protože platíte jenom za dobu provádění a spotřebované prostředky. Když je vaše aplikace nečinná, nic se vám neúčtuje.

  • Optimalizovat dobu provádění: Zkraťte dobu provádění optimalizací kódu funkce. Minimalizujte použití externích závislostí a optimalizujte logiku kódu, abyste snížili dobu trvání každého spuštění.

  • Monitorování a analýza nákladů: Pomocí služby Azure Cost Management pravidelně monitorujte využití a náklady na aplikace funkcí a nastavte upozornění na detekci nákladových anomálií. Informace o správě nákladů a optimalizaci.

Doporučení
Doporučení Prospěch
Pro úlohy s nepředvídatelným provozem použijte plán spotřeby . Porozumění plánu spotřeby. Snižuje náklady tím, že účtuje jenom prostředky používané při provádění funkce, a zabraňuje tak nákladům souvisejícím s nečinnými prostředky.
Rezervujte kapacitu pro plány Elastic Premium nebo vyhrazené plány služby App Service , pokud je vaše úloha předvídatelná. Snižuje náklady prostřednictvím zvýhodněných cen pro předvídatelné úlohy se vzory stabilního spouštění.
Pravidelně monitorovat náklady a nastavit výstrahy na anomálie. Nastavení upozornění na náklady. Pomáhá včas identifikovat špičky nákladů, což umožňuje proaktivní správu a optimalizaci.

Efektivita provozu

Efektivita provozu se zaměřuje na procesy a postupy pro nasazení, pozorovatelnost a správu aplikací Azure Functions.

Principy návrhu efektivity provozu poskytují strategie pro zajištění efektivního nasazení, správy a monitorování vašich aplikací funkcí.

Kontrolní seznam návrhu

Zahajte strategii návrhu na základě principů návrhu pro efektivitu provozu nabízejí strategie pro zachování provozní kvality azure Functions.

  • Automatizovat nasazení: Pomocí kanálů CI/CD můžete automatizovat nasazení funkčních aplikací. Integrace s Azure DevOps nebo GitHub Actions pro pracovní postupy bezproblémového nasazení.

  • Implementace monitorování stavu: Pomocí služby Azure Monitor a Application Insights můžete sledovat stav a výkon vašich funkcí. Nastavte upozornění na kritické metriky a pro přehledy v reálném čase používejte vlastní řídicí panely. Monitorování funkce Azure Function.

  • Bezpečně nasadit řešení: Seznamte se s modely nasazení , dostupné pro Azure Functions, a osvojte si model, který nejlépe vyhovuje vašim postupům bezpečného nasazení.

  • Plán zotavení po havárii: Implementujte strategie zotavení po havárii pomocí zotavení po havárii mezi oblastmi a zóny dostupnosti pro důležité funkce. Plán pro DR.

Doporučení
Doporučení Prospěch
Automatizace nasazení pomocí kanálů CI/CD pomocí Azure DevOps nebo GitHub Actions. Nastavit CI/CD Zlepšuje konzistenci nasazení, snižuje počet ručních chyb a urychluje uvedení nových funkcí na trh.
Použijte sloty nasazení pro přípravné změny před produkčním vydáním. Nasadit pomocí slotů. Snižuje riziko zavedení chyb do produkčního prostředí a umožňuje bezpečné vrácení zpět, pokud jsou zjištěny problémy.
Implementujte centralizované monitorování pomocí Application Insights a Azure Monitoru s využitím dostupných metrik . Vylepšuje přehled o výkonu funkcí a pomáhá rychle identifikovat a vyřešit problémy.

Efektivita výkonu

Efektivita výkonu zajišťuje optimální uživatelské prostředí i při zvýšeném zatížení efektivní správou kapacity.

Principy návrhu efektivity výkonu poskytují strategie, které vám pomůžou navrhovat aplikace funkcí, které splňují požadavky na výkon, i když se poptávka zvyšuje.

Kontrolní seznam návrhu

Zahajte výkonnostní strategii pomocí principů návrhu efektivity výkonu aa navrhněte funkční aplikace tak, aby se škálovaly a fungovaly optimálně.

  • Optimalizovat studený start: Minimalizujte dopad studeného startu použitím plánů Premium Flex s předem zahřátou instancí nebo zajištěním, že vaše funkce zůstanou aktivní, pomocí strategií, jako je inicializace služby Azure Functions.

  • Optimalizace kódu funkce: Napište efektivní kód, který zkracuje dobu provádění a spotřebu prostředků. Vyhněte se dlouhotrvajícím operacím a optimalizujte volání externích služeb.

  • Povolení automatického škálování: Využijte funkce automatického škálování služby Azure Functions k automatickému horizontálnímu navýšení kapacity na základě poptávky. Ujistěte se, že jsou pravidla škálování dobře definovaná a otestovaná.

  • Monitorování metrik výkonu: Pomocí Application Insights můžete monitorovat klíčové metriky výkonu, jako je doba provádění, využití procesoru a paměti. Nastavte upozornění na snížení výkonu. Monitorování výkonu.

Doporučení
Doporučení Prospěch
Pomocí plánu Elastic Premium s předhřejenou instancí minimalizujte latenci studeného spuštění. Pochopit studený start. Snižuje latenci spojenou se studenými starty a zlepšuje dobu odezvy pro aplikace citlivé na čas.
optimalizovat kód funkce, aby se zkrátila doba provádění. osvědčené postupy pro službu Azure Functions. Zvyšuje výkon zkrácením času a prostředků potřebných pro každé spuštění funkce.
Povolit automatické škálování automaticky upravit kapacitu na základě poptávky. Konfigurace automatického škálování. Zajišťuje, aby vaše aplikace funkcí zvládly různá zatížení bez ručního zásahu a zachovaly výkon pod tlakem.

Zásady Azure

Azure poskytuje komplexní sadu předdefinovaných zásad pro auditování a vynucování konfigurací pro Azure Functions a jejich závislosti. Azure Policy můžete použít k zajištění toho, aby vaše aplikace funkcí dodržovaly standardy organizace pro zabezpečení, optimalizaci nákladů a výkon.

Můžete například vynutit zásady, které vyžadují:

  • Spravované identity budou povoleny pro všechny funkční aplikace.
  • Funkční aplikace by měly používat pouze privátní koncové body pro zabezpečení sítě.
  • Diagnostické protokolování bude povoleno pro všechny funkční aplikace.

Projděte si předdefinované definice služby Azure Policy a vyhledejte zásady, které odpovídají požadavkům vaší organizace.

Doporučení azure Advisoru

Azure Advisor je individuální cloudový konzultant, který vám pomůže postupovat podle osvědčených postupů pro optimalizaci nasazení Azure. Doporučení Advisoru jsou v souladu s pilíři architektury Well-Architected.

Další informace najdete v doporučeních v Azure Advisoru.

Další kroky

Zvažte následující zdroje informací a prozkoumejte doporučení zvýrazněná v tomto dokumentu: