Freigeben über


Azure Well-Architected Framework-Perspektive für Azure Functions

Azure Functions ist ein serverloser Computedienst, mit dem Sie ereignisgesteuerten Code ausführen können, ohne die Infrastruktur explizit verwalten zu müssen. Als "Functions as a Service" (FaaS)-Angebot abstrahiert Azure Functions die zugrunde liegende Infrastruktur, sodass Sie sich auf Ihren Code konzentrieren können. Dieser Dienst skaliert automatisch basierend auf dem Bedarf und berechnet Ihnen nur die Kosten für die während der Ausführung verbrauchten Ressourcen.

In diesem Dokument wird davon ausgegangen, dass Sie als Architekt die Berechnungsentscheidungsstruktur überprüft und Azure Functions als Computelösung für Ihre Workload ausgewählt haben. Die hier gegebene Anleitung entspricht den Prinzipien der Säulen des Azure Well-Architected Framework.

Wichtig

Verwenden dieses Handbuchs

Jeder Abschnitt enthält eine Entwurfscheckliste, die architektonische Punkte von Interesse hervorhebt, die mit spezifischen Designstrategien für Azure Functions verbunden sind.

Die Empfehlungen beinhalten technologische Fähigkeiten, um diese Strategien zu implementieren. Diese Liste ist nicht vollständig, enthält aber wichtige Empfehlungen, die Ihnen beim Erstellen oder Optimieren Ihrer Workloads mit Azure Functions helfen.

Grundlegende Architektur mit den wichtigsten Empfehlungen: Architekturdesign für serverlose Funktionen

Technologieumfang

Diese Überprüfung konzentriert sich auf die miteinander verbundenen Entscheidungen für die folgenden Azure-Ressourcen:

  • Funktions-Apps

Anmerkung

Dieser Dienstleitfaden baut auf Anleitungen im App Service (Web Apps) Dienstleitfaden auf. Azure Functions ist ein serverloser Computedienst. Funktionen werden in App Service-Plänen bereitgestellt, die die zugrunde liegende Computeinfrastruktur für Ihre Workload bereitstellen. Sie können aus mehreren Hostingplänen wählen. Der Verbrauchsplan wird vollständig verwaltet und unterstützt keinen Zugriff auf die zugeordnete App Service-Instanz, während Dedicated und Premium Ihnen die Möglichkeit bieten, die App Service-Instanz zu konfigurieren und zu verwalten. Im App Service-Diensthandbuch finden Sie Empfehlungen und Überlegungen bei der Auswahl eines dedizierten oder Premium-Hostingplans.

Zuverlässigkeit

Die Zuverlässigkeitssäule stellt eine kontinuierliche Funktionalität sicher, indem Resilienz aufbaut und schnelle Wiederherstellung von Fehlernermöglicht.

Die Entwurfsprinzipien für Zuverlässigkeit allgemeine Designstrategien bereitstellen, die für einzelne Komponenten, Systemflüsse und das Gesamtsystem gelten.

Entwurfsprüfliste

Beginnen Sie Ihre Designstrategie basierend auf den Zuverlässigkeitsentwurfsprinzipien. Bewerten Sie ihre Relevanz für Ihre Geschäftlichen Anforderungen, während Sie die spezifischen Features und Konfigurationen von Azure Functions berücksichtigen.

  • Verstehen der Trigger: Stellen Sie sicher, dass Sie vollständig verstehen, wie Azure-Funktionen ausgelöst werden. Trigger umfassen HTTP-Anforderungen, Zeitgeber, Warteschlangen und vieles mehr. Wählen Sie Trigger aus, die den Zuverlässigkeitsanforderungen Ihrer Anwendung entsprechen.

    Wenn Ihre Funktion z. B. Nachrichten aus einer Warteschlange verarbeitet, stellen Sie sicher, dass die Warteschlange selbst widerstandsfähig ist und dass Nachrichten erneut verarbeitet werden können, wenn ein Fehler auftritt.

  • Implementieren von Wiederholungsversuchen und dauerhaften Mustern: Verwenden Sie integrierte Wiederholungsrichtlinien für vorübergehende Fehler. Für komplexere Workflows sollten Sie die Verwendung dauerhafter Funktionen in Betracht ziehen, die Zustandsverwaltung und Koordination über mehrere Funktionsausführungen hinweg bieten.

    Dauerhafte Funktionen sind besonders nützlich für Szenarien, die zuverlässigkeit in langen Workflows erfordern. Sie unterstützen automatische Wiederholungsversuche und eine dauerhafte Aufgabenverwaltung.

  • Sicherstellen einer effektiven Ausnahmebehandlung: Implementieren Sie eine robuste Ausnahmebehandlung, um sicherzustellen, dass Funktionen auf kontrollierte Weise fehlschlagen. Protokollieren von Fehlern und Implementieren von Warnungsmechanismen für kritische Fehler.

  • Plan für Skalierbarkeit: Azure Functions skalieren automatisch je nach Bedarf. Stellen Sie sicher, dass Ihre Anwendung für Spitzen ausgelegt ist, indem Sie die Leistung unter Last testen.

    Erwägen Sie die Verwendung von Application Insights, um die Leistung zu überwachen und nachzuverfolgen, wie Ihre Funktionen in Echtzeit skaliert werden.

  • Design für Idempotenz: Stellen Sie sicher, dass Ihre Funktionen sicher wiederholt werden können, ohne unbeabsichtigte Nebeneffekte zu verursachen. Die Idempotenz ist entscheidend für Funktionen, die mit externen Systemen interagieren oder Daten ändern.

  • Verwenden von dauerhaften Funktionen für lange ausgeführte Vorgänge: Verwenden Sie für Vorgänge, die Orchestrierung oder lange ausgeführte Prozesse erfordern, dauerhafte Funktionen, um den Zustand aufrechtzuerhalten und die Zuverlässigkeit über mehrere Schritte hinweg sicherzustellen.

  • Überwachen Sie den Zustand Ihrer Lösung: Integrieren Sie Ihre Azure Functions-Lösung in Ihr gesamtes System zur Überwachung des Workload-Zustands und für Warnhinweise.

Empfehlungen
Empfehlung Nutzen
Konfigurieren Sie automatische Wiederholungsversuche für vorübergehende Fehler. Erfahren Sie mehr über Azure Functions-Fehlerbehandlung und Wiederholungsversuche Verbessert die Zuverlässigkeit, indem fehlerbehaftete Ausführungen automatisch wiederholt werden, wodurch die Wahrscheinlichkeit von Datenverlusten oder Unterbrechungen verringert wird.
Verwenden Sie Durable Functions zum Orchestrieren komplexer Workflows und lang andauernder Prozesse. Erfahren Sie mehr über dauerhafte Funktionen. Bietet eine zuverlässige Ausführung langer Workflows mit integrierter Zustandsverwaltung und automatischen Wiederholungen.
Implementieren Sie Monitoring und zentralisierte Protokollierung mit Application Insights. Application Insights einrichten. Verbessert die Überwachung und Problembehandlung, indem detaillierte Einblicke in Funktionsausführungen und Abhängigkeiten bereitgestellt werden.
Automatische horizontale Skalierung auf der Grundlage des Function Hosting Plans, des Trigger-Typs und des Bedarfs. Erfahren Sie mehr über die Skalierung. Stellt sicher, dass Ihre Anwendung mehr Datenverkehr ohne manuelle Eingriffe verarbeiten kann, um Zuverlässigkeit und Leistung zu verbessern.

Sicherheit

Die Säule "Sicherheit" ist darauf ausgerichtet, die Vertraulichkeit, Integrität und Verfügbarkeit Ihrer Daten und Dienste sicherzustellen.

Die Sicherheitsdesignprinzipien eine allgemeine Strategie zum Sichern Ihrer Azure-Funktionen bieten, einschließlich bewährter Methoden für Authentifizierung, Autorisierung und Datenschutz.

Entwurfsprüfliste

Beginnen Sie Ihre Design-Strategie mit der Checkliste zur Design-Überprüfung für Sicherheit und identifizieren Sie potenzielle Schwachstellen. Erweitern Sie Ihre Strategie, indem Sie bei Bedarf zusätzliche Sicherheitsmaßnahmen einbeziehen.

  • Verwenden von verwalteten Identitäten: Aktivieren Sie verwaltete Identitäten für Ihre Funktions-Apps, um sicher auf andere Azure-Dienste zuzugreifen, ohne Anmeldeinformationen verwalten zu müssen. Erfahren Sie mehr über verwaltete Identitäten.

  • Sichern Sie Ihre Funktions-App mit Microsoft Entra ID: Beschränken Sie den Zugriff auf Ihre Funktionen, indem Sie Azure Functions so konfigurieren, dass die Microsoft Entra ID-Authentifizierung erforderlich ist. Einrichten der Microsoft Entra-Authentifizierung.

  • Anwenden von Netzwerksicherheitssteuerelementen: Verstehen Sie die verfügbaren Optionen für Ihr Hostingmodell, um die Netzwerkkonfiguration von Funktionen zu sichern. Sichern Sie das Netzwerk, um Ihre Anforderungen zu erfüllen.

Empfehlungen
Empfehlung Nutzen
Aktivieren Sie verwaltete Identitäten für den sicheren Zugriff auf Azure-Ressourcen. Aktivieren von verwalteten Identitäten Vereinfacht die Verwaltung von Anmeldeinformationen, da keine geheimen Schlüssel gespeichert und gedreht werden müssen, wodurch die Sicherheit verbessert wird.
Verwenden Sie Azure Key Vault für die Verwaltung von Geheimnissen und die regelmäßige Rotation. Integrieren Sie Key Vault mit Azure Functions. Schützt vertrauliche Informationen, wie z. B. API-Schlüssel und Verbindungszeichenfolgen, durch sicheres Speichern und automatisierten Austausch von Geheimnissen, wenn die Verwendung einer verwalteten Identität nicht möglich ist.
Integrieren Sie mit einem virtuellen Netzwerk und verwenden Sie private Endpunkte. Schützt Funktionsanwendungen, indem der Zugriff auf Ihr internes Netzwerk eingeschränkt und die Exposition gegenüber dem öffentlichen Internet verhindert wird.

Integration virtueller Netzwerke und private Endpunkte sind im Hostingplan "Verbrauch" nicht verfügbar.

Kostenoptimierung

Die Säule "Kostenoptimierung" konzentriert sich auf die Ermittlung von Möglichkeiten zum Senken von Kosten und gleichzeitiger Beibehaltung der erforderlichen Leistungsniveaus.

Die Entwurfsprinzipien für die Kostenoptimierung Strategien zum Ausgleich von Kosten und Leistung bereitstellen, um sicherzustellen, dass Ihre Azure Functions-Bereitstellung effizient und kostengünstig ist.

Entwurfsprüfliste

Beginnen Sie Ihre Kostenoptimierungsstrategie mit der Prüfliste zur Entwurfsüberprüfung für die Kostenoptimierung, und passen Sie Ihren Entwurf an, um den Haushaltsanforderungen gerecht zu werden.

  • Wählen Sie den richtigen Preisplan: Azure Functions bietet mehrere Preispläne, einschließlich des Verbrauchsplans, des Premium-Plans und des dedizierten Plans (App Service). Wählen Sie einen Plan aus, der ihren Arbeitsauslastungs- und Kostenüberlegungen entspricht. Vergleichen Sie die Preispläne.

    Der Verbrauchsplan eignet sich ideal für unvorhersehbare Workloads mit seltenen Ausführungen, da Sie nur für die verbrauchte Ausführungszeit und Ressourcen bezahlen. Wenn Ihre App im Leerlauf ist, werden Sie nicht belastet.

  • Optimieren der Ausführungszeit: Reduzieren Sie die Ausführungszeit, indem Sie Funktionscode optimieren. Minimieren Sie die Verwendung externer Abhängigkeiten, und optimieren Sie die Codelogik, um die Dauer jeder Ausführung zu verringern.

  • Überwachen und Analysieren von Kosten: Überwachen Sie die Nutzung und Kosten der Funktions-App regelmäßig mithilfe von Azure Cost Management und richten Sie Warnungen ein, um Kostenanomalien zu erkennen. Erfahren Sie mehr über Kostenmanagement und Optimierung.

Empfehlungen
Empfehlung Nutzen
Verwenden Sie den -Verbrauchsplan für Workloads mit unvorhersehbarem Traffic. Verstehen des Verbrauchsplans. Reduziert die Kosten, indem nur für die Ressourcen, die während der Funktionsausführung genutzt werden, berechnet wird, wodurch Kosten vermieden werden, die mit nicht genutzten Ressourcen verbunden sind.
Reservieren Sie Kapazität für Elastic Premium Pläne oder Dedicated App Service-Pläne, wenn Ihr Workload vorhersehbar ist. Verringert die Kosten durch ermäßigte Preise für vorhersagbare Workloads mit stetigen Ausführungsmustern.
Überwachen Sie regelmäßig die Kosten und legen Sie Warnhinweise für Anomalien fest. Einrichten von Kostenwarnungen. Hilft dabei, Kostenspitzen frühzeitig zu identifizieren, sodass proaktive Verwaltung und Optimierung möglich sind.

Operative Exzellenz

Operational Excellence konzentriert sich auf Prozesse und Verfahren für die Bereitstellung, Observierbarkeit und Verwaltung Ihrer Azure Functions-Anwendungen.

Die designprinzipien Operational Excellence Strategien bereitstellen, um sicherzustellen, dass Ihre Funktions-Apps effizient bereitgestellt, verwaltet und überwacht werden.

Entwurfsprüfliste

Beginnen Sie Ihre Designstrategie basierend auf den -Designprinzipien für Operational Excellence. bietet Strategien, um die Betriebsqualität von Azure Functions aufrechtzuerhalten.

  • Automatisieren von Bereitstellungen: Verwenden Sie CI/CD-Pipelines, um die Bereitstellung Ihrer Funktions-Apps zu automatisieren. Integrieren Sie mit Azure DevOps oder GitHub Actions, um nahtlose Bereitstellungs-Workflows zu ermöglichen.

  • Implementierung der Gesundheitsüberwachung: Verwenden Sie Azure Monitor und Application Insights, um die Gesundheit und Leistung Ihrer Funktionen nachzuverfolgen. Richten Sie Warnungen für kritische Metriken ein und verwenden Sie benutzerdefinierte Dashboards für Echtzeiteinblicke. Überwachen Sie Azure Function.

  • Stellen Sie Ihre Lösung sicherbereit: Verstehen Sie die Bereitstellungsmodelle, die für Azure-Funktionen verfügbar sind, und übernehmen Sie das Modell, das Ihre sicheren Bereitstellungsmethoden am besten erfüllt.

  • Planen der Notfallwiederherstellung: Implementieren Sie Notfallwiederherstellungsstrategien, indem Sie die regionübergreifende Notfallwiederherstellung und Verfügbarkeitszone für kritische Funktionen verwenden. Planen Sie für DR.

Empfehlungen
Empfehlung Nutzen
Automatisieren Sie Bereitstellungen mit CI/CD-Pipelines mithilfe von Azure DevOps- oder GitHub-Aktionen. CI/CD einrichten Verbessert die Konsistenz der Bereitstellung, reduziert manuelle Fehler und beschleunigt die Markteinführung neuer Features.
Verwenden Sie Bereitstellungs-Slots für das Staging von Änderungen vor der Produktionsfreigabe. Bereitstellen über Slots. Verringert das Risiko, Fehler in die Produktion einzufügen und sichere Rollbacks zu ermöglichen, wenn Probleme erkannt werden.
Implementieren Sie eine zentralisierte Überwachung mit Application Insights und Azure Monitor unter Verwendung verfügbarer Metriken. Verbessert die Sichtbarkeit der Funktionsleistung und hilft dabei, Probleme schnell zu identifizieren und zu beheben.

Leistungseffizienz

Die Leistungseffizienz gewährleistet optimale Benutzererfahrung auch unter erhöhter Last durch effektives Verwalten der Kapazität.

Die Designprinzipien der Leistungseffizienz Strategien bereitstellen, mit denen Sie Funktions-Apps entwerfen können, die Leistungsanforderungen erfüllen, auch wenn die Nachfrage steigt.

Entwurfsprüfliste

Beginnen Sie Ihre Leistungsstrategie mit den Designprinzipien der Leistungseffizienz, und entwerfen Sie Ihre Funktions-Apps so, dass sie optimal skaliert und ausgeführt werden können.

  • Kaltstart optimieren: Minimieren Sie die Auswirkungen von Kaltstarts, indem Sie Premium Flex-Pläne mit vorab warmer Instanz verwenden oder sicherstellen, dass Ihre Funktionen mit Strategien wie Azure Functions Warmup Trigger warm bleiben.

  • Funktionscode optimieren: Schreiben Sie effizienten Code, um die Ausführungszeit und den Ressourcenverbrauch zu reduzieren. Vermeiden Sie lang andauernde Vorgänge und optimieren Sie externe Dienstaufrufe.

  • Automatische Skalierungaktivieren: Nutzen Sie die automatischen Skalierungsfunktionen von Azure-Funktionen, um automatisch basierend auf Bedarf zu skalieren. Stellen Sie sicher, dass Ihre Skalierungsregeln klar definiert und getestet sind.

  • Überwachen von Leistungsmetriken: Verwenden Sie Application Insights, um wichtige Leistungsmetriken zu überwachen, z. B. Ausführungszeit, CPU- und Speicherauslastung. Richten Sie Warnungen für Leistungsbeeinträchtigungen ein. Überwachen Sie die Leistung.

Empfehlungen
Empfehlung Nutzen
Verwenden Sie den Elastic Premium-Plan mit einer vorgewärmten Instanz, um die Latenz von Kaltstart zu minimieren. Verstehen Sie den Kaltstart. Reduziert die Latenz, die mit Kaltstarts verbunden ist, und verbessert die Reaktionszeiten für zeitkritische Anwendungen.
Funktionscode optimieren, um die Ausführungszeit zu reduzieren. Bewährte Methoden für Azure Functions. Verbessert die Leistung, indem die Für jede Funktionsausführung erforderliche Zeit und Ressourcen reduziert werden.
Automatische Skalierung aktivieren, um die Kapazität basierend auf Bedarf automatisch anzupassen. Konfigurieren der automatischen Skalierung. Stellt sicher, dass Ihre Funktions-Apps unterschiedliche Lasten ohne manuelles Eingreifen verarbeiten und die Leistung unter Druck halten können.

Azure-Richtlinien

Azure bietet einen umfassenden Satz integrierter Richtlinien zum Überwachen und Erzwingen von Konfigurationen für Azure-Funktionen und deren Abhängigkeiten. Sie können Azure-Richtlinie verwenden, um sicherzustellen, dass Ihre Funktions-Apps organisatorischen Standards für Sicherheit, Kostenoptimierung und Leistung entsprechen.

Sie können beispielsweise Richtlinien erzwingen, die Folgendes erfordern:

  • Verwaltete Identitäten, die für alle Funktions-Apps aktiviert werden sollen.
  • Funktions-Apps, die nur private Endpunkte für die Netzwerksicherheit verwenden.
  • Die Diagnoseprotokollierung soll für alle Funktions-Apps aktiviert werden.

Überprüfen Sie die integrierten Azure-Richtliniendefinitionen, um Richtlinien zu finden, die ihren Organisationsanforderungen entsprechen.

Empfehlungen für Azure Advisor

Azure Advisor ist ein personalisierter Cloudberater, der Ihnen hilft, bewährte Methoden zur Optimierung Ihrer Azure-Bereitstellungen zu befolgen. Empfehlungen von Beratern stehen im Einklang mit den Grundpfeilern des Well-Architected Rahmens.

Weitere Informationen finden Sie in den Empfehlungen in Azure Advisor.

Nächste Schritte

Berücksichtigen Sie die folgenden Ressourcen, um die in diesem Dokument hervorgehobenen Empfehlungen weiter zu untersuchen: