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 auf Grundlage der Nachfrage 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 bereitgestellten Leitlinien stimmen mit den Grundsätzen der Azure Well-Architected Framework-Säulenüberein.
Wichtig
Verwenden dieses Handbuchs
Jeder Abschnitt enthält eine Designcheckliste, die architekturbezogene Bereiche mit spezifischen Designstrategien im Zusammenhang mit Azure Functions hervorhebt.
Die -Empfehlungen bieten Technologiefunktionen, die dabei helfen, diese Strategien umsetzen. 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.
Sorgen Sie für eine ordnungsgemäße Ausnahmebehandlung: Implementieren Sie eine robuste Ausnahmebehandlung, um sicherzustellen, dass Funktionen störungsfrei ablaufen. Protokollieren von Fehlern und Implementieren von Warnungsmechanismen für kritische Fehler.
Planen der Skalierbarkeit: Azure Functions führt automatisch eine bedarfsbasierte, horizontale Skalierung durch. Stellen Sie sicher, dass Ihre Anwendung darauf ausgelegt ist, Spitzen zu bewältigen, indem Sie ihre 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 Überwachungs- und Warnsystem für Workload-Zustand.
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 Designstrategie mit der Prüfliste für die Designüberprüfung im Bereich 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 das Management 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, indem sie sicher gespeichert werden und die geheime Rotation automatisiert wird, wenn die Verwendung einer verwalteten Identität nicht möglich ist. |
Integrieren Sie sich in ein virtuelles Netzwerk und verwenden Sie private Endpunkte. | Sichert Funktions-Apps, indem der Zugriff auf Ihr internes Netzwerk beschrä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
Starten Sie Ihre Strategie der Kostenoptimierung mit der -Entwurfsüberprüfung-Checkliste 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 während der Funktionsausführung genutzten Ressourcen berechnet wird, wodurch Kosten für nicht genutzte Ressourcen vermieden werden. |
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 für nahtlose Bereitstellungs-Workflows.
Implementieren der Integritätsüberwachung: Verwenden Sie Azure Monitor und Application Insights, um die Integrität und Leistung der 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 Operationen 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 muss für alle Funktions-Apps aktiviert sein.
Ü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. Die Empfehlungen des Advisors sind auf die Elemente des Well-Architected Frameworks abgestimmt.
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:
- Referenzarchitekturen: