Azure Functions in een hybride omgeving

Azure Functions
Azure Monitor
Azure Pipelines
Azure Storage
Azure Virtual Network

Deze referentiearchitectuur illustreert meerdere lokale vertakkingen van een organisatie die geografisch wordt verspreid. Elke locatie maakt gebruik van een Microsoft Azure-functie-app die is geconfigureerd met het Premium-abonnement in een nabijgelegen cloudregio. De ontwikkelaars in deze architectuur controleren alle Azure Function-apps met behulp van Azure Monitor als één deelvenster met glas.

Architectuur

Het diagram illustreert meerdere lokale virtuele machines (VM's) die zijn verbonden met Azure Functions in verschillende regio's. Ontwikkelaars controleren hun functie-apps met behulp van Azure Monitor.

Een Visio-bestand van deze architectuur downloaden.

Onderdelen

De architectuur bestaat uit de volgende onderdelen:

  • Azure Functions. Azure Functions is een serverloos platform as a service (PaaS) in Azure dat kleine code met één taak uitvoert zonder dat er nieuwe infrastructuur hoeft te worden gemaakt. Met het Azure Functions Premium-abonnement kunt u privé communiceren met Azure Functions via een virtueel netwerk.
  • Azure Virtual Network. Virtuele Azure-netwerken zijn privénetwerken die zijn gebouwd op het Azure-cloudplatform, zodat Azure-resources op een veilige manier met elkaar kunnen communiceren. Service-eindpunten voor virtuele Azure-netwerken zorgen ervoor dat Azure-resources alleen kunnen communiceren via de beveiligde backbone van het virtuele netwerk.
  • On-premises netwerk. In deze architectuur heeft de organisatie een beveiligd particulier netwerk gemaakt dat de verschillende vertakkingen verbindt. Dit privénetwerk is verbonden met hun virtuele Azure-netwerken met behulp van een site-naar-site-verbinding .
  • Werkstations voor ontwikkelaars. In deze architectuur werken afzonderlijke ontwikkelaars mogelijk volledig aan code voor Azure Functions in het beveiligde privénetwerk of vanaf een externe locatie. In beide scenario's hebben ontwikkelaars toegang tot Azure Monitor om metrische gegevens en logboeken voor de functie-apps op te vragen of te observeren.

Scenariodetails

Deze architectuur wordt doorgaans gebruikt voor:

  • Organisaties met veel fysieke locaties die zijn verbonden met een virtueel netwerk in Azure om te communiceren met Azure Functions.
  • Workloads met een hoge groei die Azure Functions lokaal gebruiken en de optie behouden om Azure te gebruiken voor onverwachte pieken in het werk.

Aanbevelingen

De volgende aanbevelingen gelden voor de meeste scenario's. Volg deze aanbevelingen tenzij er een specifieke vereiste is die iets anders voorschrijft.

Ontwerpen voor een serverloze architectuur

Traditionele bedrijfstoepassingen trend naar een monolithische toepassingsarchitectuur waarin één code 'oplossing' de bedrijfslogica van de hele organisatie uitvoert. Met Azure Functions kunt u het beste ontwerpen voor een serverloze architectuur waarin afzonderlijke functies afzonderlijke taken uitvoeren. Deze afzonderlijke taken zijn ontworpen om snel te worden uitgevoerd en te integreren in grotere werkstromen.

Serverloze architectuur in Azure Functions heeft veel voordelen, waaronder:

  • Toepassingen kunnen automatisch worden geschaald door afzonderlijke bedrijfsfuncties in plaats van de hele oplossing te schalen. Dit kan helpen de kosten omlaag te houden door alleen te schalen wat nodig is voor elke taak om bestaande workloads te verwerken.
  • Azure Functions biedt declaratieve bindingen voor veel Azure-services, waardoor uw team minder code hoeft te schrijven, testen en onderhouden.
  • Afzonderlijke functies kunnen opnieuw worden gebruikt, waardoor de hoeveelheid herhaalde code die nodig is voor grote bedrijfsoplossingen, wordt verminderd.

Azure Functions on-premises uitvoeren

U kunt ervoor kiezen om Azure Functions on-premises uit te voeren in plaats van in Azure; bijvoorbeeld:

  • Mogelijk wilt uw team Azure Functions uitvoeren binnen een bestaande on-premises Kubernetes-installatie.
  • In ontwikkeling is het mogelijk dat uw team het eenvoudiger vindt om lokaal te ontwikkelen met behulp van de opdrachtregelinterface in plaats van de in-portal-editor.
  • Uw functies worden lokaal uitgevoerd met de toolset die is geïnstalleerd op on-premises VM's.

U kunt Azure Functions on-premises op drie manieren uitvoeren:

Netwerkverbinding

Het maken van functie-apps met behulp van het Premium-plan biedt de mogelijkheid van zeer veilige cross-network-connectiviteit tussen virtuele Azure-netwerken, Azure- en on-premises netwerken en de netwerken voor elke on-premises vertakking.

U moet een site-naar-site - of Een Azure ExpressRoute-verbinding tussen Azure Virtual Network en on-premises netwerken gebruiken. Hierdoor kunnen de on-premises vertakkingen communiceren met de functie-apps in Azure met behulp van hun service-eindpunten.

Daarnaast moet elk virtueel netwerk in Azure ook peering van virtuele netwerken gebruiken om communicatie tussen afzonderlijke functie-apps in verschillende regio's mogelijk te maken.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Schaalbaarheid

  • Azure Functions-code moet zo worden ontworpen dat deze eindeloos kan worden uitgeschaald. Overweeg racevoorwaarden, geleasede bestanden en andere werkbelastingen die ertoe kunnen leiden dat een functie wordt uitgevoerd om een andere te blokkeren. Overweeg ook om alle Azure Functions-code te schrijven om staatloos en defensief te zijn in het ontwerp.
  • Gebruik voor functie-apps die Gebruikmaken van Azure Storage-accounts in triggers of bindingen niet hetzelfde account dat wordt gebruikt voor het opslaan van metagegevens over de functie-apps en hun uitvoeringen.

Beschikbaarheid

  • Azure Functions in het verbruiksabonnement kan doorgaans omlaag worden geschaald naar nul exemplaren. Wanneer een nieuwe gebeurtenis een functie-app activeert, moet er een nieuw exemplaar worden gemaakt met uw code die erop wordt uitgevoerd. De latentie die aan dit proces is gekoppeld, wordt een koude start genoemd. Het Azure Functions Premium-abonnement biedt de mogelijkheid om vooraf verwarmde exemplaren te configureren die gereed zijn voor nieuwe aanvragen. U kunt het aantal vooraf opgewarmde exemplaren configureren tot het minimum aantal exemplaren in uw uitschaalconfiguratie.
  • Overweeg om meerdere Premium-abonnementen in meerdere regio's te hebben en Azure Traffic Manager te gebruiken om aanvragen op de juiste manier te routeren.

Beheerbaarheid

  • Azure Functions moet zich in een leeg subnet bevinden dat een ander subnet is dan uw andere Azure-resources. Dit kan meer planning vereisen bij het ontwerpen van subnetten voor uw virtuele netwerk.
  • Overweeg om proxy's te maken voor elke on-premises resource waartoe Azure Functions mogelijk toegang moet hebben. Dit kan uw toepassingsintegriteit beschermen tegen onverwachte on-premises netwerkwijzigingen.
  • Gebruik Azure Monitor om analyses en logboeken te observeren voor Azure Functions in uw hele oplossing.

DevOps

  • In het ideale geval moeten implementatiebewerkingen afkomstig zijn van één team (Dev of DevOps), niet van elke afzonderlijke vertakking. Overweeg het gebruik van een modern werkstroomsysteem, zoals Azure Pipelines of GitHub Actions, om functie-apps op een herhaalbare manier te implementeren in alle Azure-regio's en mogelijk on-premises.
  • Gebruik uw werkstroomsysteem om de herimplementatie van code naar Azure Functions te automatiseren wanneer de code wordt bijgewerkt en gelabeld voor release.
  • Gebruik implementatiesites om Azure Functions te testen vóór de uiteindelijke push naar productie.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

  • Gebruik de Azure-prijscalculator om een schatting van de kosten te maken.
  • Het Azure Functions Premium-abonnement is vereist voor azure Virtual Network-connectiviteit, toegang tot privésites, service-eindpunten en vooraf verwarmde exemplaren.
  • Het Azure Functions Premium-abonnement factureert op exemplaren in plaats van verbruik. Het minimum van één exemplaar zorgt ervoor dat er ten minste een maandelijkse factuur is, zelfs zonder uitvoeringen. U kunt een maximumaantal exemplaren instellen om de kosten voor workloads te beheren die een piek in grootte kunnen hebben.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Zie de volgende architectuurrichtlijnen voor Azure Functions:

Zie de volgende architectuurrichtlijnen voor Azure Virtual Networks: