Anwendungsentwicklung und Bereitstellung

Zum Entwickeln und bereitstellen von serverlosen Anwendungen mit Azure Functions untersuchen Sie Muster und Vorgehensweisen, konfigurieren Sie DevOps-Pipelines, und implementieren Sie bewährte Methoden für Websitezuverlässigkeits-Engineering (Site Reliability Engineering, SRE).

Ausführliche Informationen zu serverlosen Architekturen und Azure Functions finden Sie in folgenden Themen:

Planung

So planen Sie die App-Entwicklung und -Bereitstellung:

  1. Bereiten Sie die Entwicklungsumgebung vor, und richten Sie den Workflow ein.
  2. Strukturieren Sie Projekte zur Unterstützung der Entwicklung von Azure Functions-Apps.
  3. Identifizieren Sie App-Trigger, Bindungen und Konfigurationsanforderungen.

Grundlegendes zur ereignisgesteuerten Architektur

Ein anderes Ereignis löst jede Funktion in einem serverlosen Functions-Projekt aus. Weitere Informationen zu ereignisgesteuerten Architekturen finden Sie in folgenden Themen:

Vorbereiten der Entwicklungsumgebung

Richten Sie den Entwicklungsworkflow und die zugehörige Umgebung mit den Tools zum Erstellen von Functions ein. Ausführliche Informationen zu Entwicklungstools und zur Struktur von Functions-Codeprojekten finden Sie in folgenden Themen:

Entwicklung

Treffen Sie die Entscheidung über die zu verwendende Entwicklungssprache. Azure Functions unterstützt C#, F#, PowerShell, JavaScript, TypeScript, Java und Python. Alle Funktionen eines Projekts müssen in derselben Sprache geschrieben sein. Weitere Informationen finden Sie unter In Azure Functions unterstützte Sprachen.

Definieren von Triggern und Bindungen

Ein Trigger ruft eine Funktion auf, und jede Funktion muss genau einen Trigger besitzen. Durch die Bindung an eine Funktion wird eine andere Ressource deklarativ mit der Funktion verbunden. Weitere Informationen zu Functions-Triggern und -Bindungen finden Sie in folgenden Themen:

Erstellen der Funktions-App

Für Functions gilt das Prinzip der Einzelverantwortlichkeit: Es wird nur ein Vorgang ausgeführt. Weitere Informationen zum Entwickeln für Functions finden Sie in folgenden Themen:

Verwenden von Durable Functions für zustandsbehaftete Workflows

Mit Durable Functions in Azure Functions können Sie zustandsbehaftete Workflows in einer serverlosen Umgebung definieren, indem Sie Orchestratorfunktionen schreiben. Zustandsbehaftete Entitäten definieren Sie durch Schreiben von Entitätsfunktionen. Durable Functions verwalten den Zustand, Prüfpunkte und Neustarts, sodass Sie sich auf die Geschäftslogik konzentrieren können. Weitere Informationen finden Sie unter Was sind Durable Functions?

Grundlegende Informationen zu und Behandeln von Kaltstarts

Wenn der Anzahl der serverlosen Hostinstanzen auf null herunterskaliert wird, weist die nächste Anforderung die zusätzliche Latenz aufgrund des Neustarts der Funktions-App auf; dies wird als Kaltstart bezeichnet. Um die Auswirkungen von Kaltstarts auf die Leistung zu minimieren, verringern Sie die Abhängigkeiten, welche die Funktions-App beim Start laden muss, und verwenden Sie möglichst wenige umfassende, synchrone Aufrufe und Vorgänge. Weitere Informationen zur automatischen Skalierung und zu Kaltstarts finden Sie unter Vorgänge serverloser Funktionen.

Verwalten von Anwendungsgeheimnissen

Speichern Sie Anmeldeinformationen aus Sicherheitsgründen nicht im Anwendungscode. Informationen zum Verwenden von Azure Key Vault mit Azure Functions zum Speichern und Abrufen von Schlüsseln und Anmeldeinformationen finden Sie unter Verwenden von Key Vault-Verweisen für App Service und Azure Functions.

Weitere Informationen zur Anwendungssicherheit von serverlosen Funktionen finden Sie unter Sicherheit für serverlose Funktionen.

Bereitstellung

Um eine serverlose Funktions-App für die Produktion vorzubereiten, stellen Sie sicher, dass Folgendes möglich ist:

  • Die Ressourcenanforderungen für die Anwendung müssen erfüllt sein.
  • Alle Aspekte der Anwendung müssen überwacht werden.
  • Anwendungsprobleme müssen diagnostiziert und behoben werden.
  • Sie müssen neue Versionen der Anwendung bereitstellen können, ohne dass dies Produktionssysteme beeinträchtigt.

Definieren der Bereitstellungstechnologie

Sie müssen Entscheidungen zur Bereitstellungstechnologie treffen und geplante Releases organisieren. Weitere Informationen dazu, wie die Bereitstellung von Funktions-Apps zuverlässige Upgrades ohne Downtime ermöglichen, finden Sie unter Bereitstellungstechnologien in Azure Functions.

Vermeiden der Verwendung zu vieler Ressourcenverbindungen

Funktionen in einer Funktions-App nutzen Ressourcen gemeinsam, u. a. Verbindungen mit HTTPS, Datenbanken und Diensten wie Azure Storage. Werden viele Funktionen gleichzeitig ausgeführt, sind möglicherweise nicht mehr ausreichend verfügbare Verbindungen vorhanden. Weitere Informationen finden Sie unter Verwalten von Verbindungen in Azure Functions.

Konfigurieren von Protokollierung, Warnungen und Anwendungsüberwachung

Mit Application Insights in Azure Monitor werden Protokoll-, Leistungs- und Fehlerdaten erfasst. Application Insights erkennt Leistungsanomalien automatisch und verfügt über leistungsstarke Analysetools, mit denen Sie Probleme untersuchen und die Nutzung der Funktionen nachvollziehen können.

Weitere Informationen zur Anwendungsüberwachung und -protokollierung finden Sie in den folgenden Themen:

Diagnostizieren und Behandeln von Problemen

Erfahren Sie, wie Sie die Diagnose effektiv für die Problembehandlung in proaktiven und problemorientierten Szenarien nutzen können. Weitere Informationen finden Sie unter

Bereitstellen von Anwendungen per automatisierter Pipeline und DevOps

Die vollständige Automatisierung aller Schritte vom Codecommit bis zur Bereitstellung für die Produktion ermöglicht Teams die Konzentration auf die Codeerstellung und beseitigt den Mehraufwand und die potenzielle Anfälligkeit für menschliche Fehler bei manuellen Schritten. Die Bereitstellung von neuem Code ist schneller und weniger risikoreich, sodass Teams Code flexibler, produktiver und vertrauensvoller ausführen können.

Weitere Informationen zu DevOps und Continuous Deployment (CD) finden Sie in den folgenden Themen:

Optimization

Nachdem die Anwendung in die Produktion übernommen wurde, bereiten Sie die Skalierung vor, und implementieren Sie das Websitezuverlässigkeits-Engineering (Site Reliability Engineering, SRE).

Sicherstellen der optimalen Skalierbarkeit

Informationen zu Faktoren, die sich auf die Skalierbarkeit von Funktions-Apps auswirken, finden Sie in folgenden Themen:

Implementieren von SRE-Praktiken

Websitezuverlässigkeits-Engineering (Site Reliability Engineering, SRE) ist ein bewährter Ansatz zur Aufrechterhaltung der entscheidenden Zuverlässigkeit von Systemen und Anwendungen, während gleichzeitig mit der vom Marketplace geforderten Geschwindigkeit Schritt gehalten wird. Weitere Informationen finden Sie unter

Nächste Schritte

Praktische exemplarische Vorgehensweisen zu Entwicklung und Bereitstellung von serverlosen Funktions-Apps finden Sie in den folgenden Themen:

Ein Engineering-Playbook, das Teams und Kunden bei der erfolgreichen Implementierung von serverlosen Functions-Projekten unterstützt, finden Sie unter Code-With Customer/Partner Engineering Playbook (Engineering-Playbook – Codieren mit Kunden/Partnern).