Bearbeiten

Bereitstellen einer Branchenanwendung mit Verwendung einer Azure App Service-Umgebung (v3)

Azure App Service
Azure DNS
Azure Monitor
Azure Log Analytics
Azure-Schlüsseltresor

Für Kunden in stark regulierten Sektoren mit strengen Compliancevorgaben ist eine isolierte und dedizierte Umgebung unerlässlich, insbesondere für Branchenanwendungen. Wenngleich die Sicherheit an erster Stelle steht, müssen diese kritischen Anwendungen auch skalierbar sein und in Szenarien mit hoher Speicherauslastung oder hohen Zugriffszahlen pro Sekunde eine angemessene Leistung gewährleisten. Diese Lösung ist ein Beispiel dafür, wie Sie Branchenanwendungen hosten können. Mit einer Azure App Service-Umgebung können Sie sicherstellen, dass Sicherheit und Leistung gleichermaßen berücksichtigt werden. Durch die Bereitstellung dieser Lösung erhalten Sie die Flexibilität, vorhandene Ressourcen in Ihrer Azure-Zielzone zu nutzen, die Ihre Ressourcen im Hub-VNet repräsentiert. Alternativ dazu können Sie diese Lösung auch als eigenständige Workload bereitstellen.

Hinweis

In diesem Artikel finden Sie eine bereitstellungsfähige Architektur, die sich an den Zielzone-Beschleuniger für App Service richtet.

Architektur

Abbildung: Architektur des Zielzonenbeschleunigers für App Service Environment v3

Die Abbildung zeigt den Geltungsbereich eines Abonnements und einer privaten DNS-Zone. Dies wird durch ein Abonnementsymbol und ein Symbol für eine private DNS-Zone in der oberen linken Ecke gekennzeichnet. Unterhalb dieser Symbole befinden sich zwei nebeneinander angeordnete Blöcke. Sie stellen zwei virtuelle Netzwerke dar, die über ein VNet-Peering miteinander verbunden sind. Der Block auf der linken Seite repräsentiert das Hub-VNet, der Block auf der rechten Seite stellt das Spoke-VNet dar. Innerhalb des linken Blocks befinden sich drei kleinere Rechtecke. Jedes Rechteck repräsentiert ein eigenes Subnetz und die zugehörige Netzwerksicherheitsgruppe. Oben links wird eine Azure Bastion-Instanz im Subnetz „Bastion“ angezeigt, oben rechts befindet sich die Jumpbox-VM, die im Subnetz „Jumpbox“ enthalten ist. Unten rechts im dritten und letzten Rechteck befindet sich das Hub-VNet mit dem CI/CD-Agent-Server, der im Subnetz „CI/CD“ enthalten ist. Das auf der rechten Seite abgebildete Rechteck, das das Spoke-VNet darstellt, enthält nur ein kleineres Rechteck. Dabei handelt es sich um das Subnetz „ASE“, in dem sich die App Service-Umgebung (v3) befindet. Ein kleineres Rechteck stellt die App Service-Umgebung dar. In diesem Rechteck wird ein App Service-Symbol angezeigt. Unten in der Mitte der Abbildung befinden sich gemeinsam genutzte Ressourcen, die ebenfalls im Rahmen des Prozesses bereitgestellt werden. Zu den gemeinsam genutzten Ressourcen gehören (von links nach rechts) Azure Key Vault, ein Azure Log Analytics-Arbeitsbereich und Azure Application Insights.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

In dieser Architektur gibt es drei Datenflüsse mit Beschriftungen: Betrieb (orange), Bereitstellung (grün) und Benutzer (lila).

Operations

  1. Operatoren oder Administratoren möchten Verwaltungsaufgaben auf dem CI/CD-Server (Continuous Integration/Continuous Deployment) oder auf dem Kudu-Endpunkt für die App Service-Umgebung (ASE) ausführen. Dazu muss zunächst eine Verbindung mit dem Azure Bastion-Host hergestellt werden.
  2. Durch die Verwendung eines Bastion-Hosts kann der Operator oder Administrator dann über RDP (Remote Desk Protocol) auf den Jumpbox-Server zugreifen.
  3. Vom Jumpbox-Server aus kann der Operator oder Administrator per RDP auf den CI/CD-Server zugreifen und die erforderlichen Aufgaben ausführen, z. B. Agent-Upgrades, Betriebssystemupgrades usw. Der Operator oder Administrator kann außerdem vom Jumpbox-Server aus eine Verbindung mit dem Kudu-Endpunkt der ASE-Instanz herstellen, um Verwaltungsaufgaben oder eine erweiterte Problembehandlung durchzuführen.

Bereitstellung

  1. Die Bereitstellung der Lösung erfolgt über den CI/CD-Agent-Server. Der DevOps-Agent auf diesem Server stellt eine Verbindung mit Azure Pipelines her, wenn eine neue Bereitstellung ausgeführt wird.
  2. Die Artefakte werden dann für App Service bereitgestellt, indem per VNet-Peering eine Verbindung mit der App Service-Umgebung (ASE) hergestellt wird.

Benutzer

  1. Benutzer können sich über das Netzwerk des Unternehmens mit der bereitgestellten App Service-Umgebung verbinden. Sie können hierzu Azure ExpressRoute oder (falls erforderlich) ein VPN und/oder ein beliebiges anwendbares Azure VNet-Peering verwenden.

Komponenten

Diese Lösung nutzt die folgenden Azure-Dienste:

  • Azure App Service-Umgebung v3 (ASEv3) ist ein Feature von Azure App Service und ein Einzelinstanzdienst für Kunden mit hohe Anforderungen an Skalierung, Netzwerkisolierung, Sicherheit und/oder einer hohen Arbeitsspeicherauslastung. Apps werden in App Service-Plänen gehostet, die in ASEv3 erstellt werden. Hierbei besteht die Möglichkeit, innerhalb der Dienstebene „Isolated v2“ verschiedene Tarife zu nutzen. Im Vergleich zu den Vorgängerversionen von ASE wurden zahlreiche Verbesserungen vorgenommen, unter anderem hinsichtlich der Netzwerkabhängigkeit, der Skalierungszeit und durch den Wegfall der Stempelgebühr. Diese Lösung verwendet eine App Service-Umgebung der Version 3, die für den internen Zugriff konfiguriert ist.

  • Privates DNS in Azure ermöglicht es Ihnen, Domänennamen innerhalb eines virtuellen Netzwerks zu verwalten und aufzulösen, ohne eine eigene DNS-Lösung implementieren zu müssen. Eine private Azure DNS-Zone kann durch virtuelle Netzwerkverbindungen mit einem oder mehreren virtuellen Netzwerken verknüpft werden. Aufgrund der internen Natur von ASEv3 in dieser Referenzarchitektur wird eine private DNS-Zone benötigt, um die Domänennamen von Anwendungen aufzulösen, die in der App Service-Umgebung gehostet werden.

  • Azure Application Insights ist ein Feature von Azure Monitor, das Entwickler dabei unterstützt, Anomalien zu erkennen, Probleme zu diagnostizieren und Nutzungsmuster zu verstehen. Application Insights bietet eine erweiterbare Verwaltung und Überwachung der Anwendungsleistung für Live-Web-Apps. Es werden verschiedene Plattformen unterstützt, darunter .NET, Node.js, Java und Python. Die Lösung unterstützt Apps, die in Azure, lokal, in einer Hybridumgebung oder in anderen öffentlichen Clouds gehostet werden. Application Insights ist Teil dieser Referenzarchitektur, um das Verhalten der bereitgestellten Anwendung zu überwachen.

  • Azure Log Analytics ist ein Feature von Azure Monitor, das Ihnen die Bearbeitung und Ausführung von Protokollabfragen mit Daten in Azure Monitor-Protokollen ermöglicht, optional über das Azure-Portal. Entwickler können einfache Abfragen für eine Reihe von Datensätzen ausführen oder Log Analytics verwenden, um erweiterte Analysen durchzuführen. Anschließend können sie die Ergebnisse visualisieren. Log Analytics wird als Teil dieser Referenzarchitektur konfiguriert, um alle Überwachungsprotokolle für Analysen und Berichterstellung zu aggregieren.

  • Azure Virtual Machines ist eine bedarfsgesteuerte, skalierbare Computingressource, die zum Hosten einer Vielzahl unterschiedlicher Workloads verwendet werden kann. In dieser Referenzarchitektur werden virtuelle Computer (VMs) verwendet, um einen Jumpbox-Verwaltungsserver sowie einen Host für den DevOps-Agent oder GitHub-Runner bereitzustellen.

  • Azure Key Vault ist ein Clouddienst für die sichere Speicherung und den Zugriff auf Geheimnisse, die von API-Schlüsseln und Kennwörtern bis hin zu Zertifikaten und Kryptografieschlüsseln reichen. In dieser Architektur wird eine Azure Key Vault-Instanz als Teil der Infrastruktur bereitgestellt, um die Geheimnisverwaltung für zukünftige Codebereitstellungen zu erleichtern.

  • Azure Bastion ist ein PaaS-Dienst (Platform-as-a-Service), der innerhalb des virtuellen Netzwerks des Entwicklers bereitgestellt wird. Die Lösung bietet eine sichere RDP/SSH-Verbindung mit den VMs des Entwicklers über TLS aus dem Azure-Portal. Mit Azure Bastion benötigen VMs keine öffentliche IP-Adresse mehr, um sich über RDP/SSH zu verbinden. Diese Referenzarchitektur verwendet Azure Bastion für den Zugriff auf den DevOps-Agent- oder GitHub-Runner-Server oder den Jumpbox-Verwaltungsserver.

Alternativen

Erwägen Sie das Hinzufügen einer Azure Application Gateway-Instanz vor der App Service-Instanz, um WAF-Funktionen (Web Application Firewall) bereitzustellen, die Webanwendungen vor gängigen Exploits und Sicherheitslücken schützen.

Anstelle des selbstgehosteten Azure DevOps-Agents kann ein selbstgehosteter GitHub-Runner verwendet werden.

Überlegungen

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

Zuverlässigkeit

Zuverlässigkeit stellt sicher, dass Ihre Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie in der Überblick über die Säule „Zuverlässigkeit“.

  • Berücksichtigen Sie Ihre Anforderungen an die Zonenredundanz in dieser Referenzimplementierung sowie die Zonenredundanzfunktionen aller weiteren Azure-Dienste in Ihrer Lösung. ASEv3 unterstützt Zonenredundanz, indem Instanzen auf alle drei Zonen in der Zielregion verteilt werden. Diese Konfiguration kann nur zum Zeitpunkt der ASE-Erstellung festgelegt werden und steht möglicherweise nicht in allen Regionen zur Verfügung. Weitere Informationen finden Sie unter Unterstützung für Verfügbarkeitszonen in einer App Service-Umgebung. Diese Referenzbereitstellung implementiert Zonenredundanz, aber Sie können dies ändern, indem Sie dieses Repository klonen und die Eigenschaft zoneRedundant auf false festlegen.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

  • Nutzen Sie geeignete Zugriffsbeschränkungen, damit der App-Dienst nur von gültigen Standorten aus erreichbar ist. Wenn der App-Dienst beispielsweise APIs hostet und APIM als Front-End fungiert, können Sie eine Zugriffsbeschränkung einrichten, sodass der App-Dienst nur von APIM aus zugänglich ist.
  • Da bei dieser Referenzimplementierung eine App Service-Umgebung in einem virtuellen Netzwerk bereitgestellt wird (als interne ASE bezeichnet), sind alle in der ASE bereitgestellten Anwendungen grundsätzlich netzwerkisoliert, also auf den Geltungsbereich des virtuellen Netzwerks beschränkt.
  • Speichern Sie Anwendungsgeheimnisse (Anmeldeinformationen für Datenbanken, API-Token und private Schlüssel) in Azure Key Vault. Konfigurieren Sie Ihre App Service-App für den sicheren Zugriff mit einer verwalteten Identität. Ermitteln Sie, wann Azure Key Vault bzw. Azure App Configuration verwendet werden sollte.

Kostenoptimierung

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

  • Auch wenn für eine ASEv3-Instanz keine Stempelgebühr anfällt, wird eine Gebühr erhoben, wenn innerhalb der ASEv3-Instanz keine App Service-Pläne konfiguriert sind. Diese Gebühr entspricht dem Satz für eine Windows I1v2-Instanz in der Region, in der die ASEv3-Instanz bereitgestellt wird.
  • Bei einer zonenredundanten Konfiguration wird das Gebührenmodell angepasst, um die zugrunde liegende Infrastruktur zu berücksichtigen, die in dieser Konfiguration bereitgestellt wird. Möglicherweise fallen Kosten gemäß ASEv3-Preisliste für zusätzliche Instanzen an.
  • Nutzen Sie für App Service-Pläne vom Typ „ASEv3“ (v2-App Service-Pläne (isoliert)) Azure-Reservierungen und den Azure-Sparplan für Compute mit einem Ein- oder Dreijahresvertrag, und erzielen Sie erhebliche Einsparungen im Vergleich zu nutzungsbasierter Bezahlung. Weitere Informationen finden Sie unter Anwenden von Reservierungsrabatten auf isolierte V2-Instanzen.

Optimaler Betrieb

Die Säule „Optimaler Betrieb“ deckt die Betriebsprozesse ab, die für die Bereitstellung einer Anwendung und deren Ausführung in der Produktion sorgen. Weitere Informationen finden Sie unter Übersicht über die Säule „Optimaler Betrieb“.

  • Verwenden Sie Application Insights oder eine andere Lösung zum Verwalten der Anwendungsleistung, um Ihre Anwendung zu überwachen und zu ermitteln, wie sie sich in verschiedenen Umgebungen verhält.
    • Es gibt zwei Möglichkeiten zum Aktivieren von Application Insights. Erfassen Sie für verschiedene Umgebungen Telemetriedaten in unterschiedlichen Application Insights-Instanzen.
    • Wenn Ihre Anwendung mehrere Komponenten umfasst, die auf verschiedene Dienste verteilt sind, möchten Sie deren Verhalten vielleicht gemeinsam untersuchen. Erfassen Sie die zugehörigen Telemetriedaten in derselben Application Insights-Instanz, aber kennzeichnen Sie sie mit unterschiedlichen Cloudrollennamen.
    • Exportieren Sie die Application Insights-Daten in einen Azure Log Analytics-Arbeitsbereich. Wir empfehlen Ihnen, einen einzigen Arbeitsbereich für die Organisation zu verwenden.
    • Beziehen Sie operative Dashboards in den Entwurf von Anwendungen und Features ein, um sicherzustellen, dass die Lösung in der Produktion unterstützt werden kann.
    • Implementieren Sie Integritätsprüfungen für Ihre Endpunkte, und verwenden Sie diese dann für Integritätstests, Abhängigkeitsüberprüfungen und Verfügbarkeitstests.
  • Erwägen Sie die Verwendung von Präfixen und Suffixen mit klar definierten Konventionen, um jede bereitgestellte Ressource eindeutig zu identifizieren. Diese Namenskonventionen vermeiden Konflikte, wenn Lösungen parallel bereitgestellt werden, und verbessern insgesamt die Agilität und den Durchsatz des Teams.
  • Je nach Netzwerkkonfiguration ist App Service möglicherweise nicht über das öffentliche Internet erreichbar, und die Verwendung von öffentlich gehosteten Agents ist für Bereitstellungen nicht möglich. Verwenden Sie in diesem Szenario selbstgehostete Agents.

Bereitstellen dieses Szenarios

Für den Einstieg und zum besseren Verständnis der Besonderheiten dieser Implementierung sollten Sie sich die in der Referenzimplementierung enthaltenen Ressourcen ansehen, siehe Benutzerleitfaden zum Bereitstellen der Referenzimplementierung.

  • Wir empfehlen Ihnen, dieses Repository zu klonen und die Ressourcen für die Referenzimplementierung so zu ändern, dass sie Ihren Anforderungen und den organisationsspezifischen Richtlinien für die Zielzone entsprechen.
  • Vergewissern Sie sich vor der Bereitstellung, dass der für die Lösungsbereitstellung verwendete Dienstprinzipal über die erforderlichen Berechtigungen zum Erstellen der oben aufgeführten Ressourcentypen verfügt.
  • Überlegen Sie, welchen CI/CD-Dienst Sie für die Bereitstellung der Referenzimplementierung verwenden möchten. Da es sich bei dieser Referenzimplementierung um eine interne ASE handelt, benötigen Sie einen selbstgehosteten Agent zum Ausführen der Bereitstellungspipeline. Sie können entweder einen DevOps-Agent oder einen GitHub-Runner verwenden. Informieren Sie sich im Benutzerleitfaden darüber, welche spezifischen Konfigurationswerte benötigt werden.
  • Überlegen Sie, in welchen Regionen Sie diese Referenzimplementierung bereitstellen möchten. Überprüfen Sie anhand der Liste der ASEv3-Regionen, ob eine Bereitstellung in den ausgewählten Regionen möglich ist.

Beitragende

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

Hauptautoren:

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

Nächste Schritte

Erfahren Sie mehr über diese wichtigen Dienste: