Bearbeiten

Azure Functions in einer Hybridumgebung

Azure-Funktionen
Azure Monitor
Azure Pipelines
Azure Storage
Azure Virtual Network

Diese Referenzarchitektur zeigt mehrere lokale Niederlassungen einer geografisch verteilten Organisation. An jedem Standort wird eine Microsoft Azure-Funktions-App verwendet, die mit dem Premium-Tarif in einer nahegelegenen Cloudregion konfiguriert ist. Sämtliche Azure-Funktions-Apps werden mit Azure Monitor über eine einzige Oberfläche von den Entwicklern überwacht.

Aufbau

Die Abbildung zeigt mehrere lokale virtuelle Computer, die mit Azure Functions in verschiedenen Regionen verbunden sind. Entwickler überwachen ihre Funktions-Apps über Azure Monitor.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Komponenten

Die Architektur umfasst die folgenden Komponenten:

  • Azure Functions: Azure Functions ist eine serverlose PaaS-Lösung (Platform-as-a-Service) in Azure, mit der Code mit geringem Umfang für Einzelaufgaben ausgeführt werden kann, ohne dass neue Infrastrukturelemente gestartet werden müssen. Beim Premium-Tarif für Azure Functions ist zudem eine private Kommunikation mit Azure Functions über ein virtuelles Netzwerk möglich.
  • Azure Virtual Network . Azure Virtual Network-Instanzen sind private Netzwerke, die auf der Azure-Cloudplattform basieren. Diese Netzwerke ermöglichen eine sichere Kommunikation zwischen Azure-Ressourcen. Mit Dienstendpunkten in virtuellen Azure-Netzwerken wird sichergestellt, dass Azure-Ressourcen nur über den sicheren virtuellen Netzwerkbackbone kommunizieren können.
  • Lokales Netzwerk. In dieser Architektur hat die Organisation ein sicheres privates Netzwerk erstellt, über das die verschiedenen Niederlassungen verbunden sind. Dieses private Netzwerk ist mit den virtuellen Azure-Netzwerken über eine Site-to-Site-Verbindung verbunden.
  • Entwicklerarbeitsstationen. In dieser Architektur können einzelne Entwickler innerhalb des sicheren privaten Netzwerks oder von einem Remotestandort aus an Code für Azure Functions arbeiten. In beiden Fällen haben die Entwickler Zugriff auf Azure Monitor, um Metriken und Protokolle für die Funktions-Apps abzufragen oder zu beobachten.

Szenariodetails

Typische Einsatzmöglichkeiten für diese Architektur sind:

  • Organisationen mit einer Vielzahl von physischen Standorten, die für die Kommunikation mit Azure Functions mit einem virtuellen Netzwerk in Azure verbunden sind.
  • Workloads mit hohem Wachstum, die Azure Functions lokal verwenden und für die bei unerwartet hohem Ressourcenbedarf optional Azure verwendet werden kann.

Empfehlungen

Die folgenden Empfehlungen gelten für die meisten Szenarios. Sofern Sie keine besonderen Anforderungen haben, die Vorrang haben, sollten Sie diese Empfehlungen befolgen.

Entwerfen einer serverlosen Architektur

Bei herkömmlichen Unternehmensanwendungen wird meist eine monolithische Anwendungsarchitektur implementiert, in der eine einzelne „Codelösung“ die gesamte Geschäftslogik der Organisation ausführt. Der Best Practice-Ansatz bei Azure Functions sieht die Planung einer serverlosen Architektur vor, in der einzelne Funktionen zur Ausführung einzelner Aufgaben eingesetzt werden. Diese Einzelaufgaben sind für eine schnelle Ausführung und Integration in größere Workflows konzipiert.

Die serverlose Architektur von Azure Functions bietet eine Reihe von Vorteilen, wie u. a.:

  • Bei Anwendungen ist eine automatische Skalierung einzelner Geschäftsfunktionen möglich, sodass nicht die gesamte Lösung skaliert werden muss. Indem nur die Ressourcen skaliert werden, die eine Aufgabe für vorhandene Workloads benötigt, lassen sich die Kosten so besser verwalten.
  • Azure Functions bietet deklarative Bindungen für viele Azure-Dienste. Dadurch muss Ihr Team weniger Code schreiben, testen und verwalten.
  • Einzelne Funktionen können wiederverwendet werden, sodass die Menge an wiederholtem Code reduziert wird, der für große Unternehmenslösungen erforderlich ist.

Lokale Ausführung von Azure Functions

Sie haben die Möglichkeit, Azure Functions nicht in Azure, sondern lokal auszuführen. Nachfolgend sind Beispielszenarien für diese Art der Ausführung aufgeführt:

  • Ihr Team möchte Azure Functions innerhalb einer vorhandenen lokalen Kubernetes-Installation ausführen.
  • Ihr Team entwickelt Code lieber lokal über die Befehlszeilenschnittstelle als im Portal-Editor.
  • Ihre Funktionen werden lokal mit dem auf lokalen VMs installierten Toolset ausgeführt.

Für die lokale Ausführung von Azure Functions haben Sie drei Möglichkeiten:

Netzwerkkonnektivität

Wenn Funktions-Apps im Premium-Tarif erstellt werden, können äußerst sichere netzwerkübergreifende Verbindungen zwischen virtuellen Azure-Netzwerken, Azure, lokalen Netzwerken und den Netzwerken für die einzelnen lokalen Niederlassungen implementiert werden.

Verwenden Sie entweder eine Site-to-Site- oder Azure ExpressRoute-Verbindung zwischen Azure Virtual Network und lokalen Netzwerken. Dadurch können die lokalen Niederlassungen über ihre Dienstendpunkte mit den Funktions-Apps in Azure kommunizieren.

Darüber hinaus sollte jedes virtuelle Netzwerk in Azure das Peering virtueller Netzwerke nutzen, um eine Kommunikation zwischen einzelnen Funktions-Apps innerhalb verschiedener Regionen zu ermöglichen.

Überlegungen

Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Skalierbarkeit

  • Azure Functions-Code sollte für unbegrenztes Aufskalieren entwickelt werden. Berücksichtigen Sie Racebedingungen, Leasedateien und andere Workloads, die dazu führen könnten, dass eine Funktion durch die Ausführung einer anderen Funktion blockiert werden könnte. Darüber hinaus kann es sinnvoll sein, den gesamten Azure Functions-Code zustandslos und defensiv zu schreiben.
  • Für Funktions-Apps, die Azure Storage-Konten in Triggern oder Bindungen nutzen, sollte nicht dasselbe Konto verwendet werden, das zum Speichern von Metadaten zu den Funktions-Apps und ihren Ausführungen verwendet wird.

Verfügbarkeit

  • Azure Functions mit Verbrauchstarif lässt sich üblicherweise auf 0 Instanzen herunterskalieren. Wenn ein neues Ereignis eine Funktions-App auslöst, muss in diesem Fall eine neue Instanz erstellt werden, auf der Ihr Code ausgeführt wird. Bei diesem Vorgang kommt es zu einer Latenz, die als Kaltstart bezeichnet wird. Beim Premium-Tarif von Azure Functions können vorab aufgewärmte Instanzen konfiguriert werden, die für neue Anforderungen bereitstehen. Dabei können Sie die Anzahl von vorab aufgewärmten Instanzen bis zur Mindestanzahl von Instanzen in Ihrer hochskalierbaren Konfiguration konfigurieren.
  • Ziehen Sie gegebenenfalls die Verwendung mehrerer Premium-Tarife in verschiedenen Regionen sowie den Einsatz von Azure Traffic Manager für eine entsprechende Weiterleitung der Anforderungen in Betracht.

Verwaltbarkeit

  • Für Azure Functions muss ein leeres Subnetz verwendet werden, das Sie nicht für Ihre anderen Azure-Ressourcen nutzen. Dadurch erhöht sich gegebenenfalls der Aufwand beim Planen der Subnetze für Ihr virtuelles Netzwerk.
  • Es kann sinnvoll sein, Proxys für jede lokale Ressource zu erstellen, auf die Azure Functions möglicherweise zugreifen muss. Dadurch lässt sich die Integrität Ihrer Anwendungen bei unerwarteten lokalen Netzwerkänderungen schützen.
  • Überwachen Sie Analysedaten und Protokolle für Azure Functions innerhalb Ihrer gesamten Lösung mithilfe von Azure Monitor.

DevOps

  • Idealerweise sollten die Bereitstellungsschritte von einem einzigen Team (Entwickler- oder DevOps-Team) und nicht von den einzelnen Niederlassungen durchgeführt werden. Ziehen Sie die Verwendung eines modernen Workflowsystems wie Azure Pipelines oder GitHub Actions in Betracht, um Funktions-Apps mithilfe eines wiederholbaren Vorgangs in allen Azure-Regionen und gegebenenfalls auch lokal bereitzustellen.
  • Nutzen Sie Ihr Workflowsystem, um die erneute Bereitstellung von Code für Azure Functions zu automatisieren, nachdem der Code aktualisiert und für die Freigabe markiert wurde.
  • Arbeiten Sie mit Bereitstellungsslots, um Azure Functions vor der finalen Bereitstellung in der Produktionsumgebung zu testen.

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

  • Verwenden Sie den Azure-Preisrechner, um die voraussichtlichen Kosten zu ermitteln.
  • Der Premium-Tarif von Azure Functions ist für Azure Virtual Network-Konnektivität, privaten Websitezugriff, Dienstendpunkte und vorab aufgewärmte Instanzen erforderlich.
  • Beim Premium-Tarif von Azure Functions erfolgt die Abrechnung nicht verbrauchsbasiert, sondern basierend auf der Anzahl von Instanzen. Durch die Mindestanzahl von einer Instanz wird sichergestellt, dass auch ohne Ausführungen eine monatliche Gebühr anfällt. Um die Kosten bei Workloads zu kontrollieren, deren Größe möglicherweise stark ansteigt, können Sie eine maximale Anzahl von Instanzen festlegen.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte

Sehen Sie sich den folgenden architekturlichen Leitfaden für Azure Functions an:

Sehen Sie sich den folgenden architekturlichen Leitfaden für Azure Virtual Networks an: