Delen via


Het perspectief van het Azure Well-Architected Framework op Azure Functions

Azure Functions is een serverloze rekenservice waarmee u gebeurtenisgestuurde code kunt uitvoeren zonder dat u de infrastructuur expliciet hoeft te beheren. Als een FaaS-aanbieding (Functions as a Service) abstraheert Azure Functions de onderliggende infrastructuur, zodat u zich kunt richten op uw code. Deze service wordt automatisch geschaald op basis van vraag en rekent alleen kosten aan voor de resources die tijdens de uitvoering worden verbruikt.

In dit document wordt ervan uitgegaan dat u als architect de beslissingsstructuur voor berekeningen hebt bekeken en Azure Functions hebt gekozen als de rekenoplossing voor uw workload. De richtlijnen die hier worden gegeven, zijn afgestemd op de principes van de Azure Well-Architected Framework-pijlers.

Belangrijk

Deze handleiding gebruiken

Elke sectie bevat een ontwerpcontrolelijst waarin aandachtsgebieden voor architectuur worden gemarkeerd met specifieke ontwerpstrategieën met betrekking tot Azure Functions.

De aanbevelingen technologiemogelijkheden bieden om deze strategieën te implementeren. Deze lijst is niet volledig, maar bevat belangrijke aanbevelingen om u te helpen uw workloads te bouwen of te optimaliseren met Azure Functions.

Basisarchitectuur met de belangrijkste aanbevelingen: Serverless Functions Architecture Design

Technologiebereik

Deze beoordeling is gericht op de onderling gerelateerde beslissingen voor de volgende Azure-resources:

  • Functie-apps

Notitie

Deze servicehandleiding is gebaseerd op richtlijnen in de App Service (Web Apps) servicehandleiding. Azure Functions is een serverloze rekenservice. Functies worden geïmplementeerd in App Service-plannen, die de onderliggende rekeninfrastructuur voor uw workload bieden. U kunt kiezen uit verschillende hostingabonnementen. Het Verbruiksabonnement wordt volledig beheerd en biedt geen ondersteuning voor toegang tot het bijbehorende App Service-exemplaar, terwijl Dedicated en Premium u de mogelijkheid biedt om het App Service-exemplaar te configureren en te beheren. Raadpleeg de App Service-servicehandleiding voor aanbevelingen en overwegingen bij het kiezen van een Dedicated- of Premium-hostingabonnement.

Betrouwbaarheid

De pijler Betrouwbaarheid zorgt voor continue functionaliteit door tolerantie te bouwen en snel herstel na storingen mogelijk te maken.

De ontwerpprincipes voor betrouwbaarheid bieden ontwerpstrategieën op hoog niveau die van toepassing zijn op afzonderlijke onderdelen, systeemstromen en het algehele systeem.

Controlelijst voor ontwerpen

Start uw ontwerpstrategie op basis van de principes voor het ontwerpen van betrouwbaarheid. Evalueer de relevantie ervan voor uw bedrijfsvereisten terwijl u rekening houdt met de specifieke functies en configuraties van Azure Functions.

  • Inzicht in de triggers: zorg ervoor dat u volledig begrijpt hoe Azure Functions wordt geactiveerd. Triggers omvatten HTTP-aanvragen, timers, wachtrijen en meer. Kies triggers die overeenkomen met de betrouwbaarheidsvereisten van uw toepassing.

    Als uw functie bijvoorbeeld berichten uit een wachtrij verwerkt, moet u ervoor zorgen dat de wachtrij zelf tolerant is en dat berichten opnieuw kunnen worden verwerkt als er een fout optreedt.

  • implementeer herhalingen en duurzame patronen: gebruik ingebouwde strategieën voor herhalingen bij tijdelijke fouten. Voor complexere werkstromen kunt u Durable Functions gebruiken, die statusbeheer en coördinatie bieden voor meerdere functieuitvoeringen.

    Durable Functions is met name handig voor scenario's waarvoor betrouwbaarheid is vereist voor langlopende werkstromen. Ze ondersteunen automatische nieuwe pogingen en duurzaam taakbeheer.

  • Zorgen voor de juiste afhandeling van uitzonderingen: implementeer robuuste uitzonderingsafhandeling om ervoor te zorgen dat functies probleemloos mislukken. Logboekfouten en overweeg het implementeren van waarschuwingsmechanismen voor kritieke fouten.

  • Schaalbaarheidplannen: Azure Functions wordt automatisch uitgeschaald op basis van de vraag. Zorg ervoor dat uw toepassing is ontworpen om pieken te verwerken door de prestaties onder belasting te testen.

    Overweeg om Application Insights te gebruiken om de prestaties te bewaken en bij te houden hoe uw functies in realtime worden geschaald.

  • Ontwerp voor idempotentie: zorg ervoor dat uw functies veilig opnieuw kunnen worden geprobeerd zonder onbedoelde bijwerkingen te veroorzaken. Idempotentie is van cruciaal belang voor functies die communiceren met externe systemen of gegevens wijzigen.

  • Durable Functions gebruiken voor langlopende bewerkingen: Voor bewerkingen waarvoor indelings- of langlopende processen zijn vereist, gebruikt u Durable Functions om de status te behouden en betrouwbaarheid in meerdere stappen te garanderen.

  • De status van uw oplossing bewaken: integreer uw Azure Functions-oplossing in uw algehele systeem voor statusbewaking en waarschuwingen van workloads.

Aanbevelingen
Aanbeveling Voordeel
Configureer automatische nieuwe pogingen voor tijdelijke fouten. Meer informatie over foutafhandeling en herhalingen van Azure Functions Verbetert de betrouwbaarheid door mislukte uitvoeringen automatisch opnieuw uit te voeren, waardoor de kans op gegevensverlies of onderbreking wordt verminderd.
Gebruik Durable Functions- voor het organiseren van complexe werkstromen en langlopende processen. Meer informatie over Durable Functions. Biedt een betrouwbare uitvoering van langlopende werkstromen, met ingebouwd statusbeheer en automatische nieuwe pogingen.
Implementeer Monitoring en gecentraliseerde logboekregistratie met behulp van Application Insights. Application Insights instellen. Verbetert de bewaking en probleemoplossing door gedetailleerde inzichten te bieden in functie-uitvoeringen en afhankelijkheden.
Schaal automatisch uit op basis van het Function Hosting Plan, het triggertype en de vraag. Meer informatie over het schalen van. Zorgt ervoor dat uw toepassing toenames in het verkeer kan afhandelen zonder handmatige tussenkomst, waardoor de betrouwbaarheid en prestaties worden verbeterd.

Veiligheid

De beveiligingspijler is gericht op het waarborgen van de vertrouwelijkheid, integriteit en beschikbaarheid van uw gegevens en services.

De beveiligingsontwerpprincipes bieden een strategie op hoog niveau voor het beveiligen van uw Azure Functions, waaronder aanbevolen procedures voor verificatie, autorisatie en gegevensbeveiliging.

Controlelijst voor ontwerpen

Begin uw ontwerpstrategie met de controlelijst voor ontwerpbeoordeling en beveiliging, en identificeer potentiële kwetsbaarheden. Breid uw strategie uit door zo nodig aanvullende beveiligingsmaatregelen op te nemen.

  • Beheerde identiteitengebruiken: schakel beheerde identiteiten in voor uw functie-apps om veilig toegang te krijgen tot andere Azure-services zonder referenties te hoeven beheren. Meer informatie over beheerde identiteiten.

  • Uw functie-app beveiligen met Microsoft Entra ID: beperk de toegang tot uw functies door Azure Functions zo te configureren dat Microsoft Entra ID-verificatie is vereist. Microsoft Entra-verificatie configureren.

  • Pas netwerkbeveiligingsmaatregelen toe: Krijg inzicht in de beschikbare opties voor uw hostingmodel om de configuratie van het Functions-netwerk te beveiligen. Beveilig het netwerk om te voldoen aan uw vereisten.

Aanbevelingen
Aanbeveling Voordeel
Schakel beheerde identiteiten in voor beveiligde toegang tot Azure-resources. beheerde identiteiten inschakelen Vereenvoudigt het beheer van toegangsgegevens door de noodzaak om geheimen op te slaan en regelmatig te vervangen te elimineren, zodat de beveiliging wordt verbeterd.
Gebruik Azure Key Vault- voor geheimenbeheer en regelmatige rotatie. Key Vault integreren met Azure Functions. Beveiligt gevoelige informatie, zoals API-sleutels en verbindingsreeksen, door ze veilig op te slaan en geheimrotatie te automatiseren wanneer het gebruik van een beheerde identiteit niet haalbaar is.
integreren met een virtueel netwerk en privé-eindpuntengebruiken. Beveiligt functie-apps door de toegang tot uw interne netwerk te beperken en blootstelling aan het openbare internet te voorkomen.

Virtuele netwerk integratie en privé-eindpunten zijn niet beschikbaar in het Consumption-hostingplan.

Kostenoptimalisatie

De pijler Kostenoptimalisatie is gericht op het identificeren van manieren om de kosten te verlagen en tegelijkertijd de benodigde prestatieniveaus te behouden.

De ontwerpprincipes voor Kostenoptimalisatie strategieën bieden voor het verdelen van kosten en prestaties, zodat uw Azure Functions-implementatie efficiënt en rendabel is.

Controlelijst voor ontwerpen

Begin uw strategie voor kostenoptimalisatie met de controlelijst voor de beoordeling van het -ontwerp voor kostenoptimalisatie. Pas uw ontwerp aan zodat het overeenkomt met de budgettaire vereisten.

  • Het juiste prijsplan kiezen: Azure Functions biedt meerdere prijsplannen, waaronder het Verbruiksabonnement, het Premium-abonnement en het Toegewezen (App Service)-abonnement. Kies een plan dat overeenkomt met uw workload- en kostenoverwegingen. prijsplannen vergelijken.

    Het verbruiksabonnement is ideaal voor onvoorspelbare workloads met onregelmatige uitvoeringen, omdat u alleen betaalt voor de uitvoeringstijd en verbruikte resources. Wanneer uw app niet actief is, worden er geen kosten in rekening gebracht.

  • Uitvoeringstijd optimaliseren: De uitvoeringstijd verminderen door functiecode te optimaliseren. Minimaliseer het gebruik van externe afhankelijkheden en optimaliseer codelogica om de duur van elke uitvoering te verminderen.

  • Kosten bewaken en analyseren: Controleer regelmatig het gebruik en de kosten van functie-apps met behulp van Azure Cost Management en stel waarschuwingen in om afwijkingen in kosten te detecteren. Meer informatie over kostenbeheer en optimalisatie.

Aanbevelingen
Aanbeveling Voordeel
Gebruik het Verbruiksplan voor workloads met onvoorspelbaar verkeer. Begrijp het verbruiksplan. Verlaagt de kosten door alleen kosten in rekening te brengen voor de resources die worden gebruikt tijdens het uitvoeren van de functie, waardoor kosten worden vermeden die zijn gekoppeld aan niet-actieve resources.
Reserveer capaciteit voor Elastic Premium-abonnementen of Dedicated App Service-plannen als uw workload voorspelbaar is. Verlaagt de kosten door kortingsprijzen voor voorspelbare workloads met stabiele uitvoeringspatronen.
Regelmatig kosten bewaken en waarschuwingen instellen voor afwijkingen. Stel kostenwaarschuwingen in. Helpt kostenpieken vroeg te identificeren, waardoor proactief beheer en optimalisatie mogelijk zijn.

Operationele uitmuntendheid

Operational Excellence is gericht op processen en procedures voor implementatie, waarneembaarheid en beheer van uw Azure Functions-toepassingen.

De ontwerpprincipes voor operationele uitmuntendheid strategieën bieden om ervoor te zorgen dat uw functie-apps efficiënt worden geïmplementeerd, beheerd en bewaakt.

Controlelijst voor ontwerpen

Begin uw designstrategie op basis van de ontwerpprincipes voor Operationele Uitmuntendheid, en bied strategieën aan om de operationele kwaliteit van Azure Functions te behouden.

  • Implementaties automatiseren: CI/CD-pijplijnen gebruiken om de implementatie van uw functie-apps te automatiseren. Integreer met Azure DevOps of GitHub Actions voor naadloze implementatiewerkstromen.

  • Statuscontrole implementeren: Gebruik Azure Monitor en Application Insights om de status en prestaties van uw functies bij te houden. Waarschuwingen instellen voor kritieke metrische gegevens en aangepaste dashboards gebruiken voor realtime inzichten. Azure Functionbewaken.

  • Uw oplossing veiligimplementeren: inzicht in de implementatiemodellen die beschikbaar zijn voor Azure Functions en het model gebruiken dat het beste voldoet aan uw veilige implementatieprocedures.

  • plan voor herstel na noodgevallen: implementeer strategieën voor herstel na noodgevallen in meerdere regio's en beschikbaarheidszones voor kritieke functies. plan voor herstel na noodgevallen.

Aanbevelingen
Aanbeveling Voordeel
Automatiseer implementaties met CI/CD-pijplijnen met behulp van Azure DevOps of GitHub Actions. CI/CD configureren Verbetert de implementatieconsistentie, vermindert handmatige fouten en versnelt de time-to-market voor nieuwe functies.
Gebruik implementatiesleuven voor faseringsaanpassingen vóór de productierelease. Implementeren met behulp van deploymentslots. Vermindert het risico op het introduceren van fouten in productie en maakt veilige terugdraaiacties mogelijk als er problemen worden gedetecteerd.
Implementeer gecentraliseerde bewaking met behulp van Application Insights en Azure Monitor met behulp van beschikbare metrische gegevens. Verbetert de zichtbaarheid van de prestaties van functies, waardoor problemen snel kunnen worden geïdentificeerd en opgelost.

Prestatie-efficiëntie

Prestatie-efficiëntie zorgt voor optimale gebruikerservaring, zelfs onder verhoogde belasting door de capaciteit effectief te beheren.

De ontwerpprincipes voor Prestatie-efficiëntie strategieën bieden om u te helpen functie-apps te ontwerpen die voldoen aan prestatievereisten, zelfs als de vraag toeneemt.

Controlelijst voor ontwerpen

Start uw prestatiestrategie met de Ontwerpprincipes van Prestatie-efficiëntieen ontwerp uw functie-apps om optimaal te schalen en te presteren.

  • nl-NL: Koude start optimaliseren: Minimaliseer de impact van koude starts met behulp van Premium Flex-abonnementen met vooraf opgewarmde exemplaren of zorg ervoor dat uw functies warm blijven met strategieën zoals de Azure Functions-opwarmtrigger.

  • Functiecode optimaliseren: Schrijf efficiënte code om de uitvoeringstijd en het resourceverbruik te verminderen. Vermijd langdurige bewerkingen en optimaliseer externe service-aanroepen.

  • Automatisch schalen inschakelen: maak gebruik van de mogelijkheden voor automatisch schalen van Azure Functions om automatisch uit te schalen op basis van de vraag. Zorg ervoor dat uw schaalregels goed zijn gedefinieerd en getest.

  • Prestatiegegevens bewaken: Application Insights gebruiken om belangrijke prestatiegegevens te bewaken, zoals uitvoeringstijd, CPU en geheugengebruik. Stel waarschuwingen in voor prestatievermindering. Prestaties monitoren.

Aanbevelingen
Aanbeveling Voordeel
Gebruik het Elastic Premium-abonnement met een voorverwarmd exemplaar om de latentie van koude start te minimaliseren. Begrijp koude start. Vermindert de latentie die is gekoppeld aan koude startbewerkingen, waardoor reactietijden voor tijdgevoelige toepassingen worden verbeterd.
functiecode optimaliseren om de uitvoeringstijd te verkorten. aanbevolen procedures voor Azure Functions. Verbetert de prestaties door de tijd en resources te verminderen die nodig zijn voor elke functie-uitvoering.
Automatisch schalen inschakelen om de capaciteit automatisch aan te passen op basis van de vraag. automatische schaalaanpassing configureren. Zorgt ervoor dat uw functie-apps verschillende belastingen kunnen verwerken zonder handmatige tussenkomst, waardoor de prestaties onder druk blijven.

Azure-beleid

Azure biedt een uitgebreide set ingebouwde beleidsregels voor het controleren en afdwingen van configuraties voor Azure Functions en hun afhankelijkheden. U kunt Azure Policy gebruiken om ervoor te zorgen dat uw functie-apps voldoen aan de organisatiestandaarden voor beveiliging, kostenoptimalisatie en prestaties.

U kunt bijvoorbeeld beleidsregels afdwingen waarvoor het volgende is vereist:

  • Beheerde identiteiten moeten worden ingeschakeld voor alle functie-apps.
  • Functie-applicaties om alleen privé-eindpunten te gebruiken voor netwerkbeveiliging.
  • Diagnostische logging moet worden ingeschakeld voor alle functie-apps.

Bekijk de ingebouwde Azure Policy-definities om beleid te vinden dat overeenkomt met de vereisten van uw organisatie.

Aanbevelingen voor Azure Advisor

Azure Advisor is een gepersonaliseerde cloudconsultant waarmee u de aanbevolen procedures kunt volgen om uw Azure-implementaties te optimaliseren. Adviseur-aanbevelingen zijn afgestemd op Well-Architected Frameworkpijlers.

Zie de aanbevelingen in Azure Advisorvoor meer informatie.

Volgende stappen

Bekijk de volgende bronnen om de aanbevelingen in dit document verder te verkennen: