Freigeben über


Perspektive von Azure Well-Architected Framework zu Azure-App Service (Web-Apps)

Azure-App Service ist eine Plattform als Dienst(PaaS)-Computelösung, mit der Sie Ihre Workload auf der Azure-Plattform hosten können. Es ist ein vollständig verwalteter Dienst, der die zugrunde liegende Berechnung abstrahiert und die Verantwortung für das Erstellen, Bereitstellen und Skalieren auf die Plattform auslädt. Ein App Service wird immer in einem App Service-Plan ausgeführt. Der von Ihnen ausgewählte Serviceplan bestimmt die Region, in der die Workload ausgeführt wird, die Computekonfigurationen und das Betriebssystem. Für App Service sind mehrere Abrechnungsmodelle verfügbar.

In diesem Artikel wird davon ausgegangen, dass Sie als Architekt die Berechnungsentscheidungsstruktur überprüft und App Service als Berechnung für Ihre Workload ausgewählt haben. Die Anleitung in diesem Artikel enthält Architekturempfehlungen, die den Prinzipien der Säulen des Azure Well-Architected Framework zugeordnet sind.

Wichtig

So verwenden Sie dieses Handbuch

Jeder Abschnitt verfügt über eine Entwurfsprüfliste , die architektonische Themenbereiche zusammen mit Designstrategien darstellt, die auf den Technologiebereich lokalisiert sind.

Außerdem sind Empfehlungen zu den Technologiefunktionen enthalten, die bei der Materialisierung dieser Strategien helfen können. Die Empfehlungen stellen keine vollständige Liste aller Konfigurationen dar, die für das Web-Apps Feature von Azure-App Service und deren Abhängigkeiten verfügbar sind. Stattdessen werden die wichtigsten Empfehlungen aufgelistet, die den Entwurfsperspektiven zugeordnet sind. Verwenden Sie die Empfehlungen, um Ihre Machbarkeitsstudie zu erstellen oder Ihre vorhandenen Umgebungen zu optimieren.

Grundlegende Architektur, die die wichtigsten Empfehlungen veranschaulicht: Die Basisarchitektur des App-Diensts.

Technologieumfang

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

  • App Service-Pläne
  • Web-Apps

Andere Azure-Angebote sind app Service zugeordnet, z. B. Azure Functions, Azure Logic Apps und App Service-Umgebung. Diese Angebote sind für diesen Artikel außerhalb des Umfangs. App Service-Umgebung wird gelegentlich referenziert, um Features oder Optionen der wichtigsten App Service-Angebote zu verdeutlichen.

Zuverlässigkeit

Der Zweck der Zuverlässigkeitssäule besteht darin, fortlaufende Funktionen bereitzustellen, indem genügend Resilienz und die Fähigkeit zur schnellen Wiederherstellung von Fehlern erstellt werden.

Die Zuverlässigkeitsdesignprinzipien bieten eine allgemeine Designstrategie, die für einzelne Komponenten, Systemflüsse und das gesamte System angewendet wird.

Prüfliste für den Entwurf

Starten Sie Ihre Designstrategie basierend auf der Prüfliste für die Designüberprüfung für Zuverlässigkeit. Bestimmen Sie ihre Relevanz für Ihre Geschäftlichen Anforderungen, und berücksichtigen Sie dabei die Ebenen und Features von App Service und deren Abhängigkeiten. Erweitern Sie die Strategie, um bei Bedarf weitere Ansätze einzuschließen.

  • Priorisieren von Benutzerflüssen: Nicht alle Flüsse sind gleichermaßen kritisch. Weisen Sie jedem Fluss Prioritäten zu, um Ihre Entwurfsentscheidungen zu leiten. Der Benutzerflussentwurf kann beeinflussen, welche Dienstebenen und Anzahl von Instanzen Sie für einen App Service-Plan und eine Konfiguration auswählen.

    Ihre Anwendung kann beispielsweise Front-End- und Back-End-Ebenen enthalten, die über einen Nachrichtenbroker kommunizieren. Sie können die Ebenen in mehreren Web-Apps segmentieren, um eine unabhängige Skalierung, Lebenszyklusverwaltung und Standard Zuteilung zu ermöglichen. Das Platzieren einer großen Anwendung in einem einzigen Plan kann zu Arbeitsspeicher- oder CPU-Problemen führen und die Zuverlässigkeit beeinträchtigen.

    Möglicherweise benötigen Sie mehr Instanzen auf dem Front-End, um eine optimale Leistung auf der Ui-Seite zu erzielen. Das Back-End erfordert jedoch möglicherweise nicht dieselbe Anzahl von Instanzen.

  • Potenzielle Fehler antizipieren: Planen Sie Strategien zur Risikominderung für potenzielle Fehler. Die folgende Tabelle enthält Beispiele für fehlermodusanalyse.

    Fehler Abmilderung
    Fehler der zugrunde liegenden oder abstrahierten App-Dienstkomponenten Verfügen Sie über Komponentenredundanz in Instanzen und Abhängigkeiten. Überwachen der Integrität von Instanzen, Netzwerkleistung und Speicherleistung.
    Fehler externer Abhängigkeiten Verwenden Sie Entwurfsmuster wie das Wiederholungsmuster und das Schaltkreistrennmuster. Überwachen Sie die externen Abhängigkeiten, und legen Sie entsprechende Timeouts fest.
    Fehler aufgrund des Datenverkehrs, der an fehlerhafte Instanzen weitergeleitet wird Überwachen der Instanzintegrität. Erwägen Sie Reaktionsfähigkeit, und vermeiden Sie das Senden von Anforderungen an fehlerhafte Instanzen.

    Weitere Informationen finden Sie unter Fehlermodusanalyse für Azure-Anwendungen.

  • Erstellen sie Redundanz: Erstellen Sie Redundanz in der Anwendung und unterstützen Sie die Infrastruktur. Verteilen Sie Instanzen über Verfügbarkeitszonen hinweg, um die Fehlertoleranz zu verbessern. Der Datenverkehr wird an andere Zonen weitergeleitet, wenn eine Zone fehlschlägt. Stellen Sie Ihre Anwendung in mehreren Regionen bereit, um sicherzustellen, dass Ihre App wieder Standard verfügbar ist, auch wenn eine gesamte Region einen Ausfall erlebt.

    Erstellen Sie ähnliche Redundanzstufen in abhängigen Diensten. Anwendungsinstanzen binden beispielsweise an blob-Speicher. Erwägen Sie, das zugeordnete Speicherkonto mit zonenredundanten Speicher (ZRS) zu konfigurieren, wenn eine Anwendung eine zonenredundante Bereitstellung verwendet.

    Redundanz in Netzwerkkomponenten. Verwenden Sie beispielsweise zonenredundante IP-Adressen und Lastenausgleichsgeräte.

  • Haben Sie eine zuverlässige Skalierungsstrategie: Unerwartete Auslastung einer Anwendung kann sie unzuverlässig machen. Berücksichtigen Sie den richtigen Skalierungsansatz basierend auf Ihren Workloadmerkmalen. Manchmal können Sie eine Skalierung durchführen, um die Last zu verarbeiten. Wenn die Last jedoch weiterhin zunimmt, skalieren Sie auf neue Instanzen. Bevorzugen Sie die automatische Skalierung gegenüber manuellen Ansätzen. Behalten Sie während der Skalierungsvorgänge immer Standard einen Puffer mit zusätzlicher Kapazität bei, um Leistungsbeeinträchtigungen zu verhindern.

    Die von Ihnen ausgewählte App Service-Planebene wirkt sich auf die Skalierung in Bezug auf die Anzahl der Instanzen und die Computeeinheiten aus.

    Stellen Sie die richtige App-Initialisierung sicher, damit neue Instanzen schnell aufwärmen und Anforderungen empfangen können.

    Streben Sie nach zustandslosen Anwendungen an, wenn möglich. Der Zuverlässige Skalierungszustand mit neuen Instanzen kann die Komplexität erhöhen. Erwägen Sie einen externen Datenspeicher, den Sie unabhängig skalieren können, wenn Sie den Anwendungsstatus speichern müssen. Das Speichern des Sitzungszustands im Arbeitsspeicher kann zu einem Verlust des Sitzungszustands führen, wenn ein Problem mit der Anwendung oder mit App Service auftritt. Es beschränkt auch die Möglichkeit, die Last über andere Instanzen hinweg zu verbreiten.

    Testen Sie regelmäßig Ihre Regeln für die automatische Skalierung. Simulieren Sie Ladeszenarien, um sicherzustellen, dass Ihre App erwartungsgemäß skaliert wird. Sie sollten Skalierungsereignisse protokollieren, damit Sie Probleme beheben können, die auftreten und Ihre Skalierungsstrategie im Laufe der Zeit optimieren können.

    Der App-Dienst hat eine Einschränkung der Anzahl von Instanzen innerhalb eines Plans, was sich auf die Skalierungssicherheit auswirken kann. Eine Strategie besteht darin, identische Bereitstellungsstempel zu verwenden, wobei jede ausgeführte App Service-Planinstanz mit einem eigenen Endpunkt ausgeführt wird. Es ist wichtig, dass Sie alle Stempel mit einem externen Lastenausgleich versehen, um datenverkehrsübergreifend zu verteilen. Verwenden Sie Azure-App lizenzierungsgateway für Bereitstellungen in einer Zone und Azure Front Door für multiregionale Bereitstellungen. Dieser Ansatz eignet sich ideal für unternehmenskritische Anwendungen, bei denen Zuverlässigkeit von entscheidender Bedeutung ist. Weitere Informationen finden Sie unter "Mission-critical baseline with App Service".

    Ein App Service-Plan verteilt Datenverkehr über Instanzen hinweg und überwacht deren Integrität. Beachten Sie, dass das externe Lastenausgleichsmodul möglicherweise nicht sofort erkennt, ob eine Instanz fehlschlägt.

  • Planen Sie Ihre Wiederherstellbarkeit: Redundanz ist für die Geschäftskontinuität von entscheidender Bedeutung. Führen Sie einen Failover zu einer anderen Instanz durch, wenn eine Instanz nicht erreichbar ist. Erkunden Sie die Funktionen für die automatische Heilung in App Service, z. B. die automatische Reparatur von Instanzen.

    Implementieren Sie Entwurfsmuster, um sowohl vorübergehende Beeinträchtigungen als auch Netzwerkkonnektivitätsprobleme und groß angelegte Ereignisse wie regionale Ausfälle zu behandeln. Berücksichtigen Sie die folgenden Entwurfsmuster:

    • Das Bulkhead-Muster segmentiert Ihre Anwendung in isolierte Gruppen, um zu verhindern, dass sich ein Fehler auf das gesamte System auswirkt.

    • Die Warteschlangenbasierte Lastenausgleichsmusterwarteschlangen funktionieren Elemente, die als Puffer dienen, um Datenverkehrsspitzen zu glätten.

    • Das Wiederholungsmuster behandelt vorübergehende Fehler aufgrund von Netzwerkstörungen, verworfenen Datenbankverbindungen oder ausgelasteten Diensten.

    • Das Schaltkreisbrechermuster verhindert, dass eine Anwendung wiederholt versucht, einen Vorgang auszuführen, der wahrscheinlich fehlschlägt.

    Sie können WebJobs verwenden, um Hintergrundaufgaben in Ihrer Web-App auszuführen. Um diese Aufgaben zuverlässig auszuführen, stellen Sie sicher, dass die App, die Ihren Auftrag hostet, kontinuierlich auf einem Zeitplan oder basierend auf ereignisgesteuerten Triggern ausgeführt wird.

    Weitere Informationen finden Sie unter Zuverlässigkeitsmuster.

  • Durchführen von Zuverlässigkeitstests: Führen Sie Auslastungstests durch, um die Zuverlässigkeit und Leistung Ihrer Anwendung unter Last zu bewerten. Testpläne sollten Szenarien enthalten, die Ihre automatisierten Wiederherstellungsvorgänge überprüfen.

    Verwenden Sie fehlerinjektion, um absichtlich Fehler einzuführen und Ihre Selbstheilungs- und Selbsterhaltungsmechanismen zu überprüfen. Erkunden Sie die von Azure Chaos Studio bereitgestellte Fehlerbibliothek.

    Der App-Dienst erzwingt Ressourcenbeschränkungen für gehostete Apps. Der App Service-Plan bestimmt diese Grenzwerte. Stellen Sie sicher, dass Ihre Tests bestätigen, dass die App innerhalb dieser Ressourcengrenzwerte ausgeführt wird. Weitere Informationen finden Sie unter Grenzwerte für Azure-Abonnements, -Dienste und -Kontingente sowie allgemeine Beschränkungen.

  • Verwenden Sie Integritätssonden, um nicht reagierende Mitarbeiter zu identifizieren: Der App-Dienst verfügt über integrierte Funktionen, die regelmäßig einen bestimmten Pfad Ihrer Webanwendung anpingen. Nicht reagierende Instanzen werden aus dem Lastenausgleich entfernt und durch eine neue Instanz ersetzt.

Empfehlungen
Empfehlung Vorteil
(App Service-Plan) Wählen Sie die Premium-Ebene eines App Service-Plans für Produktionsworkloads aus.

Legen Sie die maximale und minimale Anzahl von Mitarbeitern entsprechend Ihrer Kapazitätsplanung fest. Weitere Informationen finden Sie in der Übersicht über den App Service-Plan.
Ein Premium App Service-Plan bietet erweiterte Skalierungsfeatures und stellt Redundanz bei Fehlern sicher.
(App Service-Plan) Aktivieren Sie Zonenredundanz.

Erwägen Sie die Bereitstellung von mehr als drei Instanzen, um die Fehlertoleranz zu verbessern.

Überprüfen Sie die regionale Unterstützung für Zonenredundanz, da nicht alle Regionen dieses Feature bieten.
Ihre Anwendung kann Fehlern in einer einzelnen Zone standhalten, wenn mehrere Instanzen über Zonen verteilt sind. Der Datenverkehr verschiebt sich automatisch auf fehlerfreie Instanzen in anderen Zonen und Standard die Anwendungszuverlässigkeit, wenn eine Zone nicht verfügbar ist.
(App-Dienst) Erwägen Sie, das Affinitätsfeature für anwendungsanforderungsrouting (ARR) zu deaktivieren. ARR-Affinität erstellt Kurzsitzungen, die Benutzer an den Knoten weiterleiten, der ihre vorherigen Anforderungen verarbeitet hat. Eingehende Anforderungen werden gleichmäßig über alle verfügbaren Knoten verteilt, wenn Sie die ARR-Affinität deaktivieren. Gleichmäßig verteilte Anforderungen verhindern, dass Datenverkehr jeden einzelnen Knoten überwältigen kann. Anforderungen können nahtlos an andere fehlerfreie Knoten umgeleitet werden, wenn ein Knoten nicht verfügbar ist.

Vermeiden Sie Sitzungsaffinität, um sicherzustellen, dass Ihre App Service-Instanz zustandslos ist Standard. Ein zustandsloser App-Dienst reduziert komplexität und gewährleistet ein einheitliches Verhalten über Knoten hinweg.

Entfernen Sie Haftsitzungen, damit App Service Instanzen hinzufügen oder entfernen kann, um horizontal zu skalieren.
(App-Dienst) Definieren Sie automatische Heilungsregeln basierend auf der Anforderungsanzahl, langsamen Anforderungen, Speicherbeschränkungen und anderen Indikatoren, die Teil Ihrer Leistungsbasis sind. Betrachten Sie diese Konfiguration als Teil Ihrer Skalierungsstrategie. Automatische Heilungsregeln helfen Ihrer Anwendung, sich automatisch von unerwarteten Problemen wiederherzustellen. Die konfigurierten Regeln lösen Heilungsaktionen aus, wenn Schwellenwerte verletzt werden.

Die automatische Heilung ermöglicht die automatische proaktive Standard tenance.
(App-Dienst) Aktivieren Sie das Feature "Integritätsprüfung" , und geben Sie einen Pfad an, der auf die Integritätsprüfungsanforderungen reagiert. Integritätsprüfungen können Probleme frühzeitig erkennen. Anschließend kann das System automatisch Korrekturmaßnahmen ergreifen, wenn eine Integritätsprüfungsanforderung fehlschlägt.

Der Lastenausgleich leitet Datenverkehr von fehlerhaften Instanzen weg, wodurch Benutzer zu fehlerfreien Knoten geleitet werden.

Sicherheit

Der Zweck der Säule "Sicherheit" besteht darin, vertraulichkeits-, Integritäts- und Verfügbarkeitsgarantien für die Arbeitsauslastung bereitzustellen.

Die Prinzipien des Sicherheitsdesigns stellen eine allgemeine Designstrategie für die Erreichung dieser Ziele bereit, indem Sie Ansätze auf das technische Design anwenden, um das Hosting auf App Service anzuwenden.

Prüfliste für den Entwurf

Starten Sie Ihre Designstrategie basierend auf der Prüfliste für die Designüberprüfung für Sicherheit und identifizieren Sie Sicherheitsrisiken und Kontrollen, um den Sicherheitsstatus zu verbessern. Erweitern Sie die Strategie, um bei Bedarf weitere Ansätze einzuschließen.

  • Überprüfen Sie die Sicherheitsgrundwerte: Um den Sicherheitsstatus Ihrer Anwendung zu verbessern, die in einem App Service-Plan gehostet wird, überprüfen Sie die Sicherheitsgrundwerte für App Service.

  • Verwenden Sie die neueste Laufzeit und Bibliotheken: Testen Sie Ihre Anwendungsbuilds gründlich, bevor Sie Updates durchführen, um Probleme frühzeitig abzufangen und einen reibungslosen Übergang zur neuen Version sicherzustellen. Der App-Dienst unterstützt die Sprachlaufzeit-Unterstützungsrichtlinie zum Aktualisieren vorhandener Stapel und die Einstellung von End-of-Support-Stapeln.

  • Erstellen Sie Segmentierung durch Isolationsgrenzen, um Sicherheitsverletzungen zu enthalten: Identitätssegmentierung anwenden. Implementieren Sie z. B. die rollenbasierte Zugriffssteuerung (RBAC), um bestimmte Berechtigungen basierend auf Rollen zuzuweisen. Befolgen Sie das Prinzip der geringsten Rechte, um die Zugriffsrechte nur auf das zu beschränken, was erforderlich ist. Erstellen Sie auch Segmentierung auf Netzwerkebene. Fügen Sie App Service-Apps in ein virtuelles Azure-Netzwerk ein, um Den Datenverkehr zu filtern, um Netzwerksicherheitsgruppen (Network Security Groups, NSGs) zu definieren.

    App Service-Pläne bieten die App Service-Umgebung Ebene, die ein hohes Maß an Isolation bietet. Mit App Service-Umgebung erhalten Sie dedizierte Compute- und Netzwerkfunktionen.

  • Wenden Sie Zugriffssteuerungen auf Identitäten an: Beschränken Sie sowohl den inneren Zugriff auf die Web-App als auch den nach außen gerichteten Zugriff von der Web-App auf andere Ressourcen. Diese Konfiguration wendet Zugriffskontrollen auf Identitäten an und trägt dazu bei, Standard den Gesamtsicherheitsstatus der Workload zu gewährleisten.

    Verwenden Sie die Microsoft Entra-ID für alle Authentifizierungs- und Autorisierungsanforderungen. Verwenden Sie integrierte Rollen, z. B. einen Webplanmitwirkenden, Websitemitwirkenden und einen generischen Mitwirkenden, Leser und Besitzer.

  • Steuern des Netzwerkdatenverkehrs zu und von der Anwendung: Stellen Sie Keine Anwendungsendpunkte für das öffentliche Internet zur Verfügung. Fügen Sie stattdessen einen privaten Endpunkt in der Web-App hinzu, die in einem dedizierten Subnetz platziert wird. Stellen Sie Ihre Anwendung mit einem Reverseproxy vor, der mit diesem privaten Endpunkt kommuniziert. Erwägen Sie die Verwendung des Anwendungsgateways oder azure Front Door zu diesem Zweck.

    Stellen Sie eine Webanwendungsfirewall (WAF) bereit, um vor häufigen Sicherheitsrisiken zu schützen. Sowohl das Anwendungsgateway als auch azure Front Door verfügen über integrierte WAF-Funktionen.

    Konfigurieren Sie die Reverseproxyregeln und Netzwerkeinstellungen entsprechend, um die gewünschte Sicherheits- und Kontrollstufe zu erreichen. Fügen Sie z. B. NSG-Regeln im subnetz des privaten Endpunkts hinzu, um nur Datenverkehr vom Reverseproxy zu akzeptieren.

    Der Datenverkehr von der Anwendung an andere PaaS-Dienste sollte über private Endpunkte erfolgen. Erwägen Sie, eine Firewallkomponente zu platzieren, um den Ausgang des Datenverkehrs in das öffentliche Internet einzuschränken. Beide Ansätze verhindern Datenexfiltration.

    Eine umfassende Ansicht finden Sie unter App Service-Netzwerkfeatures.

  • Verschlüsseln von Daten: Schützen von Daten während der Übertragung mit End-to-End Transport Layer Security (TLS). Verwenden Sie Ihre vom Kunden verwalteten Schlüssel für die vollständige Verschlüsselung ruhender Daten. Weitere Informationen finden Sie unter Verschlüsselung ruhender Schlüssel mithilfe von vom Kunden verwalteten Schlüsseln.

    Verwenden Sie keine Legacyprotokolle wie TLS 1.0 und 1.1. Der App-Dienst aktiviert standardmäßig 1.2. Weitere Informationen finden Sie in der Übersicht über App Service TLS.

    Alle Instanzen Ihres App-Diensts verfügen über einen Standardnamen Standard. Verwenden Sie eine benutzerdefinierte Do Standard und sichern Sie dies mit Zertifikaten Standard.

  • Verringern Sie die Angriffsfläche: Entfernen Sie standardkonfigurationen, die Sie nicht benötigen. Deaktivieren Sie beispielsweise Das Remotedebugging, die lokale Authentifizierung für SCM-Websites (Source Control Manager) und die Standardauthentifizierung. Deaktivieren Sie unsichere Protokolle wie HTTP und File Transfer Protocol (FTP). Erzwingen von Konfigurationen über Azure-Richtlinien. Weitere Informationen finden Sie unter Azure-Richtlinien.

    Implementieren Sie restriktive CORS-Richtlinien (Cross-Origin Resource Sharing): Verwenden Sie restriktive CORS-Richtlinien in Ihrer Web-App, um anforderungen nur von den zulässigen Aufgaben Standard s, Headern und anderen Kriterien zu akzeptieren. Erzwingen Sie CORS-Richtlinien mit integrierten Azure-Richtliniendefinitionen.

  • Schützen sie geheime Anwendungsschlüssel: Sie müssen vertrauliche Informationen wie API-Schlüssel oder Authentifizierungstoken behandeln. Anstatt diese geheimen Schlüssel direkt in Ihren Anwendungscode oder Konfigurationsdateien zu codieren, können Sie Azure Key Vault-Verweise in den App-Einstellungen verwenden. Wenn die Anwendung gestartet wird, ruft App Service automatisch die geheimen Werte aus Key Vault mithilfe der verwalteten Identität der App ab.

  • Aktivieren Sie Ressourcenprotokolle für Ihre Anwendung: Aktivieren Sie Ressourcenprotokolle für Ihre Anwendung, um umfassende Aktivitätspfade zu erstellen, die wertvolle Daten während Untersuchungen bereitstellen, die Sicherheitsvorfällen folgen.

    Berücksichtigen Sie die Protokollierung als Teil Ihres Bedrohungsmodellierungsprozesses, wenn Sie Bedrohungen bewerten.

Empfehlungen
Empfehlung Vorteil
(App-Dienst) Weisen Sie der Web-App verwaltete Identitäten zu. Um Isolationsgrenzen zu Standard, geben Sie identitätsübergreifend keine Identitäten frei oder wieder.

Stellen Sie sicher, dass Sie sicher eine Verbindung mit Ihrer Containerregistrierung herstellen, wenn Sie Container für Ihre Bereitstellung verwenden.
Die Anwendung ruft geheime Schlüssel aus Key Vault ab, um die ausgehende Kommunikation von der Anwendung zu authentifizieren. Azure verwaltet die Identität und erfordert keine Bereitstellung oder Drehung geheimer Schlüssel.

Sie verfügen über unterschiedliche Identitäten für die Granularität der Kontrolle. Unterschiedliche Identitäten erleichtern die Sperrung, wenn eine Identität kompromittiert wird.
(App-Dienst) Konfigurieren sie benutzerdefinierte Do Standard s für Anwendungen.

Deaktivieren Sie HTTP, und akzeptieren Sie nur HTTPS-Anforderungen.
Benutzerdefinierte Do Standard s ermöglichen die sichere Kommunikation über HTTPS mithilfe des TLS-Protokolls (Transport Layer Security), das den Schutz vertraulicher Daten gewährleistet und die Benutzervertrauensstellung aufbaut.
(App Service) bewertet, ob die integrierte Authentifizierung des App-Diensts der richtige Mechanismus ist, um Benutzer zu authentifizieren, die auf Ihre Anwendung zugreifen. Integrierte App Service-Authentifizierung ist in Microsoft Entra ID integriert. Dieses Feature behandelt die Tokenüberprüfung und die Benutzeridentitätsverwaltung für mehrere Anmeldeanbieter und unterstützt OpenID-Verbinden. Mit diesem Feature haben Sie keine Autorisierung auf granularer Ebene, und Sie verfügen nicht über einen Mechanismus zum Testen der Authentifizierung. Wenn Sie dieses Feature verwenden, müssen Sie keine Authentifizierungsbibliotheken im Anwendungscode verwenden, was die Komplexität verringert. Der Benutzer wird bereits authentifiziert, wenn eine Anforderung die Anwendung erreicht.
(App-Dienst) Konfigurieren Sie die Anwendung für die Integration des virtuellen Netzwerks.

Verwenden Sie private Endpunkte für App Service-Apps. Blockieren sie den gesamten öffentlichen Datenverkehr.

Leiten Sie das Containerimage durch die Integration des virtuellen Netzwerks . Der gesamte ausgehende Datenverkehr der Anwendung durchläuft das virtuelle Netzwerk.
Nutzen Sie die Sicherheitsvorteile der Verwendung eines virtuellen Azure-Netzwerks. Beispielsweise kann die Anwendung sicher auf Ressourcen innerhalb des Netzwerks zugreifen.

Fügen Sie einen privaten Endpunkt hinzu, um Ihre Anwendung zu schützen. Private Endpunkte beschränken die direkte Gefährdung des öffentlichen Netzwerks und ermöglichen den kontrollierten Zugriff über den Reverseproxy.
(App-Dienst) So implementieren Sie die Härtung:
- Deaktivieren Sie die Standardauthentifizierung, die einen Benutzernamen und ein Kennwort verwendet, zugunsten der microsoft Entra ID-basierten Authentifizierung .
– Deaktivieren Sie das Remotedebugging, sodass eingehende Ports nicht geöffnet werden.
– Aktivieren Sie CORS-Richtlinien , um eingehende Anforderungen zu straffen.
- Deaktivieren Sie Protokolle, z. B . FTP.
Wir empfehlen die Standardauthentifizierung nicht als sichere Bereitstellungsmethode. Microsoft Entra ID verwendet die tokenbasierte OAuth 2.0-Authentifizierung, die zahlreiche Vorteile und Verbesserungen bietet, die den Einschränkungen entsprechen, die mit der Standardauthentifizierung verbunden sind.

Richtlinien beschränken den Zugriff auf Anwendungsressourcen, erlauben nur Anforderungen von bestimmten Aufgaben Standard und sicheren regionsübergreifenden Anforderungen.
(App-Dienst) Verwenden Sie Key Vault-Verweise immer als App-Einstellungen.
Geheime Schlüssel werden getrennt von der Konfiguration Ihrer App gespeichert. App-Einstellungen werden im Ruhezustand verschlüsselt. Der App-Dienst verwaltet auch geheime Drehungen.
(App Service-Plan) Aktivieren Sie Microsoft Defender für Cloud für App Service. Erhalten Sie Echtzeitschutz für Ressourcen, die in einem App Service-Plan ausgeführt werden. Schützen Sie sich vor Bedrohungen, und verbessern Sie Ihren gesamten Sicherheitsstatus.
(App Service-Plan) Aktivieren Sie die Diagnoseprotokollierung , und fügen Sie Ihrer App Instrumentierung hinzu. Die Protokolle werden an Azure Storage-Konten, Azure Event Hubs und Log Analytics gesendet. Weitere Informationen zu Überwachungsprotokolltypen finden Sie unter Unterstützte Protokolltypen. Die Protokollierung erfasst Zugriffsmuster. Es zeichnet relevante Ereignisse auf, die wertvolle Einblicke in die Interaktion von Benutzern mit einer Anwendung oder Plattform bieten. Diese Informationen sind für Verantwortlichkeits-, Compliance- und Sicherheitszwecke von entscheidender Bedeutung.

Kostenoptimierung

Die Kostenoptimierung konzentriert sich auf das Erkennen von Ausgabenmustern, das Priorisieren von Investitionen in kritische Bereiche und die Optimierung in anderen Bereichen, um das Budget der Organisation zu erfüllen, während die Geschäftsanforderungen erfüllt werden.

Die Designprinzipien für die Kostenoptimierung bieten eine allgemeine Designstrategie, um diese Ziele zu erreichen und bei Bedarf Kompromisse im technischen Design im Zusammenhang mit Ihren Web-Apps und der Umgebung zu treffen, in der sie ausgeführt werden.

Prüfliste für den Entwurf

Starten Sie Ihre Designstrategie basierend auf der Prüfliste für die Entwurfsüberprüfung für Investitionen und optimieren Sie den Entwurf so, dass die Arbeitsauslastung mit dem für die Workload zugewiesenen Budget übereinstimmt. Ihr Design sollte die richtigen Azure-Funktionen verwenden, Investitionen überwachen und Möglichkeiten zur Optimierung im Laufe der Zeit finden.

  • Schätzen Sie die Anfangskosten: Verwenden Sie als Teil Ihrer Kostenmodellierungsübung den Azure-Preisrechner , um die ungefähren Kosten zu bewerten, die verschiedenen Ebenen zugeordnet sind, basierend auf der Anzahl der Instanzen, die Sie ausführen möchten. Jede App-Dienstebene bietet unterschiedliche Berechnungsoptionen.

    Überwachen Sie das Kostenmodell kontinuierlich, um Ausgaben nachzuverfolgen.

  • Bewerten Sie die reduzierten Optionen: Höhere Ebenen umfassen dedizierte Computeinstanzen. Sie können einen Reservierungsrabatt anwenden, wenn Ihre Workload ein vorhersehbares und konsistentes Nutzungsmuster aufweist. Stellen Sie sicher, dass Sie Nutzungsdaten analysieren, um die Art der Reservierung zu bestimmen, die zu Ihrer Workload passt. Weitere Informationen finden Sie unter "Kosten sparen" mit reservierten Instanzen des App-Diensts.

  • Verstehen von Nutzungszählern: Azure berechnet basierend auf dem Preisniveau Ihres App Service-Plans einen stündlich anteiligen Zinssatz. Gebühren gelten für jede skalierte Instanz in Ihrem Plan, basierend auf dem Zeitpunkt, zu dem Sie die VM-Instanz zuweisen. Achten Sie auf unzureichende Berechnungsressourcen, die Ihre Kosten aufgrund der Überlastung aufgrund einer suboptimalen SKU-Auswahl oder einer schlecht konfigurierten Skalierungskonfiguration erhöhen können.

    Zusätzliche App Service-Features, z. B. benutzerdefinierte Do Standard Registrierung und benutzerdefinierte Zertifikate, können Kosten hinzufügen. Andere Ressourcen, z. B. virtuelle Netzwerke, um Ihre Lösung oder Schlüsseltresor zu isolieren, um Arbeitsauslastungsgeheimnisse zu schützen, die in Ihre App Service-Ressourcen integriert sind, können auch Kosten hinzufügen. Weitere Informationen finden Sie unter App Services-Abrechnungsmodell.

  • Berücksichtigen Sie die Kompromisse zwischen Dichte und Isolation: Sie können App Service-Pläne verwenden, um mehrere Anwendungen auf demselben Compute zu hosten, was Kosten für gemeinsam genutzte Umgebungen spart. Weitere Informationen finden Sie unter "Tradeoffs".

  • Bewerten Sie die Auswirkungen Ihrer Skalierungsstrategie auf Kosten: Sie müssen die Skalierung ordnungsgemäß entwerfen, testen und für die Skalierung konfigurieren, wenn Sie die automatische Skalierung implementieren. Legen Sie genaue Höchst- und Mindestgrenzwerte für die automatische Skalierung fest.

    Initialisieren Sie die Anwendung proaktiv für eine zuverlässige Skalierung. Warten Sie beispielsweise nicht, bis die CPU eine Auslastung von 95 % erreicht. Lösen Sie stattdessen die Skalierung um ca. 65 % aus, um genügend Zeit für die Zuordnung und Initialisierung neuer Instanzen während des Skalierungsprozesses zu ermöglichen. Diese Strategie kann jedoch zu nicht genutzter Kapazität führen.

    Es wird empfohlen, Mechanismen zum Skalieren und Skalieren zu kombinieren und auszugleichen. Eine App kann z. B. einige Zeit nach oben skaliert und dann nach Bedarf skaliert werden. Erkunden Sie hohe Ebenen, die große Kapazität und eine effiziente Ressourcennutzung bieten. Basierend auf Nutzungsmustern sind höhere Premium-Stufen oft kostengünstiger, da sie fähiger sind.

  • Optimieren von Umgebungskosten: Berücksichtigen Sie die Stufe "Einfach" oder "Frei", um Vorproduktionsumgebungen auszuführen. Diese Ebenen sind niedrige Leistung und niedrige Kosten. Wenn Sie die Stufe "Einfach" oder "Frei" verwenden, verwenden Sie Governance, um die Ebene zu erzwingen, die Anzahl der Instanzen und CPUs einzuschränken, die Skalierung einzuschränken und die Protokollaufbewahrung einzuschränken.

  • Implementieren Von Entwurfsmustern: Diese Strategie reduziert das Volumen der Anforderungen, die Ihre Workload generiert. Erwägen Sie die Verwendung von Mustern wie das Back-Ends-Muster für Frontends und das Gatewayaggregationsmuster, das die Anzahl der Anforderungen minimieren und Kosten reduzieren kann.

  • Regelmäßige Überprüfung der datenbezogenen Kosten: Längere Aufbewahrungszeiträume oder teure Speicherebenen können zu hohen Speicherkosten führen. Weitere Ausgaben können sich aufgrund der Bandbreitennutzung und der längeren Aufbewahrung von Protokollierungsdaten ansammeln.

    Erwägen Sie die Implementierung der Zwischenspeicherung, um die Kosten für die Datenübertragung zu minimieren. Beginnen Sie mit der lokalen Zwischenspeicherung im Arbeitsspeicher, und erkunden Sie dann verteilte Cacheoptionen, um die Anzahl der Anforderungen an die Back-End-Datenbank zu reduzieren. Berücksichtigen Sie die Bandbreitendatenverkehrskosten, die mit der regionsübergreifenden Kommunikation verbunden sind, wenn sich Ihre Datenbank in einer anderen Region befindet.

  • Optimieren Sie die Bereitstellungskosten: Nutzen Sie Bereitstellungsplätze, um Kosten zu optimieren. Der Slot wird in derselben Computeumgebung wie die Produktionsinstanz ausgeführt. Verwenden Sie sie strategisch für Szenarien wie blaugrüne Bereitstellungen, die zwischen Slots wechseln. Dieser Ansatz minimiert Ausfallzeiten und sorgt für reibungslose Übergänge.

    Verwenden Sie Bereitstellungsplätze mit Vorsicht. Sie können Probleme wie Ausnahmen oder Speicherverluste verursachen, die sich sowohl auf die vorhandenen Instanzen als auch auf neue Instanzen auswirken können. Stellen Sie sicher, dass Sie Änderungen gründlich testen. Operative Anleitungen finden Sie unter Operational Excellence.

Empfehlungen
Empfehlung Vorteil
(App Service-Plan) Wählen Sie "Frei" oder "Standard" für niedrigere Umgebungen aus. Wir empfehlen diese Stufen für die experimentelle Verwendung. Entfernen Sie die Ebenen, wenn Sie sie nicht mehr benötigen. Die Stufe "Free" und "Basic" sind budgetfreundlich im Vergleich zu höheren Ebenen. Sie bieten eine kostengünstige Lösung für Nichtproduktionsumgebungen, die nicht die vollständigen Features und die Leistung von Premium-Plänen benötigen.
(App Service-Plan) Nutzen Sie Rabatte und erkunden Sie die bevorzugten Preise für:
– Niedrigere Umgebungen mit Entwicklungs-/Testplänen.
- Azure reservations and Azure savings plans for dedicated compute that you provision in the Premium V3 tier and App Service-Umgebung.

Verwenden Sie reservierte Instanzen für stabile Workloads mit vorhersagbaren Verwendungsmustern.
Entwicklungs-/Testpläne bieten reduzierte Tarife für Azure-Dienste, wodurch sie für Nichtproduktionsumgebungen kosteneffizient sind.

Verwenden Sie reservierte Instanzen, um Computeressourcen zu bezahlen und erhebliche Rabatte zu erhalten.
(App-Dienst) Überwachen Sie die Kosten , die app Service-Ressourcen verursachen. Führen Sie das Kostenanalysetool im Azure-Portal aus.

Erstellen Sie Budgets und Warnungen , um Projektbeteiligte zu benachrichtigen.
Sie können Kostenspitzen, Ineffizienzen oder unerwartete Ausgaben frühzeitig identifizieren. Dieser proaktive Ansatz hilft Ihnen bei der Bereitstellung von Haushaltskontrollen, um überstehende Überschreitungen zu verhindern.
(App Service-Plan) Skalieren, wenn die Nachfrage sinkt. Zum Skalieren definieren Sie Skalierungsregeln, um die Anzahl der Instanzen in Azure Monitor zu verringern. Vermeiden Sie Verschwendung und reduzieren Sie unnötige Ausgaben.

Optimaler Betrieb

Operational Excellence konzentriert sich in erster Linie auf Verfahren für Entwicklungspraktiken, Observability und Release Management.

Die Designprinzipien der Operational Excellence stellen eine allgemeine Designstrategie für die Erreichung dieser Ziele für die betrieblichen Anforderungen der Arbeitsauslastung bereit.

Prüfliste für den Entwurf

Starten Sie Ihre Designstrategie basierend auf der Prüfliste für die Designüberprüfung für Operational Excellence, um Prozesse für Observability, Tests und Bereitstellungen im Zusammenhang mit Web-Apps zu definieren.

  • Verwalten von Versionen: Verwenden Sie Bereitstellungsplätze, um Versionen effektiv zu verwalten. Sie können Ihre Anwendung an einem Steckplatz bereitstellen, Tests durchführen und deren Funktionalität überprüfen. Nach der Überprüfung können Sie die App nahtlos in die Produktion verschieben. Dieser Vorgang verursacht keine zusätzlichen Kosten, da der Steckplatz in derselben VM-Umgebung wie die Produktionsinstanz ausgeführt wird.

  • Ausführen automatisierter Tests: Bevor Sie eine Veröffentlichung Ihrer Web-App bewerben, testen Sie ihre Leistung, Funktionalität und Integration in andere Komponenten gründlich. Verwenden Sie Azure Load Testing, das in Apache JMeter integriert ist, ein beliebtes Tool für Leistungstests. Erkunden Sie automatisierte Tools für andere Arten von Tests, z. B. Phantom für funktionsbezogene Tests.

  • Bereitstellen unveränderlicher Einheiten: Implementieren Des Bereitstellungsstempelmusters zum Aufteilen des App-Diensts in einen unveränderlichen Stempel. Der App-Dienst unterstützt die Verwendung von Containern, die inhärent unveränderlich sind. Berücksichtigen Sie benutzerdefinierte Container für Ihre App Service-Web-App.

    Jeder Stempel stellt eine eigenständige Einheit dar, in die Sie schnell skalieren oder skalieren können. Einheiten, die auf diesem Stempel basieren, sind temporär und zustandslos. Zustandsloses Design vereinfacht Vorgänge und Standard Tenance. Dieser Ansatz eignet sich ideal für unternehmenskritische Anwendungen. Ein Beispiel finden Sie unter "Mission-critical baseline with App Service".

    Verwenden Sie eine Infrastruktur als Codetechnologie (IaC), z. B. Bicep, um Einheiten mit Wiederholbarkeit und Konsistenz abzustempeln.

  • Schützen Sie Produktionsumgebungen: Erstellen Sie separate App Service-Pläne zum Ausführen von Produktions- und Vorproduktionsumgebungen. Nehmen Sie keine Änderungen direkt in der Produktionsumgebung vor, um Stabilität und Zuverlässigkeit zu gewährleisten. Separate Instanzen ermöglichen Flexibilität bei der Entwicklung und Tests, bevor Sie Änderungen an der Produktion fördern.

    Verwenden Sie niedrige Umgebungen, um neue Features und Konfigurationen isoliert zu erkunden. Halten Sie Entwicklungs- und Testumgebungen kurzlebig.

  • Verwalten von Zertifikaten: Für benutzerdefinierte Aufgaben Standard müssen Sie TLS-Zertifikate verwalten.

    Stellen Sie Prozesse bereit, um Zertifikate zu beschaffen, zu erneuern und zu validieren. Laden Sie diese Prozesse nach Möglichkeit in App Service aus. Wenn Sie Ihr eigenes Zertifikat verwenden, müssen Sie die Verlängerung verwalten. Wählen Sie einen Ansatz aus, der ihren Sicherheitsanforderungen am besten entspricht.

Empfehlung Vorteil
(App-Dienst) Überwachen Sie den Status Ihrer Instanzen , und aktivieren Sie Instanzintegritätssonden.

Richten Sie einen bestimmten Pfad für die Behandlung von Integritätssondenanforderungen ein.
Sie können Probleme zeitnah erkennen und erforderliche Maßnahmen ergreifen, um die Verfügbarkeit und Leistung zu Standard.
(App-Dienst) Aktivieren Sie Diagnose Protokolle für die Anwendung und die Instanz.

Die häufige Protokollierung kann die Leistung des Systems verlangsamen, zu Speicherkosten hinzufügen und Risiken einführen, wenn Sie unsicheren Zugriff auf Protokolle haben. Befolgen Sie die folgenden bewährten Methoden:
- Protokollieren Sie die richtige Informationsebene.
– Festlegen von Aufbewahrungsrichtlinien.
– Halten Sie einen Überwachungspfad für autorisierten Zugriff und nicht autorisierte Versuche.
- Behandeln Sie Protokolle als Daten, und wenden Sie Datenschutzsteuerelemente an.
Diagnoseprotokolle liefern wertvolle Einblicke in das Verhalten Ihrer App. Überwachen von Datenverkehrsmustern und Identifizieren von Anomalien.
(App-Dienst) Nutzen Sie verwaltete App Service-Zertifikate , um die Zertifizierungsverwaltung in Azure zu entladen. Der App-Dienst verarbeitet automatisch Prozesse wie Zertifikatbeschaffung, Zertifikatüberprüfung, Zertifikatverlängerung und Importieren von Zertifikaten aus Key Vault. Laden Sie alternativ Ihr Zertifikat in Key Vault hoch, und autorisieren Sie den App Service-Ressourcenanbieter für den Zugriff darauf.
(App Service-Plan) Überprüfen Sie Die App-Änderungen im Staging-Slot , bevor Sie sie mit dem Produktionsplatz austauschen. Vermeiden Sie Ausfallzeiten und Fehler.

Rückgängig machen Sie schnell zum letzten bekannten guten Zustand, wenn Sie nach einem Tausch ein Problem erkennen.

Effiziente Leistung

Die Leistungseffizienz geht es um Standard nachhaltige Benutzererfahrung auch dann, wenn die Auslastung durch die Verwaltung der Kapazität erhöht wird. Die Strategie umfasst die Skalierung von Ressourcen, das Identifizieren und Optimieren potenzieller Engpässe und die Optimierung der Spitzenleistung.

Die Designprinzipien für die Leistungseffizienz bieten eine allgemeine Entwurfsstrategie, um diese Kapazitätsziele gegen die erwartete Nutzung zu erreichen.

Prüfliste für den Entwurf

Starten Sie Ihre Designstrategie basierend auf der Prüfliste für die Entwurfsüberprüfung für die Leistungseffizienz, um einen Basisplan basierend auf den wichtigsten Leistungsindikatoren für Web-Apps zu definieren.

  • Identifizieren und überwachen Sie Leistungsindikatoren: Legen Sie Ziele für die Wichtigsten Indikatoren für die Anwendung fest, z. B. das Volumen eingehender Anforderungen, zeit, die die Anwendung benötigt, um auf Anforderungen, ausstehende Anforderungen und Fehler in HTTP-Antworten zu reagieren. Berücksichtigen Sie wichtige Indikatoren als Teil der Leistungsbasislinie für die Workload.

    Erfassen Sie App Service-Metriken, die die Grundlage von Leistungsindikatoren bilden. Sammeln Sie Protokolle, um Einblicke in die Ressourcennutzung und -aktivitäten zu erhalten. Verwenden Sie Tools zur Anwendungsleistungsüberwachung (Application Performance Monitoring, APM), z. B. Application Insights, um Leistungsdaten aus der Anwendung zu sammeln und zu analysieren. Weitere Informationen finden Sie unter App Service-Überwachungsdatenreferenz.

    Schließen Sie die Instrumentierung auf Codeebene, die Transaktionsablaufverfolgung und die Leistungsprofilerstellung ein.

  • Bewerten der Kapazität: Simulieren Sie verschiedene Benutzerszenarien, um die optimale Kapazität zu ermitteln, die Sie für den erwarteten Datenverkehr benötigen. Verwenden Sie Load Testing, um zu verstehen, wie sich Ihre Anwendung unter verschiedenen Ladeebenen verhält.

  • Wählen Sie die richtige Ebene aus: Verwenden Sie dedizierte Compute für Produktionsworkloads. Premium-Stufen bieten größere SKUs mit erhöhter Arbeitsspeicher- und CPU-Kapazität, mehr Instanzen und mehr Features, z. B. Zonenredundanz. Weitere Informationen finden Sie unter Premium V3-Preisniveau.

  • Optimieren Sie Ihre Skalierungsstrategie: Verwenden Sie nach Möglichkeit die automatische Skalierung , anstatt die Anzahl der Instanzen manuell anzupassen, wenn sich die Anwendungsladeänderungen ändern. Bei der automatischen Skalierung passt Der App-Dienst die Serverkapazität basierend auf vordefinierten Regeln oder Triggern an. Stellen Sie sicher, dass Sie angemessene Leistungstests durchführen und die richtigen Regeln für die richtigen Trigger festlegen.

    Wenn Sie die Einfachheit während der ersteinrichtung priorisieren, verwenden Sie eine Option für die automatische Skalierung, die nicht erfordert, dass Sie Regeln definieren müssen, und Sie müssen nur Grenzwerte festlegen.

    Verfügen Sie über ausreichende Ressourcen, um eine optimale Leistung sicherzustellen. Weisen Sie Ressourcen entsprechend Standard Leistungszielen zu, z. B. Antwortzeit oder Durchsatz. Berücksichtigen Sie bei Bedarf die Überlastung von Ressourcen.

    Wenn Sie Regeln für die automatische Skalierung definieren, müssen Sie die Zeit berücksichtigen, die für die Initialisierung der Anwendung benötigt wird. Berücksichtigen Sie diesen Aufwand, wenn Sie alle Skalierungsentscheidungen treffen.

  • Zwischenspeichern verwenden: Das Abrufen von Informationen aus einer Ressource, die sich nicht häufig ändert und für den Zugriff teuer ist, wirkt sich auf die Leistung aus. Komplexe Abfragen, einschließlich Verknüpfungen und mehrerer Nachschlagevorgänge, tragen zur Laufzeit bei. Führen Sie die Zwischenspeicherung durch, um die Verarbeitungszeit und Latenz zu minimieren. Zwischenspeichern von Abfrageergebnissen, um wiederholte Roundtrips zur Datenbank oder zum Back-End zu vermeiden und die Verarbeitungszeit für nachfolgende Anforderungen zu reduzieren.

    Weitere Informationen zur Verwendung des lokalen und verteilten Caches in der Workload finden Sie unter Caching.

  • Überprüfen Sie die Leistungs-Antipattern: Vermeiden Sie die typischen Antipattern, um sicherzustellen, dass die Webanwendung ihre Geschäftsanforderungen erfüllt und skaliert. Hier sind einige Antipattern, die der App-Dienst korrigiert.

    Antimuster Beschreibung
    Ausgelastetes Front-End Ressourcenintensive Aufgaben können die Antwortzeiten für Benutzeranforderungen erhöhen und zu langen Wartezeiten führen.
    Verschieben Sie Prozesse, die erhebliche Ressourcen beanspruchen, auf ein separates Back-End. Verwenden Sie einen Nachrichtenbroker, um ressourcenintensive Aufgaben in die Warteschlange zu stellen, die das Back-End asynchron verarbeitet.
    Keine Zwischenspeicherung Bereitstellen von Anforderungen aus einem Zwischencache vor der Back-End-Datenbank, um die Latenz zu reduzieren.
    Noisy Neighbor Bei mehrinstanzenfähigen Systemen werden Ressourcen von mehreren Mandanten gemeinsam verwendet. Die Aktivität eines Mandanten kann sich negativ auf die Nutzung des Systems eines anderen Mandanten auswirken. App Service-Umgebung bietet eine vollständig isolierte und dedizierte Umgebung zum Ausführen von App Service-Apps.
Empfehlungen
Empfehlung Vorteil
Aktivieren Sie die Einstellung "Immer ein", wenn Anwendungen einen einzelnen App Service-Plan freigeben. App Service-Apps werden automatisch entladen, wenn im Leerlauf Ressourcen gespeichert werden. Die nächste Anforderung löst einen Kaltstart aus, was zu Anforderungstimeouts führen kann. Die Anwendung wird nie entladen, wenn Always On aktiviert ist.
Erwägen Sie die Verwendung von HTTP/2 für Anwendungen, um die Protokolleffizienz zu verbessern. Wählen Sie HTTP/2 über HTTP/1.1 aus, da HTTP/2 vollständig Multiplexes-Verbindungen wiederverwendet, Verbindungen wiederverwendet, um den Aufwand zu reduzieren und Header zu komprimieren, um die Datenübertragung zu minimieren.

Kompromisse

Möglicherweise müssen Sie Design-Kompromisse machen, wenn Sie die Ansätze in den Pfeilerlisten verwenden. Hier sind einige Beispiele für Vor- und Nachteile.

Dichte und Isolierung

  • Höhere Dichte: Mehrere Apps innerhalb desselben App Service-Plans verlagern, um Ressourcen zu minimieren. Alle Apps teilen Ressourcen wie CPU und Arbeitsspeicher, was Geld sparen und die Betriebskomplexität reduzieren kann. Dieser Ansatz optimiert auch die Ressourcennutzung. Apps können Leerlaufressourcen aus einer anderen App verwenden, wenn sich Lademuster im Laufe der Zeit ändern.

    Berücksichtigen Sie auch die Nachteile. So können sich beispielsweise Spitzen bei der Verwendung oder Instabilität einer App auf die Leistung anderer Apps auswirken. Vorfälle in einer App können auch in andere Apps innerhalb der freigegebenen Umgebung übertragen werden, was sich auf die Sicherheit auswirken kann.

  • Höhere Isolation: Isolation hilft, Störungen zu vermeiden. Diese Strategie gilt für Sicherheit, Leistung und sogar Trennung von Entwicklungs-, Test- und Produktionsumgebungen.

    App Service-Umgebung bietet eine bessere Kontrolle über Sicherheit und Datenschutz, da jede App über eigene Sicherheitseinstellungen verfügen kann. Ihre Umgebung kann Verstöße enthalten, da die Isolation den Strahlradius begrenzt. Die Ressourcenverknügung wird aus Leistungsgründen minimiert. Isolation ermöglicht eine unabhängige Skalierung basierend auf spezifischer Nachfrage und individueller Kapazitätsplanung.

    Als Nachteil ist dieser Ansatz teurer und erfordert betriebsbereiten Rigor.

Zuverlässige Skalierungsstrategie

Eine gut definierte Skalierungsstrategie stellt sicher, dass Ihre Anwendung verschiedene Lasten verarbeiten kann, ohne die Leistung zu beeinträchtigen. Es gibt jedoch Nachteile bei den Kosten. Skalierungsvorgänge nehmen Zeit in Anspruch. Wenn neue Ressourcen zugeordnet werden, muss die Anwendung ordnungsgemäß initialisiert werden, bevor sie Anforderungen effektiv verarbeiten kann. Sie können Ressourcen (Vorwarminstanzen) außer Kraft setzen, um ein Sicherheitsnetz bereitzustellen. Ohne diese zusätzliche Kapazität kann es während der Initialisierungsphase zu einer Verzögerung bei der Bereitstellung von Anforderungen kommen, was sich auf die Benutzererfahrung auswirkt. Automatische Skalierungsvorgänge werden möglicherweise früh genug ausgelöst, um die richtige Ressourceninitialisierung durch den Zeitpunkt zu ermöglichen, zu dem Kunden die Ressourcen verwenden.

Als Nachteil kosten überprovisionierte Ressourcen mehr. Jede Instanz wird Ihnen pro Sekunde in Rechnung gestellt, einschließlich vorgewärmter Instanzen. Höhere Ebenen umfassen vorwarnte Instanzen. Ermitteln Sie, ob die Funktionen mit teureren Stufen die Investition wert sind.

Erstellen von Redundanz

Redundanz bietet Resilienz, verursacht aber auch Kosten. Ziele auf Dienstebene für Ihre Workload bestimmen akzeptable Leistungsschwellenwerte. Es wird verschwendet, wenn Redundanz die SLO-Anforderungen überschreitet. Bewerten Sie, ob übermäßige Redundanz SLOs verbessert oder unnötige Komplexität hinzufügt.

Berücksichtigen Sie auch die Nachteile. Beispielsweise bietet Redundanz mit mehreren Regionen hohe Verfügbarkeit, fügt jedoch aufgrund von Datensynchronisierung, Failovermechanismen und kommunikation zwischen Regionen Komplexität und Kosten hinzu. Ermitteln Sie, ob Zonenredundanz Ihren SLOs entsprechen kann.

Azure-Richtlinien

Azure bietet einen umfassenden Satz integrierter Richtlinien im Zusammenhang mit App Service und seinen Abhängigkeiten. Eine Reihe von Azure-Richtlinien kann einige der vorherigen Empfehlungen überwachen. Sie können beispielsweise überprüfen, ob:

  • Richtige Netzwerksteuerelemente sind vorhanden. Sie können z. B. die Netzwerksegmentierung integrieren, indem Sie App Service in Azure Virtual Network über eine virtuelle Netzwerkeinfügung platzieren, um eine bessere Kontrolle über die Netzwerkkonfiguration zu haben. Die Anwendung verfügt nicht über öffentliche Endpunkte und stellt über private Endpunkte eine Verbindung mit Azure-Diensten bereit.

  • Identitätssteuerelemente sind vorhanden. Die Anwendung verwendet z. B. verwaltete Identitäten, um sich bei anderen Ressourcen zu authentifizieren. Die integrierte App-Authentifizierung (Easy Auth) überprüft eingehende Anforderungen.

  • Features wie Remotedebugging und Standardauthentifizierung sind deaktiviert, um die Angriffsfläche zu reduzieren.

Überprüfen Sie für eine umfassende Governance die integrierten Azure-Richtliniendefinitionen und andere Richtlinien, die sich auf die Sicherheit der Computeebene auswirken können.

Azure Advisor-Empfehlungen

Bei Azure Advisor handelt es sich um einen personalisierten Cloudberater, der Sie mit bewährten Methoden zum Optimieren von Azure-Bereitstellungen unterstützt. Hier sind einige Empfehlungen, die Ihnen helfen können, die Zuverlässigkeit, Sicherheit, Kosteneffizienz, Leistung und operative Exzellenz Ihrer Webanwendungsinstanzen zu verbessern.

Nächste Schritte

Betrachten Sie die folgenden Artikel als Ressourcen, die die in diesem Artikel hervorgehobenen Empfehlungen veranschaulichen.