WordPress auf Azure Kubernetes Service

Azure Managed Redis
Azure Front Door
Azure Kubernetes Service (AKS)
Azure-Lastenausgleich
Azure NetApp Files

In diesem Artikel wird eine containerbasierte Architektur zum Hosten einer großen, speicherintensiven WordPress-Installation auf Azure beschrieben. Wichtige Komponenten sind Azure Front Door, Azure Kubernetes Service (AKS) und Azure NetApp Files.

Aufbau

Architecture-Diagramm einer AKS WordPress-Bereitstellung. Azure NetApp Files speichert statische Inhalte. Private Endpunkte bieten Zugriff auf andere Dienste.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Hinweis

Sie können diese Lösung erweitern, indem Sie Empfehlungen implementieren, die für jede WordPress-Hostingmethode gelten. Allgemeine Anleitungen zur WordPress-Bereitstellung finden Sie unter WordPress auf Azure.

Datenfluss

Der folgende Datenfluss entspricht dem vorherigen Diagramm:

  1. Benutzer greifen über Azure Front Door mit aktivierter Azure Web Application Firewall auf die Front-End-Website zu.

  2. Azure Front Door Premium stellt eine Verbindung mit dem internen AKS-Lastenausgleichsursprung über einen Azure Private Link-Dienst bereit, der den internen Lastenausgleich verfügbar macht. Der interne Lastenausgleich ist eine Komponente von AKS. Azure Front Door ruft Daten ab, die nicht zwischengespeichert wurden.

  3. Der interne Load Balancer verteilt den Ingress-Datenverkehr an einen Ingress-Controller innerhalb von AKS. Sie können den verwalteten NGINX-Eingangscontroller mit dem Anwendungsrouting-Add-On oder dem Anwendungsgateway für Container als Eingangscontroller verwenden.

  4. Azure Key Vault speichert geheime Schlüssel wie Datenbankkennwörter und TLS-Zertifikate (Transport Layer Security), einschließlich ihrer privaten Schlüssel.

  5. Die WordPress-Anwendung verwendet einen privaten Endpunkt, um auf eine Azure Database for MySQL flexible Serverinstanz zuzugreifen. Die WordPress-Anwendung ruft dynamische Informationen aus diesem verwalteten Datendienst ab.

  6. Alle statischen Inhalte werden in Azure NetApp Files gehostet. Die Lösung verwendet den Trident Container Storage Interface (CSI)-Treiber mit dem NFS-Protokoll (Network File System).

Komponenten

  • AKS ist ein verwalteter Kubernetes-Dienst zum Bereitstellen, Verwalten und Skalieren von containerisierten Anwendungen. In dieser Architektur hosten AKS die WordPress-Container und bietet die Orchestrierungsplattform für hohe Verfügbarkeit und Skalierbarkeit.

  • Azure Managed Redis ist ein verwalteter Speicher- und Cachedienst. In dieser Architektur teilen alle Pods einen Azure verwalteten Redis-Cache. WordPress-Leistungsoptimierungs-Plug-Ins verwenden diesen Cache, um Die Reaktionszeiten zu reduzieren.

  • Azure Database for MySQL flexible Server ist ein verwalteter relationaler Datenbankdienst, der auf dem Open-Source-MySQL-Datenbankmodul basiert. In dieser Architektur speichert diese Datenbank WordPress-Daten.

  • Azure DDoS Protection ist ein Netzwerksicherheitsdienst, der erweiterte verteilte DDoS-Entschärfungsfeatures bereitstellt. DDoS Protection hat zwei Ebenen: DDoS Network Protection und DDoS IP Protection. In dieser Architektur schützt der DDoS-Schutz vor DDoS-Angriffen, wenn Sie sie mit bewährten Methoden für den Anwendungsentwurf kombinieren und im Umkreisnetzwerk aktivieren.

  • Azure Front Door ist ein Netzwerk zur Bereitstellung von Cloudinhalten und ein globaler Lastenausgleich. Für diese Architektur ist die Azure Front Door Premium-Stufe erforderlich, da Azure Private Link zum Herstellen einer Verbindung mit dem Ursprung über einen Private Link-Dienst verwendet wird, der das interne Lastenausgleichsmodul verfügbar macht. In dieser Architektur ist Azure Front Door der öffentliche Einstiegspunkt in die WordPress-Bereitstellung.

  • Azure NetApp Files ist eine verwaltete, leistungsintensive und latenzempfindliche Speicherlösung. In dieser Architektur hostet Azure NetApp Files den WordPress-Inhalt, sodass alle Pods über einen leistungsstarken Dateispeicher auf die freigegebenen Daten zugreifen können.

  • Azure Virtual Network ist ein Netzwerkdienst, der bereitgestellte Ressourcen miteinander, das Internet und lokale Netzwerke verbindet. In dieser Architektur bieten virtuelle Netzwerke Isolation und Segmentierung.

  • Key Vault ist ein Clouddienst, der den Zugriff auf geheime Schlüssel, Zertifikate, Schlüssel und Kennwörter speichert und steuert. In dieser Architektur speichert Key Vault geheime Schlüssel wie Datenbankanmeldeinformationen und TLS-Zertifikate, die pods zur Laufzeit abrufen.

  • Azure Load Balancer ist ein Layer-4-Load-Balancer, der eingehenden Datenverkehr basierend auf Regeln und Ergebnissen der Integritätsprüfungen verteilt. In dieser Architektur befindet sich ein interner Lastenausgleich hinter einem Private Link Service, der es Azure Front Door Premium ermöglicht, den Ursprung privat zu erreichen. Der interne Lastverteiler verteilt dann den Datenverkehr an die Ingress-Controller-Pods.

  • Azure Container Registry ist ein Registrierungsdienst für verwaltete Containerimages. In dieser Architektur speichert Container Registry die WordPress-Containerimages und stellt sie über einen privaten Endpunkt für den AKS-Cluster zur Verfügung.

  • Netzwerksicherheitsgruppen (NSGs) sind Sicherheitsfunktionen, die Sicherheitsregeln verwenden, um eingehenden oder ausgehenden Netzwerkdatenverkehr basierend auf der Quell- oder Ziel-IP-Adresse, dem Port und dem Protokoll zuzulassen oder zu verweigern. In dieser Architektur schränken NSG-Regeln den Datenverkehrsfluss zwischen den Anwendungskomponenten in den Subnetzen ein.

Alternativen

  • Nutzen Sie einen eigenständig gehosteten Redis-Pod im AKS-Cluster als Cache anstelle des verwalteten Azure Redis-Dienstes.

  • Verwenden Sie eine selbst gehostete Lösung wie Rook-Ceph Storage anstelle einer verwalteten Speicherlösung wie Azure NetApp Files. Eine selbst gehostete Speicherlösung erhöht die Betriebskomplexität und erfordert, dass Ihr Team die Speicherschicht direkt verwalten kann. Bewerten Sie, ob der Betriebsaufwand für Ihre Organisation akzeptabel ist, bevor Sie diesen Ansatz auswählen.

  • Verwenden Sie Azure Container Apps, um containerisierte WordPress-Workloads anstelle von AKS zu hosten. Container-Apps ist ein verwalteter serverloser Containerdienst, der für einfachere oder kleinere Szenarien geeignet ist. Verwenden Sie für große, speicherintensive und hochgradig anpassbare Bereitstellungen AKS.

Szenario-Details

Dieses Beispielszenario eignet sich am besten für große, speicherintensive Installationen von WordPress. Dieses Bereitstellungsmodell wird skaliert, um auf Verkehrsspitzen auf der Website zu reagieren.

Mögliche Anwendungsfälle

  • Blogs mit hohem Datenverkehrsaufkommen, die WordPress als Content-Management-System nutzen
  • Unternehmens- oder E-Commerce-Websites, die WordPress verwenden

Überlegungen

Diese Überlegungen implementieren die Säulen des Azure Well-Architected-Frameworks, die eine Reihe von Leitsätzen sind, die Sie verwenden können, um die Qualität einer Arbeitsauslastung zu verbessern. Weitere Informationen finden Sie unter Well-Architected Framework.

Zuverlässigkeit

Zuverlässigkeit trägt dazu bei, dass Ihre Anwendung die Verpflichtungen erfüllen kann, die Sie für Ihre Kunden vornehmen. Weitere Informationen finden Sie unter Prüfliste zur Entwurfsüberprüfung für Zuverlässigkeit.

Berücksichtigen Sie die folgenden Empfehlungen, wenn Sie diese Lösung bereitstellen:

  • Verwenden Sie Pods in AKS und einen Load Balancer, um eingehenden Traffic zu verteilen. Dieser Ansatz bietet hohe Verfügbarkeit, auch wenn ein Pod-Fehler auftritt.

  • Platzieren Sie alle Netzwerkkomponenten hinter Azure Front Door. Dieser Ansatz bietet Resilienz gegen Probleme, die den Datenverkehr stören und den Benutzerzugriff beeinträchtigen können.

  • Aktivieren sie die Zwischenspeicherung in Azure Front Door. Wenn der Ursprung nicht verfügbar ist, kann Azure Front Door weiterhin zwischengespeicherte Inhalte bereitstellen. Die Zwischenspeicherung allein bietet keine vollständige Verfügbarkeitslösung.

  • Replizieren Sie Azure NetApp Files Speicher zwischen gekoppelten Regionen, um die Verfügbarkeit zu erhöhen. Weitere Informationen finden Sie unter Azure NetApp Files replikation.

  • Implementieren Sie Optionen für hohe Verfügbarkeit, die Ihren Anforderungen entsprechen, um die Verfügbarkeit der Azure-Datenbank für MySQL zu erhöhen.

  • Die Architektur unterstützt multiregion-Bereitstellung, Datenreplikation und automatische Skalierung. Gesundheitsprüfungen stellen sicher, dass nur gesunde Pods Netzwerkverkehr erhalten.

  • Azure Front Door ist ein globaler Dienst, der Datenverkehr an Ursprünge in mehreren Regionen weiterleiten kann.

Sicherheit

Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Entwurfsprüfliste für die Sicherheit.

Berücksichtigen Sie die folgenden bewährten Methoden, wenn Sie diese Lösung bereitstellen:

  • Verwenden Sie Azure Web Application Firewall auf Azure Front Door, um virtuellen Netzwerkdatenverkehr zu schützen, der in die Front-End-Anwendungsebene fließt. Weitere Informationen finden Sie unter Azure Web Application Firewall auf Azure Front Door.

  • Blockieren des ausgehenden Internetdatenverkehrs von der Datenbankebene.

  • Blockieren sie den öffentlichen Zugriff auf den privaten Speicher, und deaktivieren Sie den öffentlichen Zugriff auf Ressourcen. Verwenden Sie private Endpunkte für Azure Database for MySQL, Azure verwaltete Redis, Key Vault und Containerregistrierung. Weitere Informationen finden Sie unter Private Link.

Weitere Informationen finden Sie in General WordPress security and performance tips and Azure security documentation.

Kostenoptimierung

Die Kostenoptimierung konzentriert sich auf Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie unter Design Review-Checkliste für die Kostenoptimierung.

Machen Sie sich mit den folgenden Kostenüberlegungen vertraut, wenn Sie diese Lösung bereitstellen:

  • Datenverkehrserwartungen in GB pro Monat: Ihr Datenverkehrsvolumen hat den größten Einfluss auf Ihre Kosten. Der empfangene Datenverkehr bestimmt die Anzahl der erforderlichen AKS-Knoten und den Preis für ausgehende Datenübertragungen. Das Datenverkehrsvolumen korreliert auch direkt mit den Daten, die Ihr Content Delivery Network bereitstellt, wobei die Kosten für ausgehende Datenübertragungen niedriger sind.

  • Hosted data: Berücksichtigen Sie die Daten, die Sie hosten, da Azure NetApp Files Preise von reservierter Kapazität abhängen. Um Die Kosten zu optimieren, reservieren Sie die für Ihre Daten erforderliche Mindestkapazität.

  • Schreibprozentsatz: Überlegen Sie, wie viele neue Daten Sie auf Ihre Website schreiben, und welche Kosten dessen Speicherung verursacht. Bei Multiregion-Bereitstellungen korrelieren die neuen Daten, die Sie auf Ihre Website schreiben, mit den Daten, die in Ihren Regionen gespiegelt werden.

  • Statischer und dynamischer Inhalt: Überwachen Sie die Leistung und Kapazität ihrer Datenbankspeicher, um zu ermitteln, ob eine kostengünstige SKU Ihre Website unterstützt. In der Datenbank werden dynamische Inhalte gespeichert, und das Content Delivery Network speichert statische Inhalte zwischen.

  • AKS-Clusteroptimierung: Befolgen Sie allgemeine Anleitungen für AKS, z. B. Anleitungen zur Größe virtueller Computer und Azure Reservierungen, um Ihre AKS-Clusterkosten zu optimieren. Weitere Informationen finden Sie unter AKS Cost Optimization.

Betriebliche Effizienz

Operational Excellence deckt die Betriebsprozesse ab, mit denen eine Anwendung bereitgestellt und in der Produktion ausgeführt wird. Weitere Informationen finden Sie in der Checkliste zur Designüberprüfung für operationale Exzellenz.

Berücksichtigen Sie die folgenden Empfehlungen, wenn Sie diese Lösung bereitstellen:

  • Aktivieren Sie Kubernetes-Überwachung in Azure Monitor für den AKS-Cluster, einschließlich verwalteter Prometheus-Metriken und Containerprotokollierung. Konfigurieren Sie Warnungen für die Ressourcenauslastung von Knoten und Pod, damit Sie auf Probleme reagieren können, bevor sie sich auf Benutzer auswirken.

  • Speichern Sie Ihre Kubernetes-Manifeste, Helm-Charts und Infrastructure as Code (IaC)-Vorlagen in einem Versionskontrollsystem. Verwenden Sie eine pipeline für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD), um Änderungen an Ihrem AKS-Cluster bereitzustellen, um manuelle Fehler zu reduzieren und wiederholbare Bereitstellungen sicherzustellen.

  • Verwenden Sie AKS-Knotenimageupgrades und normale Kubernetes-Versionsupgrades, um mit Sicherheitspatches und Fehlerbehebungen auf dem Laufenden zu bleiben.

  • Verwenden Sie Azure Policy für AKS, um Organisationsstandards in Ihren Clustern zu erzwingen, z. B. die Anforderung privater Registrierungen oder das Einschränken privilegierter Container.

Leistungseffizienz

Die Leistungseffizienz bezieht sich auf die Fähigkeit Ihrer Arbeitslast, Benutzeranforderungen effizient zu erfüllen. Weitere Informationen finden Sie in der Checkliste zur Entwurfsüberprüfung für die Leistungseffizienz.

In diesem Szenario werden Pods in AKS verwendet, um das Front-End zu hosten. Das Feature "AutoScale" ermöglicht es, die Anzahl der Pods, die die Front-End-Anwendungsebene betreiben, automatisch aufgrund der Kundennachfrage zu skalieren. Pods können auch basierend auf einem Zeitplan skaliert werden. Weitere Informationen finden Sie unter Skalierungsoptionen für Anwendungen in AKS.

Wichtig

Stellen Sie ein persistentes Volume, das die NFS-Protokollversion 4.1 verwendet, um eine optimale Leistung zu erzielen. Das folgende YAML-Beispiel zeigt, wie ein „PersistentVolume“-Objekt für diesen Zweck konfiguriert wird. Das mountOptions Feld gibt NFS Version 4.1 an.

kind: PersistentVolume
...
    accessModes:
    - ReadWriteMany
    mountOptions:
    - vers=4.1
    nfs:
      server: xx.xx.xx.xx

Beitragende

Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.

Hauptautor:

Andere Mitwirkende:

  • Adrian Calinescu | Senior Cloud Solution Architect
  • Andrew Cardy | Senior Software Engineer

Um nicht-öffentliche LinkedIn-Profile zu sehen, melden Sie sich bei LinkedIn an.

Nächste Schritte

Produktdokumentation:

Microsoft Trainingsmodule