Direkt zum Inhalt

Azure App Service: Ein vollständiger Leitfaden für Datenpraktiker

Dieser Leitfaden zeigt dir, wie du Anwendungen mit Azure App Service bereitstellst, verwaltest und optimierst - mit praktischen Tipps für Sicherheit, Skalierung und Kosteneinsparungen.
Aktualisierte 20. Mai 2025  · 15 Min. Lesezeit

Die effiziente Bereitstellung von Anwendungen ist genauso wichtig geworden wie ihre Entwicklung. Als Datenexperte habe ich oft die Erfahrung gemacht, dass wir zwar viel Zeit in die Perfektionierung unserer Modelle und Anwendungen investieren, der Bereitstellungsprozess sich aber manchmal wie ein nachträglicher Einfall anfühlen kann. Hier kommt Azure App Service ins Spiel - eine Plattform, die den Bereitstellungsprozess vereinfacht und gleichzeitig robuste Funktionen für Skalierbarkeit, Sicherheit und Überwachung bietet.

In diesem umfassenden Tutorial führe ich dich durch das Einrichten, Bereitstellen und Skalieren von Anwendungen auf Azure App Service.

Egal, ob du ein junger Datenexperte bist, der seine erste Anwendung implementieren möchte, oder ein erfahrener Profi, der seine Cloud-Infrastruktur optimieren will, dieser Leitfaden enthält praktische Schritte und Best Practices.

Was ist Azure App Service?

Azure App Service ist Microsofts Platform as a Service (PaaS) Angebot, mit dem du Webanwendungen erstellen und hosten kannst, ohne die zugrunde liegende Infrastruktur zu verwalten. Es wurde entwickelt, um mehrere Programmiersprachen und Frameworks zu unterstützen, darunter Python, Java, Node.js, .NET und mehr.

Bevor wir in den Einrichtungsprozess eintauchen, sollten wir verstehen, was Azure App Service für Datenexperten besonders wertvoll macht:

  • Vereinfachte Bereitstellung: Konzentriere dich auf deinen Code und nicht auf die Verwaltung der Infrastruktur.
  • Unterstützung mehrerer Sprachen: Setze Anwendungen ein, die in Python, R (über Container) oder einer anderen unterstützten Sprache geschrieben wurden.
  • Integration mit Datendiensten: Verbinde dich ganz einfach mit Azure SQL, Cosmos DB oder anderen Datenspeichern.
  • Skalierbarkeit: Skalieren Sie je nach Bedarf, besonders nützlich für die Bereitstellung von Modellen für maschinelles Lernen.
  • Eingebaute Authentifizierung: Sichere deine Anwendungen, ohne umfangreichen Authentifizierungscode zu schreiben.
  • CI/CD-Integration: Automatisiere Verteilungen von GitHub, Azure DevOps oder anderen Repositories.

Als Datenwissenschaftler oder Ingenieur fragst du dich vielleicht, wie sich App Service von anderen Azure-Angeboten wie Azure Functions oder Azure Kubernetes Service unterscheidet. Der entscheidende Unterschied ist, dass App Service den perfekten Mittelweg bietet - mehrFlexibilität als serverlose Optionen, aber weniger Komplexität als Container-Orchestrierungsplattformen.

> Für einen grundlegenden Überblick über das Ökosystem und die Dienste von Azure diesen Einführungskurs über Microsoft Azure.

Azure App Service einrichten

Jetzt, wo wir wissen, was Azure App Service ist, können wir uns die Hände schmutzig machen und unseren ersten App Service einrichten. Der Prozess umfasst zwei Hauptschritte: die Erstellung eines App-Service-Plans und die Erstellung einer Web-App innerhalb dieses Plans.

Einen Azure App Service Plan erstellen

Ein App Service Plan definiert die Rechenressourcen, die Region und die Preisstufe für deine Anwendungen. Stell dir vor, es ist die Serverfarm, auf der deine Anwendungen laufen werden. Mehrere Apps können sich einen einzigen App Service Plan teilen, was ihn für den Betrieb mehrerer kleinerer Anwendungen kosteneffizient macht.

Hier erfährst du, wie du einen App Service Plan erstellst:

  1. Anmeldung beim Azure Portal
  2. Klicke auf "Ressource erstellen" in der linken Navigation
  3. Suche nach "App Service Plan" und wähle ihn aus
  4. Klick auf "Erstellen"
  5. Fülle die folgenden Angaben aus:
    • Abonnement: Wähle dein Azure Abonnement
    • Ressourcengruppe: Eine neue Gruppe erstellen oder eine bestehende Gruppe auswählen
    • Name: Gib deinem Plan einen beschreibenden Namen (z.B. "data-apps-plan")
    • Betriebssystem: Wähle zwischen Windows oder Linux (ich empfehle Linux für die meisten Data Science Workloads)
    • Region: Wähle eine Region in der Nähe deiner Nutzer oder Datenquellen
    • Preisstufe: Wähle die passende Stufe je nach deinen Bedürfnissen

Erstellen eines App Service-Plans im Azure-Portal.

Apropos Preisstaffelung: Azure App Service bietet mehrere Optionen:

Tier

Eigenschaften

Am besten für

Frei

1 GB Speicherplatz, gemeinsame Infrastruktur, 60 Minuten/Tag Rechenleistung

Entwicklung und Prüfung

Gemeinsame

1 GB Speicherplatz, 240 Minuten/Tag Rechenleistung

Apps mit geringem Datenverkehr, Entwicklung

Basic

10 GB Speicherplatz, dedizierte VMs, benutzerdefinierte Domains

Produktionsworkloads mit mäßigem Datenverkehr

Standard

50 GB Speicherplatz, automatische Skalierung, Staging-Slots

Produktions-Apps mit höherem Traffic

Premium

250 GB Speicherplatz, verbesserte Leistung, mehr Skalierungsoptionen

Unternehmensanwendungen, hohe Anforderungen

Für Datenanwendungen empfehle ich in der Regel, mindestens eine Basisschicht in der Produktion zu verwenden, da die Datenverarbeitung oft mehr Ressourcen benötigt als das einfache Webserving. Wenn du Machine-Learning-Modelle anbietest, die viel Rechenleistung benötigen, solltest du den Standard-Tier wegen seiner automatischen Skalierungsfunktionen in Betracht ziehen.

Du kannst einen App Service Plan auch mit der Azure CLI erstellen:

# Create a resource group first if needed
az group create --name MyResourceGroup --location "East US"

# Create an App Service plan
az appservice plan create --name MyAppServicePlan --resource-group MyResourceGroup --sku B1 --is-linux

Erstellen einer App Service Web-App

Sobald du einen App-Service-Plan hast, kannst du darin eine Web-App erstellen. Die Web-App ist die eigentliche Anwendungsinstanz, die deinen Code ausführt.

Befolge diese Schritte, um eine Web-App zu erstellen:

  1. Im Azure Portal klickst du auf "Ressource erstellen".
  2. Suche nach "Web App" und wähle sie aus
  3. Klick auf "Erstellen"
  4. Fülle die folgenden Angaben aus:
    • Abonnement: Wähle dein Azure Abonnement
    • Ressourcengruppe: Verwende die gleiche Gruppe wie dein App Service Plan
    • Name: Dies wird Teil der URL deiner App sein (z. B. myapp.azurewebsites.net).
    • Veröffentlichen: Wähle Code oder Docker Container (für dieses Tutorial wählen wir Code)
    • Laufzeitstapel: Wähle die Sprache/das Framework deiner Anwendung (z. B. Python 3.9)
    • Operationssystem: Passend zum Betriebssystem deines App Service Plans
    • Region: Dies sollte der Region deines App Service Plans entsprechen
    • App Serviceplan: Wähle den Plan aus, den du zuvor erstellt hast

Erstellen einer App Service Web App im Azure-Portal.

  1. Klicke auf "Überprüfen + Erstellen" und dann auf "Erstellen", sobald die Validierung abgeschlossen ist.

Wenn du das Azure CLI verwendest, kannst du eine Web-App mit einem einzigen Befehl erstellen:

# Create a Python web app
az webapp create --resource-group MyResourceGroup --plan MyAppServicePlan --name MyWebApp --runtime "PYTHON:3.9"

Nachdem du deine Web-App erstellt hast, stellt Azure die notwendigen Ressourcen bereit. Wenn du fertig bist, kannst du zu deiner neuen Web-App navigieren, indem du auf "Zur Ressource gehen" klickst oder sie in deiner Ressourcengruppe suchst.

Jetzt solltest du eine Standardseite sehen, wenn du die URL deiner App aufrufst (https://your-app-name.azurewebsites.net). Damit wird bestätigt, dass deine App läuft, auch wenn sie noch keinen Code enthält - wir behandeln die Bereitstellung im nächsten Abschnitt.

Grundlegende Einstellungen der App konfigurieren

Bevor wir mit dem Deployment weitermachen, müssen wir noch einige grundlegende Einstellungen für unsere App vornehmen. Für Datenanwendungen benötigst du möglicherweise spezielle Umgebungsvariablen für Datenbankverbindungen oder API-Schlüssel.

So konfigurierst du die App-Einstellungen:

  1. Navigiere zu deiner Web-App im Azure-Portal
  2. Wähle in der linken Seitenleiste unter "Einstellungen" "Umgebungsvariablen".
  3. Klicke auf der Registerkarte "Anwendungseinstellungen" auf "Hinzufügen".
  4. Füge Schlüssel-Werte-Paare für deine Umgebungsvariablen hinzu
  5. Klicke auf "Speichern", wenn du fertig bist

Konfigurieren grundlegender App Service-Einstellungen im Azure-Portal.

Du kannst sie auch über die Azure CLI einstellen:

# Set an environment variable
az webapp config appsettings set --resource-group MyResourceGroup --name MyWebApp --settings DB_CONNECTION_STRING="your-connection-string"

Diese Einstellungen stehen deiner Anwendung als Umgebungsvariablen zur Verfügung. Das ist ein sicherer Weg, um die Konfiguration zu speichern, ohne sie in deinem Quellcode fest zu kodieren.

Einsatz deiner ersten Anwendung

Nachdem wir nun unsere Azure App Service-Infrastruktur eingerichtet haben, ist es an der Zeit, unsere Anwendung bereitzustellen. Azure App Service bietet mehrere Bereitstellungsmethoden, sodass du flexibel auf deine Arbeitsabläufe und Vorlieben reagieren kannst. In diesem Abschnitt erfahren wir, wie du Anwendungen über die Versionskontrolle (GitHub oder Azure Repos), FTP und lokale Git-Repositories bereitstellst.

Als Datenexperte ist dieser Schritt von entscheidender Bedeutung, da er die Lücke zwischen deiner lokalen Entwicklungsumgebung und einer produktionsreifen Anwendung schließt, die deine Modelle oder Datenverarbeitungspipelines bedienen kann.

> Für diejenigen, die sich noch nicht mit den Bereitstellungsprinzipien auskennen, bietet dieser DevOps-Kurs eine klare Einführung in die wichtigsten Konzepte und Tools.

Bereitstellen von GitHub oder Azure Repos

Eine der leistungsstärksten Funktionen von Azure App Service ist die integrierte Continuous Deployment (CD) Funktion. Wenn du deinen App Service mit einem GitHub- oder Azure DevOps-Repository verbindest, kannst du Änderungen automatisch bereitstellen, wenn Code in einen bestimmten Zweig gepusht wird.

Dieser Ansatz ist besonders wertvoll für Datenteams, die an gemeinsamen Projekten arbeiten, da er:

  • Sicherstellen, dass alle Teammitglieder in der gleichen Umgebung eingesetzt werden
  • Erstellt einen Prüfpfad für Einsätze
  • Reduziert manuelle Einsatzfehler
  • Unterstützt automatisierte Tests als Teil der Bereitstellungspipeline

> Wenn du neu in der Versionskontrolle bist, hilft dir der Lernpfad "GitHub Foundations" dabei, mit den Grundlagen vertraut zu werden. Du kannst Azure DevOps auch als robuste Alternative für die Verwaltung deiner Deployment-Pipelines und Versionskontrolle entdecken.

Hier erfährst du, wie du die kontinuierliche Bereitstellung über GitHub einrichtest:

  1. Navigiere zu deinem App Service im Azure-Portal
  2. Wähle in der linken Seitenleiste "Deployment Center".
  3. Wähle "GitHub" als deine Quelle
  4. Authentifiziere dich mit deinem GitHub-Konto, wenn du dazu aufgefordert wirst
  5. Wähle deine Organisation, dein Repository und deinen Zweig
  6. Klicke auf "Speichern"

Deployment Center im Azure-Portal.

Azure erstellt eine GitHub-Workflow-Datei in deinem Repository, die deine Anwendung automatisch baut und bereitstellt, sobald Änderungen in den ausgewählten Zweig gepusht werden. Dieser Workflow nutzt GitHub Actions, um den CI/CD-Prozess zu steuern.

> Um die Bereitstellung weiter zu automatisieren, kannst du Makefiles mit GitHub Actions kombinieren, um CI/CD-Workflows zu optimieren.

Bei Python-Anwendungen umfasst der Arbeitsablauf in der Regel folgende Schritte:

  • Python einrichten
  • Abhängigkeiten installieren von requirements.txt
  • Alle Tests durchführen
  • Bereitstellen in Azure App Service

Du kannst die kontinuierliche Bereitstellung auch mit der Azure CLI einrichten:

# Set up GitHub continuous deployment
az webapp deployment source config --name MyWebApp --resource-group MyResourceGroup --repo-url https://github.com/username/repo --branch main --git-token <your-github-token>

Einstellungen für die Bereitstellung konfigurieren

Zur Feinabstimmung deiner Bereitstellung kannst du zusätzliche Einstellungen in der GitHub-Workflow-Datei oder im Azure-Portal vornehmen:

  1. Navigiere zu deinem App-Dienst
  2. Wähle "Einsatzzentrale".
  3. Klick auf "Einstellungen"
  4. Hier kannst du konfigurieren:
    • Der Build-Anbieter (Kudu oder GitHub Actions)
    • Build- und Deployment-Workflows
    • Einstellungen für den Repository-Zugang

Für Data Science-Anwendungen musst du möglicherweise benutzerdefinierte Build-Schritte hinzufügen, die wissenschaftliche Pakete installieren oder Skripte für das Modelltraining ausführen. Diese können direkt in die Workflow-Datei in deinem Repository eingefügt werden.

Bereitstellen per FTP oder lokalem Git

Während die kontinuierliche Bereitstellung von GitHub oder Azure Repos für Teamumgebungen empfohlen wird, kann es sein, dass du eine direktere Bereitstellungsmethode benötigst. Azure App Service unterstützt sowohl FTP als auch lokales Git für diese Szenarien.

FTP-Einsatz

Die FTP-Bereitstellung ist eine unkomplizierte Möglichkeit, deine Anwendungsdateien direkt in den Azure App Service hochzuladen. Diese Methode ist nützlich für schnelle Aktualisierungen oder wenn du mit Anwendungen zu tun hast, die keine komplexen Build-Prozesse erfordern.

Um über FTP zu verteilen:

  1. Gehe in deinem App Service zu "Deployment Center".
  2. Wähle "FTP" und notiere den FTP-Endpunkt, den Benutzernamen und das Passwort
  3. Verwende einen beliebigen FTP-Client (wie FileZilla), um dich mit deinem App-Dienst zu verbinden.
  4. Lade deine Bewerbungsdateien in das Verzeichnis /site/wwwroot/ hoch.

Bei Python-Anwendungen musst du sicherstellen, dass deine requirements.txt Datei im Upload enthalten ist. Azure App Service installiert automatisch die erforderlichen Pakete.

Lokale Git-Bereitstellung

Die lokale Git-Bereitstellung ermöglicht es dir, Code aus deinem lokalen Git-Repository direkt nach Azure zu übertragen. Diese Methode gibt dir mehr Kontrolle über den Verteilungsprozess und nutzt gleichzeitig die Versionskontrollfunktionen von Git.

So richtest du eine lokale Git-Verteilung ein:

  1. Gehe in deinem App Service zu "Deployment Center".
  2. Wähle "Lokales Git"
  3. Klicke auf "Speichern"
  4. Gehe zu "Deployment Credentials", um deine Credentials einzurichten oder einzusehen
  5. Füge das Azure Git Remote zu deinem lokalen Repository hinzu:
# Add the Azure remote
git remote add azure https://username@your-app-name.scm.azurewebsites.net/your-app-name.git

# Push your code to Azure
git push azure main

Wenn du den Code an die Azure-Remote überträgst, wird die Plattform deine Anwendung automatisch erstellen und bereitstellen.

Überwachung des Einsatzstatus

Unabhängig von der von dir gewählten Verteilungsmethode ist es wichtig, den Verteilungsprozess zu überwachen, um Probleme frühzeitig zu erkennen. Azure bietet verschiedene Möglichkeiten, den Lernpfad für die Bereitstellung zu verfolgen:

  1. Gehe im Azure Portal zu deinem App Service
  2. Wähle "Einsatzzentrale".
  3. Auf der Registerkarte "Protokolle" findest du detaillierte Einsatzprotokolle
  4. Für GitHub-Einsätze kannst du auch die Registerkarte "Aktionen" in deinem GitHub-Repository überprüfen

Überwachung des Einsatzstatus im Deployment Center des Azure Portals.

Wenn ein Einsatz fehlschlägt, geben die Protokolle Aufschluss darüber, was schief gelaufen ist. Zu den häufigsten Problemen gehören:

  • Fehlende Abhängigkeiten in requirements.txt
  • Syntaxfehler in deinem Code
  • Konfigurationsprobleme in deiner Anwendung
  • Speicherbeschränkungen während der Erstellung

Um Probleme bei der Bereitstellung zu beheben:

  1. Überprüfe die Einsatzprotokolle gründlich
  2. Prüfe, ob deine Anwendung lokal läuft
  3. Stelle sicher, dass alle Abhängigkeiten in deiner requirements.txt Datei aufgeführt sind.
  4. Überprüfe, ob der Einstiegspunkt deiner Anwendung mit dem übereinstimmt, was von Azure erwartet wird

Bei Data-Science-Anwendungen kommt es häufig zu Fehlern bei der Bereitstellung, weil große Pakete installiert werden oder speicherintensive Vorgänge während des Starts durchgeführt werden. Wenn du auf diese Probleme stößt, solltest du überlegen:

  • Große Abhängigkeiten in kleinere Komponenten zerlegen
  • Leichtgewichtige Alternativen für den Produktionseinsatz nutzen
  • Modelle im Voraus trainieren und als Artefakte speichern, anstatt sie während des Einsatzes zu trainieren

Werde Azure AZ-900 zertifiziert

Bereite dich auf Azure's PL-300 vor und erhalte 50% Rabatt auf die Prüfungsgebühr.
Zertifiziere deine Azure-Fähigkeiten

Azure App Service konfigurieren

Sobald deine Anwendung bereitgestellt ist, musst du im nächsten Schritt verschiedene Aspekte deines Azure App Service konfigurieren, um sicherzustellen, dass sie optimal und sicher läuft. In diesem Abschnitt geht es um benutzerdefinierte Domains, Authentifizierung und Anwendungseinstellungen.

Benutzerdefinierte Domains konfigurieren

Standardmäßig ist dein App-Dienst über eine URL wie your-app-name.azurewebsites.net erreichbar. Für Produktionsanwendungen wirst du wahrscheinlich deinen eigenen Domainnamen verwenden wollen. Hier erfährst du, wie du eine eigene Domain einrichtest:

  1. Kaufe eine Domain bei einem Domain-Registrar, wenn du noch keine hast
  2. Gehe in deinem App Service in der linken Seitenleiste auf "Benutzerdefinierte Domains".
  3. Klicke auf "Benutzerdefinierte Domäne hinzufügen".
  4. Gib deinen Domainnamen ein (z.B. myapp.example.com)
  5. Befolge die Anweisungen zur Überprüfung der Domaininhaberschaft
    • Du musst einen TXT oder CNAME Eintrag zu deinen DNS-Einstellungen hinzufügen.

Konfigurieren von benutzerdefinierten Domänen im App Service Portal.

Für Apex-Domains (wie example.com ohne www) musst du einen A Eintrag erstellen, der auf die IP-Adresse deines App-Dienstes verweist. Du findest diese IP-Adresse auf der Seite für die benutzerdefinierte Domainkonfiguration.

Du kannst benutzerdefinierte Domains auch über die Azure CLI verwalten:

# Add a custom domain
az webapp config hostname add --webapp-name MyWebApp --resource-group MyResourceGroup --hostname www.example.com

SSL-Zertifikate binden

Für sichere Anwendungen, insbesondere solche, die mit sensiblen Daten umgehen, ist es wichtig, HTTPS zu aktivieren. Azure App Service macht dies ganz einfach, indem er kostenlos verwaltete Zertifikate zur Verfügung stellt oder dir erlaubt, deine eigenen hochzuladen.

So fügst du ein SSL-Zertifikat hinzu:

  1. Gehe in deinem App-Dienst zu "TLS/SSL-Einstellungen".
  2. Wähle "Private Schlüssel-Zertifikate".
  3. Wähle eine der folgenden Optionen:
    • Ein kostenloses App Service verwaltetes Zertifikat erstellen
    • Ein App Service Zertifikat importieren
    • Hochladen eines PFX-Zertifikats
  4. Sobald das Zertifikat hinzugefügt wurde, gehe zu "Bindungen".
  5. Füge eine SSL-Bindung für deine benutzerdefinierte Domain hinzu

Für Datenanwendungen, die sensible Informationen verarbeiten, empfehle ich, den reinen HTTPS-Modus zu aktivieren, um sicherzustellen, dass der gesamte Datenverkehr verschlüsselt wird:

  1. Unter "TLS/SSL-Einstellungen" gehst du zum Abschnitt "Nur HTTPS".
  2. Schalte den Schalter auf "Ein" um
  3. Klicke auf "Speichern"

Authentifizierung und Autorisierung konfigurieren

Viele Datenanwendungen erfordern eine Benutzerauthentifizierung, um den Zugang zu sensiblen Daten oder Funktionalitäten zu kontrollieren. Azure App Service bietet integrierte Authentifizierungsoptionen, die dir die Implementierung von Authentifizierungslogik in deinem Code ersparen können.

So richtest du die Authentifizierung ein:

  1. Gehe in deinem App Service in der linken Seitenleiste auf "Authentifizierung".
  2. Klicke auf "Identitätsanbieter hinzufügen".
  3. Wähle deinen Identitätsanbieter:
    • Microsoft (Azure AD)
    • Google
    • Facebook
    • Twitter
    • GitHub
    • OpenID Connect
  4. Konfiguriere die Anbietereinstellungen
  5. Einrichten von Redirect-URLs und Token-Store-Konfigurationen

Konfigurieren der Authentifizierung und Autorisierung für Azure App Service.

Für Unternehmensdatenanwendungen ist Azure Active Directory oft die bevorzugte Wahl, da es mit bestehenden Unternehmensidentitäten integriert werden kann und Funktionen wie bedingten Zugriff und Mehrfaktor-Authentifizierung unterstützt.

Du kannst auch Berechtigungseinschränkungen konfigurieren, um zu kontrollieren, wer auf deine Anwendung zugreifen kann:

  1. In den Authentifizierungseinstellungen wählst du "Bearbeiten" neben deinem Identitätsanbieter
  2. Wähle unter "Zugang einschränken" eine der folgenden Optionen:
    • Unauthentifizierte Anfragen zulassen
    • Authentifizierung verlangen
    • Anonyme Anfragen zulassen (keine Aktion)
  3. Konfiguriere bei Bedarf erlaubte externe Weiterleitungs-URLs

App-Einstellungen und Verbindungsstrings

Wir haben uns bereits kurz mit den App-Einstellungen befasst, aber jetzt wollen wir uns genauer ansehen, wie du sie nutzen kannst, um deine Datenanwendung effektiv zu konfigurieren.

App-Einstellungen in Azure App Service dienen als Umgebungsvariablen für deine Anwendung. Sie sind besonders nützlich für:

  • Datenbank-Verbindungsstrings
  • API-Schlüssel
  • Merkmal Flaggen
  • Umgebungsspezifische Konfigurationen

So fügst du App-Einstellungen hinzu oder änderst sie:

  1. Gehe in deinem App Service in der linken Seitenleiste auf "Konfiguration".
  2. Wähle die Registerkarte "Anwendungseinstellungen".
  3. Klicke auf "Neue Anwendungseinstellung", um ein Schlüssel-Werte-Paar hinzuzufügen
  4. Bei sensiblen Werten kannst du die Option "Deployment Slot Setting" umschalten, um zu verhindern, dass sie beim Slot-Tausch vertauscht werden

Umgebungsvariablen in Azure App Service konfigurieren

Für Datenanwendungen sind die folgenden Einstellungen üblich:

  • Datenbank-Verbindungsstrings
  • Zugriffsschlüssel für das Speicherkonto
  • Endpunkte des Modells für maschinelles Lernen
  • Funktionskennzeichen für A/B-Tests

Du kannst die Verbindungszeichenfolgen auch separat konfigurieren, was für Datenbankverbindungen nützlich ist:

  1. Wähle auf der Konfigurationsseite die Registerkarte "Verbindungsstränge".
  2. Klicke auf "Neue Verbindungszeichenfolge".
  3. Gib einen Namen, einen Wert und einen Typ an (SQL Server, MySQL, PostgreSQL, etc.)

Verbindungsstrings stehen deiner Anwendung auch als Umgebungsvariablen zur Verfügung, allerdings mit einer anderen Namenskonvention je nach Sprache/Framework.

Um Einstellungen in deiner Python-Anwendung abzurufen:

import os

# Retrieve an application setting
api_key = os.environ.get('API_KEY')

# Retrieve a connection string (Python)
connection_string = os.environ.get('SQLCONNSTR_MyDatabase')

Verwendung von Key Vault Referenzen

Für hochsensible Informationen wie Datenbankanmeldedaten oder API-Schlüssel bietet Azure Key Vault eine zusätzliche Sicherheitsebene. Du kannst Key Vault-Geheimnisse direkt in deinen App-Einstellungen referenzieren:

  1. Erstelle einen Azure Key Vault und füge deine Geheimnisse hinzu
  2. Sicherstellen, dass dein App-Dienst eine verwaltete Identität hat
  3. Gewähre der Identität Zugriff auf den Key Vault
  4. In den Einstellungen deiner App referenzierst du das Geheimnis im Format: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)

Dieser Ansatz trennt sensible Informationen von deiner Anwendungskonfiguration und ermöglicht eine zentrale Verwaltung der Geheimnisse.

Azure App Service skalieren und verwalten

Nachdem deine Anwendung nun eingerichtet und konfiguriert ist, müssen wir sicherstellen, dass sie gut funktioniert, zuverlässig bleibt und sich an wechselnde Arbeitslasten anpasst. 

Die richtige Skalierung und Verwaltung deines Azure App Service ist besonders wichtig für Datenanwendungen, die oft einen variablen Ressourcenbedarf haben und sensible Daten verarbeiten können.

Skalierung der App Service Pläne

Einer der größten Vorteile von Cloud-Plattformen wie Azure ist die Möglichkeit, die Ressourcen je nach Bedarf zu vergrößern oder zu verkleinern. Für Datenanwendungen ist dies besonders wertvoll, da die Arbeitsbelastung oft stark schwankt, von Zeiten intensiver Datenverarbeitung bis hin zu ruhigeren Zeiten mit minimalem Datenverkehr.

Azure App Service bietet zwei primäre Skalierungsmethoden:

Vertikale Skalierung (Skalieren nach oben/unten)

Bei der vertikalen Skalierung wird die Größe deines App Service-Plans geändert, um mehr oder weniger CPU-, Speicher- und Festplattenspeicher bereitzustellen. Dies ist nützlich, wenn die Leistung deiner Anwendung durch die Ressourcen einer einzelnen Instanz eingeschränkt ist.

Zum vertikalen Skalieren:

  1. Wähle in deinem App Service Plan "Scale up (App Service Plan)" in der linken Seitenleiste
  2. Wähle eine andere Preisstufe oder Instanzgröße je nach deinen Bedürfnissen
  3. Klick auf "Anwenden"

Skalierung eines Azure App Service-Plans.

Für Datenanwendungen solltest du eine vertikale Skalierung in Betracht ziehen:

  • Deine Anwendung leidet unter Speicherdruck aufgrund großer Datenverarbeitungsvorgänge
  • Du stößt während der Modellinferenz an die Grenzen der CPU
  • Du brauchst zusätzlichen Speicherplatz für Daten-Caching oder temporäre Dateien

Horizontale Skalierung (Scale out/in)

Bei der horizontalen Skalierung wird die Anzahl der virtuellen Maschineninstanzen geändert, auf denen deine Anwendung läuft. Dieser Ansatz ist ideal, um die Last zu verteilen und die Verfügbarkeit zu verbessern.

Zum horizontalen Skalieren:

  1. Wähle in deinem App Service Plan "Scale out (App Service Plan)" in der linken Seitenleiste
  2. Lege die Anzahl der Instanzen manuell fest oder konfiguriere Regeln für die automatische Skalierung
  3. Klicke auf "Speichern"

Für eine manuelle Skalierung stellst du einfach die Anzahl der Instanzen auf die gewünschte Anzahl ein. Die automatische Skalierung bietet jedoch mehr Flexibilität, da sie die Ressourcen automatisch anhand von Kennzahlen anpasst.

Regeln für die automatische Skalierung einrichten

Die automatische Skalierung ist besonders wertvoll für Datenanwendungen mit variablen Arbeitslasten. Ein Modell für maschinelles Lernen, das eine API bedient, könnte zum Beispiel während der Geschäftszeiten einen höheren Datenverkehr und nachts einen geringeren Datenverkehr aufweisen.

So konfigurierst du die automatische Skalierung:

  1. Wähle im Abschnitt "Skalieren" die Option "Automatische Skalierung aktivieren".
  2. Definiere eine Skalenbedingung mit den folgenden Komponenten:
    • Eine Standard-Instanzanzahl
    • Scale-out-Regeln (wann werden Instanzen hinzugefügt)
    • Scale-in-Regeln (wann werden Instanzen entfernt)
    • Optionale zeitplanbasierte Regeln

Skalierung und Azure App Service Plan

Hier ist ein Beispiel für eine gängige Regel zur automatischen Skalierung:

  • Skaliere aus: Füge eine Instanz hinzu, wenn der CPU-Prozentsatz > 70% für 10 Minuten ist
  • Skala in: Entferne eine Instanz, wenn der CPU-Prozentsatz < 30% für 10 Minuten ist

Du kannst auch anspruchsvollere Regeln erstellen, die auf:

  • Speichernutzung
  • Länge der Datenwarteschlange
  • Benutzerdefinierte Metriken von Application Insights

Für Data Science Workloads solltest du diese Strategien zur automatischen Skalierung in Betracht ziehen:

  • Wenn deine Anwendung maschinelle Lernmodelle bedient, skaliere auf der Grundlage der Länge der Warteschlange, um sicherzustellen, dass die Vorhersagelatenz niedrig bleibt.
  • Planen Sie für ETL-Prozesse zusätzliche Kapazitäten während bekannter Verarbeitungsfenster
  • Nutze bei Anwendungen mit globalen Nutzern die zeitbasierte Skalierung, um eine angemessene Kapazität über verschiedene Zeitzonen hinweg sicherzustellen.

Du kannst die automatische Skalierung auch über die Azure CLI konfigurieren:

# Create an autoscale setting with a rule to scale out when CPU > 70%
az monitor autoscale create --resource-group MyResourceGroup --resource MyAppServicePlan --resource-type "Microsoft.Web/serverfarms" --name MyAutoScaleConfig --min-count 2 --max-count 5 --count 2

# Add a scale out rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale out 1 --condition "Percentage CPU > 70 avg 10m"

# Add a scale in rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale in 1 --condition "Percentage CPU < 30 avg 10m"

Überwachung und Diagnostik

Eine wirksame Überwachung ist entscheidend für die Aufrechterhaltung zuverlässiger Datenanwendungen. Azure bietet umfassende Überwachungstools, die dir Einblick in die Leistung deiner Anwendung, Nutzungsmuster und mögliche Probleme geben.

Azure Monitor und Application Insights

Azure Monitor ist die Grundlage für die Überwachung der Azure-Dienste, während Application Insights tiefere anwendungsspezifische Einblicke bietet.

So aktivierst du Application Insights für deinen App-Dienst:

  1. Wähle in deinem App Service "Application Insights" in der linken Seitenleiste
  2. Klicke auf "Application Insights einschalten".
  3. Konfiguriere eine neue oder bestehende Application Insights Ressource
  4. Klick auf "Anwenden"

Azure Monitor und Application Insights.

Einmal aktiviert, sammelt Application Insights eine Fülle von Daten über deine Anwendung, darunter:

  • Anfrageraten, Antwortzeiten und Ausfallraten
  • Abhängigkeitsaufrufe (Datenbanken, externe APIs)
  • Leistung der Seitenansicht
  • Ausnahmeprotokolle
  • Benutzerdefinierte Ereignisse, die du im Code definierst

Für Python-Anwendungen musst du das Application Insights SDK installieren:

pip install opencensus-ext-azure

Und dann füge deiner Anwendung eine Instrumentierung hinzu:

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

# Configure the Azure exporter
azure_exporter = AzureExporter(
    connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000'
)

# Create a tracer
tracer = Tracer(exporter=azure_exporter, sampler=ProbabilitySampler(1.0))

# Use the tracer in your application
with tracer.span(name="main_function"):
    # Your code here
    pass

Protokolle einsehen und Warnungen einrichten

Azure App Service sammelt automatisch Protokolle, die dir helfen können, Probleme zu diagnostizieren:

  1. Wähle in deinem App-Dienst "Log-Stream" aus, um Echtzeit-Protokolle anzuzeigen
  2. Für eine detailliertere Analyse gehst du zu "Diagnoseprotokolle" und aktivierst die Anwendungsprotokollierung
  3. Konfiguriere den Log-Level (Fehler, Warnung, Information, Ausführlich)

Anzeigen von Protokollen in Azure App Service.

Achte bei Datenanwendungen besonders darauf:

  • Ausnahmen bei Speichermangel, die bei der Verarbeitung großer Datensätze häufig auftreten
  • Verbindungs-Timeouts zu Datenquellen
  • Leistungsengpässe bei Datenumwandlungsvorgängen

Durch die Einrichtung von Warnmeldungen wird sichergestellt, dass du über Probleme informiert wirst, bevor sie sich auf die Nutzer/innen auswirken:

  1. Wähle in Azure Monitor "Alerts".
  2. Klicke auf "Neue Alarmregel".
  3. Wähle deinen App-Dienst als Ressource aus
  4. Definiere die Bedingung, die den Alarm auslösen soll
  5. Konfiguriere Aktionsgruppen, um festzulegen, wer benachrichtigt werden soll und wie
  6. Benenne deine Ausschreibung und speichere sie

Zu den üblichen Ausschreibungen für Datenanwendungen gehören:

  • Hohe Speichernutzung (>80%)
  • Serverfehler (5xx Antworten)
  • Lange Bearbeitungszeiten für wichtige Vorgänge
  • Fehlgeschlagene Datenverbindungsversuche

Individuelle Überwachung für Datenanwendungen

Für datenbezogene Überwachungsbedürfnisse kannst du diese benutzerdefinierten Kennzahlen verfolgen:

  • Durchsatz der Datenverarbeitung (verarbeitete Datensätze pro Minute)
  • Latenzzeit bei der Modellinferenz
  • Berechnungszeit für Merkmale
  • Cache hit/miss ratios

Du kannst mithilfe des SDK benutzerdefinierte Metriken an Application Insights senden:

from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation, measure, stats, view

# Create a metrics exporter
exporter = metrics_exporter.new_metrics_exporter(
    connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')

# Create and record custom metrics
prediction_time = measure.MeasureFloat(
    "prediction_time", "Time taken for model inference", "ms")
prediction_time_view = view.View(
    "prediction_time_view", "Model inference time", [], prediction_time, aggregation.LastValueAggregation())

# Register the view
stats.stats.view_manager.register_view(prediction_time_view)

# Record metrics
mmap = stats.stats.stats_recorder.new_measurement_map()
mmap.measure_float_put(prediction_time, 175.5)  # Record 175.5ms inference time
mmap.record()

# Force metrics to be sent immediately
exporter.export_metrics([])

Sichern und Wiederherstellen

Datenanwendungen verwalten oft wertvolle Informationen, weshalb Sicherungs- und Wiederherstellungsfunktionen unerlässlich sind. Azure App Service bietet eine integrierte Backup-Funktion, mit der du die Dateien, die Konfiguration und die verbundenen Datenbanken deiner Anwendung sichern kannst.

Automatische Backups einrichten

So konfigurierst du Backups:

  1. Wähle in deinem App Service "Backups" in der linken Seitenleiste
  2. Klick auf "Konfigurieren"
  3. Lege den Backup-Zeitplan fest (täglich, wöchentlich oder benutzerdefiniert)
  4. Lege ein Speicherkonto für die Sicherungsdateien fest
  5. Optional Datenbanken in das Backup aufnehmen
  6. Klicke auf "Speichern"

Konfigurieren und Anzeigen von Backups in Azure App Service.

Für Datenanwendungen solltest du die folgenden Best Practices zur Datensicherung beachten:

  • Planen Sie Backups in Zeiten mit geringer Aktivität
  • Stelle sicher, dass sich dein Speicherkonto in derselben Region befindet wie dein App Service, um schnellere Backups zu ermöglichen.
  • Für Anwendungen mit häufigen Datenänderungen sollten Sie häufigere Backups konfigurieren
  • Denken Sie daran, dass große Datenbanken die Größenbeschränkungen für die Sicherung überschreiten können; ziehen Sie für diese Fälle datenbankspezifische Sicherungsstrategien in Betracht

Wiederherstellung von einer Sicherung

Wenn du deine Anwendung wiederherstellen musst:

  1. Wähle im Abschnitt "Backups" den Sicherungspunkt aus, von dem du wiederherstellen möchtest
  2. Klick auf "Wiederherstellen"
  3. Wähle aus, ob der Inhalt der App, die Konfiguration und die verbundenen Datenbanken wiederhergestellt werden sollen
  4. Gib den Ziel-App-Dienst an (dies kann die gleiche oder eine andere App sein)
  5. Klicke auf "OK", um den Wiederherstellungsprozess zu starten

Für kritische Datenanwendungen empfehle ich, den Wiederherstellungsprozess regelmäßig zu testen, um sicherzustellen, dass deine Wiederherstellungsstrategie wie erwartet funktioniert.

Datenbankspezifische Sicherungsstrategien

Während App Service-Backups auch verbundene Datenbanken umfassen können, profitieren datenintensive Anwendungen oft von datenbankspezifischen Backup-Strategien:

  • Konfiguriere für Azure SQL-Datenbanken automatische Backups mit Point-in-Time Restore
  • Verwenden Sie für Cosmos DB den kontinuierlichen Sicherungsmodus
  • Für große Datensätze, die in Azure Storage gespeichert werden, sollten Sie die Replikation und Versionierung von Speicherkonten in Betracht ziehen.

Sicherheit und Compliance in Azure App Service

Sicherheit ist das A und O bei Datenanwendungen, vor allem wenn es um sensible oder regulierte Informationen geht. Azure App Service bietet verschiedene Sicherheitsfunktionen, um deine Anwendungen zu schützen.

Rollenbasierte Zugriffskontrolle (RBAC)

Mit RBAC kannst du kontrollieren, wer deine App Service Ressourcen verwalten darf:

  1. Navigieren Sie im Azure-Portal zu Ihrem App Service
  2. Wähle "Zugriffskontrolle (IAM)" in der linken Seitenleiste
  3. Klicke auf "Hinzufügen" und dann auf "Rollenzuweisung hinzufügen".
  4. Wähle die passende Rolle:
    • Mitwirkende: Kann App Service verwalten, aber anderen keinen Zugriff gewähren
    • Leser: Kann alles ansehen, aber nicht ändern
    • Website Mitwirkende: Kann Websites verwalten, aber nicht den App Service Plan
  5. Wähle die Benutzer, Gruppen oder Dienstprinzipale aus, denen die Rolle zugewiesen werden soll
  6. Klicke auf "Speichern"

RBAC in Azure App Service.

Für Datenteams kannst du benutzerdefinierte Rollen einrichten, die den Zugriff auf bestimmte Vorgänge je nach Aufgabenbereich einschränken.

IP-Beschränkungen und Vernetzung

Mit IP-Beschränkungen kannst du kontrollieren, welche IP-Adressen auf deinen App-Dienst zugreifen können:

  1. Wähle in deinem App Service "Netzwerke" in der linken Seitenleiste
  2. Gehe zu "Zugangsbeschränkungen"
  3. Klicke auf "Regel hinzufügen".
  4. Lege den IP-Adressbereich, die Aktion (Zulassen/Verweigern), die Priorität und den Namen fest
  5. Klicke auf "Regel hinzufügen".

IP-Beschränkungen und Netzwerke in Azure App Service.Für Datenanwendungen, die sich mit internen Ressourcen verbinden, solltest du Folgendes beachten:

  • VNet-Integration: Verbinde deinen App-Dienst mit deinem virtuellen Netzwerk
  • Dienst-Endpunkte: Sichere Verbindungen zu Azure-Diensten wie SQL und Storage
  • Private Endpunkte: Erstelle einen privaten Link zu deinem App-Dienst aus deinem virtuellen Netzwerk

So richtest du die VNet-Integration ein:

  1. Wähle im Abschnitt "Vernetzung" die Option "VNet Integration".
  2. Klicken Sie auf "VNet hinzufügen".
  3. Wähle oder erstelle ein virtuelles Netzwerk und Subnetz
  4. Click "OK"

Diese Integration ist besonders nützlich, um eine sichere Verbindung zu Datenbanken oder anderen Datenquellen innerhalb deines Netzwerks herzustellen.

Fehlerbehebung bei häufigen Problemen mit dem Azure App Service

Auch bei sorgfältiger Planung kann es zu Problemen mit deinem App-Service kommen. Hier sind einige häufige Probleme und ihre Lösungen, wobei der Schwerpunkt auf Datenanwendungsszenarien liegt.

Diagnose von App-Abstürzen

Wenn deine App abstürzt oder nicht reagiert:

  1. Überprüfe die App-Service-Protokolle:
    • Gehe zu "Log-Stream" für Echtzeit-Logs
    • Prüfe "Diagnoseprotokolle" für historische Daten
  2. Nutze Application Insights, um Ausnahmen zu identifizieren
  3. Führe die Kudu-Diagnosetools aus:
    • Navigiere zu https://.scm.azurewebsites.net/DebugConsole
    • Verwende die Konsole, um Dateien und Prozesse zu untersuchen

Häufige Ursachen für Abstürze in Datenanwendungen sind unter anderem:

  • Speichergrenzen: Die Verarbeitung großer Datensätze kann den verfügbaren Speicherplatz übersteigen
  • Abhängigkeitsfragen: Fehlende oder inkompatible Pakete
  • Konfigurationsfehler: Falsche Verbindungszeichenfolgen oder Umgebungsvariablen

Für speicherintensive Vorgänge solltest du das berücksichtigen:

  • Skalierung auf eine höhere Ebene mit mehr Speicher
  • Implementierung von Data Chunking zur Verarbeitung kleinerer Stapel
  • Effizientere Algorithmen oder Datenstrukturen verwenden

Beseitigung von Leistungsproblemen

Wenn deine Anwendung langsam läuft:

  1. Nutze die Leistungsüberwachung von Application Insights:
    • Überprüfe das Performance Blade, um langsame Anfragen zu identifizieren
    • Suche nach Abhängigkeitsaufrufen, die zu Engpässen führen können
  2. Überprüfe die Servermetriken in Azure Monitor:
    • CPU- und Speicherauslastung
    • Länge der HTTP-Warteschlange
  3. Prüfe die Leistung von Datenbankabfragen für datenintensive Operationen

Um die Leistung zu verbessern:

  • Caching für häufige Abfragen implementieren
  • Optimiere Datenbankindizes
  • Vergrößerung oder Verkleinerung in Betracht ziehen
  • Verwende asynchrone Operationen für lang laufende Prozesse

Durchsicht von Protokollen und Fehlermeldungen

Azure App Service bietet mehrere Protokollierungsoptionen:

  1. Anwendungsprotokolle: Eigene Logs deiner Anwendung
  2. Webserver-Protokolle: HTTP-Anfrage- und Fehlerprotokolle
  3. Einsatzprotokolle: Informationen über deinen Einsatzprozess
  4. Detaillierte Fehlerprotokollierung: Mehr Informationen über HTTP-Fehler

Um eine detailliertere Protokollierung zu konfigurieren:

  1. Gehe in deinem App Service zu "Diagnoseprotokolle".
  2. Aktiviere die entsprechenden Protokolltypen
  3. Lege die entsprechende Stufe fest (Fehler, Warnung, Information, Ausführlich)
  4. Wähle, ob die Protokolle im Dateisystem oder im Blob-Speicher gespeichert werden sollen

Für Python-Anwendungen kannst du das Logging mit:

import logging
import sys

# Configure logging
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.StreamHandler(sys.stdout)
    ]
)

# Use logging in your application
logger = logging.getLogger(__name__)
logger.info("Processing data batch")
logger.error("Failed to connect to database", exc_info=True)

Kostenmanagement mit Azure App Service

Datenanwendungen können oft erhebliche Ressourcen verbrauchen, weshalb es besonders wichtig ist, die Kosten zu verstehen und zu optimieren. In diesem letzten Abschnitt befassen wir uns mit den Azure App Service-Preismodellen und Strategien für ein effektives Kostenmanagement.

Die Preisgestaltung von Azure App Service verstehen

Die Preise für Azure App Service richten sich in erster Linie nach dem von dir gewählten App Service Plan. Schauen wir uns die zu berücksichtigenden Kostenfaktoren an:

App Service-Tarifstufen

Wie wir bereits erwähnt haben, bietet Azure verschiedene Preisstufen mit unterschiedlichen Funktionen und Kosten:

Tier

Monatliche Kostenspanne (USD)

Eigenschaften

Am besten für

Frei

$0

1 GB Speicherplatz, gemeinsame Infrastruktur, 60 Minuten/Tag Rechenleistung

Entwicklung, Lernen

Geteilt (D1)

$10-15

1 GB Speicherplatz, 240 Minuten/Tag Rechenleistung

Standorte mit geringem Verkehrsaufkommen, Tests

Basic (B1-B3)

$55-220

Dedizierte VMs, manuelle Skalierung, benutzerdefinierte Domains

Produktionsworkloads, geringer bis mittlerer Verkehr

Standard (S1-S3)

$70-400

Automatische Skalierung, Staging Slots, tägliche Backups

Produktionsanwendungen mit variablem Verkehr

Premium (P1V2-P3V2)

$80-500

Verbesserte Leistung, mehr Skalierungsoptionen

Hohe Leistungsanforderungen, große Anwendungen

Isoliert

$300-1000+

Dedizierte Netzwerk-/Rechnerisolierung

Anwendungen mit strengen Compliance-Anforderungen

Hinweis: Die Preise sind ungefähre Angaben und können je nach Region oder bei Preisänderungen durch Azure variieren. Die neuesten Informationen findest duauf der offiziellen Preisseite .

Zusätzliche Kostenfaktoren

Über den Basis-App-Service-Plan hinaus solltest du diese zusätzlichen Kosten berücksichtigen:

  1. Ausgehende Datenübertragung: Nach den ersten 5 GB pro Monat (die kostenlos sind) fallen für die abgehende Datenübertragung Gebühren an. Bei Datenanwendungen, die den Nutzern große Datenmengen zur Verfügung stellen, kann das sehr wichtig werden.
  2. SSL-Zertifikate: Während Azure kostenlose Zertifikate anbietet, sind benutzerdefinierte Zertifikate mit Kosten verbunden.
  3. Benutzerdefinierte Domains: Die erste benutzerdefinierte Domain ist kostenlos, aber für weitere Domains können Gebühren anfallen.
  4. Lagerung: Zusätzlicher Speicherplatz, der nicht in deiner Stufe enthalten ist, kostet extra.
  5. Add-ons und verbundene Dienste: Für Datenbanken, Caching-Dienste und andere Azure-Ressourcen, die mit deinem App-Dienst verbunden sind, fallen eigene Gebühren an.

Überwachungskosten

Azure bietet Tools zur Überwachung und Prognose deiner Ausgaben:

  1. Azure Kostenmanagement: Hierauf kannst du im Azure-Portal zugreifen, um die Kosten nach Ressourcen anzuzeigen, Budgets festzulegen und Warnmeldungen zu erstellen.
  2. Preiskalkulator: Nutze den Azure-Preisrechner, umdie Kosten vor dem Einsatz abzuschätzen.
  3. Empfehlungen des Beraters: Azure Advisorliefert dir Vorschläge zur Kostenoptimierung auf der Grundlage deines Nutzungsverhaltens.

> Kosten, Sicherheit und Leistung der Azure-Dienste effektiv zu verwalten, ist dieser Kurs zu Azure Management und Governance sehrempfohlen.

Strategien zur Kostenoptimierung

Nachdem wir nun das Preismodell verstanden haben, wollen wir Strategien zur Kostenoptimierung für Datenanwendungen auf Azure App Service erkunden.

Die richtige Größe deines App Service Plans

Eine der effektivsten Möglichkeiten, die Kosten zu kontrollieren, ist sicherzustellen, dass du den richtigen App-Service-Plan verwendest:

  1. Beginne mit einer ordentlichen Basislinie: Beginne mit einem moderaten Plan und erhöhe ihn nur, wenn es nötig ist, anstatt dich für einen hochstufigen Plan zu entscheiden.
  2. Überwache die Ressourcenauslastung: Verwende Azure Monitor, um die CPU-, Speicher- und Festplattennutzung zu verfolgen. Wenn du dauerhaft unter 50 % Auslastung liegst, solltest du eine Verkleinerung in Betracht ziehen.
  3. Passe die Stufe an dein Arbeitsaufkommen an: Für Datenanwendungen mit vorhersehbarem, konstantem Arbeitsaufkommen kann ein Basic oder Standard Tier ausreichend sein. Reserviere Premium-Tiers für Anwendungen mit hohen Leistungsanforderungen.

Für datenwissenschaftliche Anwendungen solltest du diese speziellen Empfehlungen beachten:

  • Modelle für APIs mit geringen Latenzanforderungen und mäßigem Datenverkehr funktionieren oft gut mit Standard-Tarifen mit automatischer Skalierung.
  • Datenverarbeitungs-Pipelines Bei Zeitplänen können oft Basispläne verwendet werden, wenn die Verarbeitungszeit nicht kritisch ist.
  • Interaktive Dashboards mit vielen gleichzeitigen Nutzern erfordern normalerweise Standard- oder Premium-Tarife, um die Reaktionsfähigkeit zu gewährleisten.

Auto-Skalierung effektiv nutzen

Die automatische Skalierung dient nicht nur zur Bewältigung von Verkehrsspitzen, sondern ist auch ein leistungsstarkes Instrument zur Kostenoptimierung:

  1. Skaliere auf Null, wenn möglich: Für nicht-kritische Anwendungen oder Entwicklungsumgebungen solltest du außerhalb der Geschäftszeiten die Anzahl der Instanzen auf ein Minimum reduzieren.
  2. Lege geeignete Skalierungsschwellen fest: Gehe nicht zu aggressiv vor. Beginne mit konservativen Schwellenwerten (z.B. 70% CPU) und passe sie anhand von Leistungsbeobachtungen an.
  3. Implementiere die geplante Skalierung: Für vorhersehbare Arbeitslasten solltest du geplante Skalierungsregeln anstelle der metrikbasierten automatischen Skalierung verwenden. Skaliere zum Beispiel während der Geschäftszeiten hoch und in der Nacht und am Wochenende runter.
# Example: Create a scheduled autoscale rule to scale down at night
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale to 1 --condition "Current time is between 22:00 and 06:00 recurring"

Optimieren von Entwicklungs- und Testumgebungen

Entwicklungs- und Testumgebungen bieten erhebliche Möglichkeiten für Kosteneinsparungen:

  1. Verwende den Free oder Shared Tier für Entwicklungsumgebungen, wenn möglich.
  2. Implementiere die automatische Abschaltung für Nicht-Produktionsumgebungen außerhalb der Geschäftszeiten. App Service hat zwar keine integrierte Funktion zum Herunterfahren, aber du kannst Azure Automation oder Logic Apps verwenden, um Apps nach einem Zeitplan zu stoppen und zu starten.
  3. Effiziente Nutzung der Einsatzzeiträume: Anstatt separate Umgebungen für das Staging zu unterhalten, kannst du Deployment-Slots in einem einzigen App Service für die Produktion verwenden. Dieser Ansatz ermöglicht es dir, Umgebungen auszutauschen, ohne dass du doppelte Kosten hast.
# Create a staging slot
az webapp deployment slot create --name MyWebApp --resource-group MyResourceGroup --slot staging

# Swap staging to production
az webapp deployment slot swap --name MyWebApp --resource-group MyResourceGroup --slot staging --target-slot production

Datenspezifische Kostenoptimierungen

Für Datenanwendungen solltest du diese speziellen kostensparenden Ansätze in Betracht ziehen:

  1. Entlade die schwere Verarbeitung: Anstatt intensive Datenverarbeitung in deinem App Service durchzuführen, solltest du dedizierte Dienste wie Azure Functions (für serverlose Verarbeitung) oder Azure Data Factory (für ETL-Workflows) nutzen.
  2. Implementiere das Caching: Für Daten, die sich nicht häufig ändern, solltest du eine Zwischenspeicherung einrichten, um Datenbankaufrufe und Berechnungen zu reduzieren. Azure Cache für Redis lässt sich gut mit App Service integrieren.
  3. Optimiere die Datenbankkosten: Oft kostet die mit deinem App-Dienst verbundene Datenbank mehr als der App-Dienst selbst. Bedenke:
    • Elastische Pools für SQL-Datenbanken verwenden
    • Implementierung einer angemessenen Indizierung
    • Verwendung von Tiered Storage für weniger häufig genutzte Daten
  4. Antworten komprimieren: Für Anwendungen, die große Datenmengen an die Nutzerinnen und Nutzer weitergeben, solltest du die Komprimierung aktivieren, um die Kosten für die Übertragung ausgehender Daten zu senken:
# Example for Flask applications
from flask import Flask
from flask_compress import Compress

app = Flask(__name__)
Compress(app)

Fortgeschrittene Techniken für Datenanwendungen

Neben der Kostenoptimierung gibt es verschiedene fortschrittliche Techniken, um die Leistung und die Fähigkeiten deiner Datenanwendungen auf Azure App Service zu verbessern.

Containerisierung von Datenanwendungen

Container bieten Konsistenz über verschiedene Umgebungen hinweg und können das Abhängigkeitsmanagement vereinfachen - eine häufige Herausforderung bei Datenanwendungen mit komplexen Anforderungen:

  1. Erstelle im Azure Portal eine neue Web App
  2. Wähle "Docker Container" anstelle von "Code" für die Veröffentlichungsoption
  3. Wähle Single Container und gib dein Docker-Image an

Für Data Science-Anwendungen solltest du ein Basis-Container-Image mit häufig verwendeten Bibliotheken wie NumPy, Pandas und Scikit-Learn bereitstellen, um die Bereitstellung zu beschleunigen.

CI/CD für Daten-Workflows implementieren

Wenn du über das grundlegende CI/CD hinausgehst, solltest du die Implementierung automatisierter Tests speziell für Datenanwendungen in Betracht ziehen:

  1. Datenvalidierungstests: Überprüfen, ob die Datenverarbeitung die erwarteten Ergebnisse liefert
  2. Modellleistungstests: Sicherstellen, dass ML-Modelle die Anforderungen an Genauigkeit und Leistung erfüllen
  3. Lasttests: Überprüfen, ob die Anwendung die erwarteten Datenmengen verarbeiten kann

GitHub Actions Workflow-Beispiel für eine Datenanwendung:

name: Data App CI/CD

on:
  push:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.8'
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
        pip install pytest pytest-cov
    - name: Test with pytest
      run: |
        pytest tests/data_validation_tests.py
        pytest tests/model_performance_tests.py

  deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Deploy to Azure
      uses: azure/webapps-deploy@v2
      with:
        app-name: 'my-data-app'
        publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

WebJobs für die Hintergrundverarbeitung verwenden

Für Datenanwendungen, die eine Hintergrundverarbeitung benötigen, bieten Azure WebJobs eine Möglichkeit, Skripte oder Programme im selben Kontext wie dein App Service auszuführen:

  1. Gehe in deinem App Service in der linken Seitenleiste auf "WebJobs".
  2. Klick auf "Hinzufügen"
  3. Lade deine Skriptdatei hoch (z. B. ein Python-Skript zur Datenverarbeitung)
  4. Wähle den Auslösetyp (manuell, geplant oder kontinuierlich)
  5. Click "OK"

WebJobs sind besonders nützlich für:

  • Geplante Datenbereinigung
  • Regelmäßige Berichterstellung
  • Regelmäßige Modellumschulung
  • Datensynchronisation zwischen Systemen

Hybride Konnektivität für On-Premises-Daten

Viele Unternehmen haben Daten, die vor Ort bleiben. Azure App Service kann sich mit diesen Daten verbinden:

  1. VNet-Integration: Verbinde deinen App Service mit einem virtuellen Netzwerk, das über ExpressRoute oder VPN mit deinem lokalen Netzwerk verbunden ist.
  2. Hybride Verbindungen: Eine einfachere Alternative, die kein VPN erfordert und es deinem App-Dienst ermöglicht, bestimmte Server vor Ort über Hostname und Port zu erreichen.

So richtest du Hybrid-Verbindungen ein:

  1. Wähle in deinem App Service "Netzwerke" in der linken Seitenleiste
  2. Gehe zu "Hybride Verbindungen"
  3. Klicke auf "Hybridverbindung hinzufügen".
  4. Erstelle eine neue oder verwende eine bestehende Verbindung
  5. Gib den Hostnamen und den Port des Endpunkts an
  6. Installiere den Hybrid Connection Manager auf deinem Server vor Ort

Implementierung von Merkmalsauszeichnungen für Datenanwendungen

Mit Feature-Flags kannst du Funktionen selektiv aktivieren, was für A/B-Tests von Datenfunktionen oder die schrittweise Einführung neuer Modelle wichtig ist:

{
  "FeatureFlags": {
    "NewRecommendationModel": false,
    "AdvancedDataFiltering": true
  }
}

Lies diese Flags in deinem Code:

import os
import json

feature_flags = json.loads(os.environ.get('FeatureFlags', '{}'))
use_new_model = feature_flags.get('NewRecommendationModel', False)

if use_new_model:
    # Use new recommendation model
else:
    # Use existing model

Mit diesem Ansatz kannst du neue Funktionen mit einer Untergruppe von Nutzern testen oder problematische Funktionen schnell und ohne erneute Bereitstellung deaktivieren.

> Wenn du tiefer in die Automatisierung der Bereitstellung von ML-Modellen eintauchen willst, schau dir diesen Kurs über CI/CD für maschinelles Lernen an.

Fazit

In diesem Tutorial haben wir uns damit beschäftigt, wie du Azure App Service für Datenanwendungen einrichtest, bereitstellst, konfigurierst, skalierst und optimierst. Von der Erstellung deines ersten App Service bis zur Implementierung fortgeschrittener Funktionen wie automatische Skalierung und hybride Konnektivität hast du jetzt das Wissen, um die Azure-Plattform für deine Daten-Workloads zu nutzen.

Die wichtigsten Erkenntnisse

  1. Azure App Service bietet eine vollständig verwaltete Plattform die es Datenexperten ermöglicht, sich auf die Anwendungslogik und nicht auf die Verwaltung der Infrastruktur zu konzentrieren.
  2. Mehrere Bereitstellungsoptionen ermöglichen eine nahtlose Integration in deinen bestehenden Entwicklungsworkflow, egal ob du GitHub, Azure DevOps oder lokale Git-Repositories verwendest.
  3. Skalierungsmöglichkeiten stellen sicher, dass deine Anwendung unterschiedliche Arbeitslasten bewältigen kann, von Entwicklungstests bis hin zu großen Datenmengen in der Produktion.
  4. Integrierte Überwachungs- und Diagnosetools helfen dabei, die Zuverlässigkeit und Leistung aufrechtzuerhalten, mit speziellen Metriken für Datenanwendungen.
  5. Strategien zur Kostenoptimierung ermöglichen es dir, den Wert zu maximieren und gleichzeitig die Kosten zu minimieren, was besonders bei ressourcenintensiven Datenworkloads wichtig ist.

Nächste Schritte

Wenn du deine Reise mit Azure App Service fortsetzen möchtest, solltest du dich informieren:

  1. Integration mit Azure ML: Stelle Modelle, die in Azure Machine Learning trainiert wurden, für Inferenzen in deinem App Service bereit.
  2. Azure Functions: Für ereignisgesteuertes, serverloses Computing, das deine App Service-Anwendungen ergänzt.
  3. Azure API Management: Zur Sicherung und Verwaltung von APIs, die deine Datendienste offenlegen.
  4. Azure Logic Apps: Für die Workflow-Automatisierung zwischen deinem App Service und anderen Datenquellen.
  5. Der Lernpfad Microsoft Azure Fundamentals istauch eine gute Ressource, wenn du dich auf die Zertifizierung vorbereitest oder strukturiert lernen möchtest.

Vergiss nicht, dass sich die Cloud-Landschaft schnell weiterentwickelt, also haltedie Azure-Updates-Seite im Auge, um neue Funktionen und Dienste zu finden, die deine Datenanwendungen verbessern könnten!

Werde Azure AZ-900 zertifiziert

Bereite dich auf Azure's PL-300 vor und erhalte 50% Rabatt auf die Prüfungsgebühr.

Kofi Glover's photo
Author
Kofi Glover
LinkedIn
Agentischer KI-Enthusiast mit einer Leidenschaft für die Nutzung der Macht der KI, um den Geschäftswert zu steigern und die Zukunft der Arbeit zu gestalten. Vordenker und früher Anwender bahnbrechender Techniken und Technologien wie Multi-Agenten-Systeme, generative KI, Deep Reinforcement Learning, multimodale KI-Systeme, Flow-Engineering und Prompt Engineering.

Breiter technischer Hintergrund einschließlich maschinellem Lernen, Data Science, quantitativer Modellierung, Software Engineering, DevOps und Cloud Computing.
Themen

Lerne mehr über Azure mit diesen Kursen!

Kurs

Understanding Microsoft Azure

3 Std.
33.9K
Learn about the power of Microsoft Azure and cloud computing software to help you improve your data engineering skills.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 50 besten AWS-Interview-Fragen und Antworten für 2025

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen, zusammen mit Fragen, die auf realen Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Mehr anzeigenMehr anzeigen