WordPress in Azure Kubernetes Service
In diesem Artikel wird eine Containerlösung beschrieben, die eine große, speicherintensive Installation von WordPress auf Azure hostet. Diese Lösung maximiert die Skalierbarkeit und Sicherheit. Zu den wichtigsten Komponenten gehören Azure Front Door, Azure Kubernetes Service (AKS) und Azure NetApp Files.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Hinweis
Sie können diese Lösung erweitern, indem Sie Tipps und Empfehlungen implementieren, die für jede WordPress-Hostingmethode gelten. Allgemeine Tipps zum Bereitstellen einer WordPress-Installation finden Sie unter WordPress in Azure.
Datenfluss
Der folgende Datenfluss entspricht dem vorherigen Diagramm:
Benutzer*innen greifen über Azure Front Door auf die Front-End-Website zu, wobei Azure Web Application Firewall aktiviert ist.
Azure Front Door verwendet eine interne Instanz von Azure Load Balancer als Ursprung. Der interne Lastenausgleich ist eine ausgeblendete Komponente von AKS. Azure Front Door ruft alle Daten ab, die nicht zwischengespeichert werden.
Der interne Lastenausgleich verteilt eingehenden Datenverkehr zu Pods innerhalb von AKS.
Azure Key Vault speichert geheime Schlüssel, einschließlich des privaten Schlüssels, bei dem es sich um ein X.509-Zertifikat handelt.
Die WordPress-Anwendung verwendet einen privaten Endpunkt, um auf eine flexible Serverinstanz von Azure Database for MySQL zuzugreifen. Die WordPress-Anwendung ruft dynamische Informationen aus diesem verwalteten Datendienst ab.
Alle statischen Inhalte werden in Azure NetApp Files gehostet. Die Lösung verwendet den Astra Trident Container Storage Interface (CSI)-Treiber mit dem NFS-Protokoll (Network File System).
Komponenten
AKS ist ein verwalteter Kubernetes-Dienst, mit dem Sie containerisierte Anwendungen bereitstellen, verwalten und skalieren können. In dieser Architektur hosten AKS die WordPress-Container und stellt die Orchestrierungsplattform bereit, die die containerisierte WordPress-Anwendung ausführt, um hohe Verfügbarkeit und Skalierbarkeit sicherzustellen.
Azure Cache for Redis ist ein verwalteter Speicher- und Cachedienst im Arbeitsspeicher. In dieser Architektur hostet Azure Cache für Redis einen Schlüsselwertcache, den alle Pods freigeben. WordPress-Leistungsoptimierungs-Plug-Ins verwenden den Cache, um die Reaktionszeiten zu verbessern.
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 DDoS-Entschärfungsfunktionen (Distributed Denial-of-Service) bereitstellt. In dieser Architektur hilft DDoS Protection beim Schutz vor DDoS-Angriffen, wenn sie mit bewährten Methoden für den Anwendungsentwurf kombiniert und im Umkreisnetzwerk aktiviert sind.
Azure Front Door ist ein modernes Netzwerk für die Bereitstellung von Cloudinhalten und ein globaler Lastenausgleich. 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 zugriff auf die freigegebenen Daten über einen leistungsfähigen Dateispeicher haben.
Azure Virtual Network ist ein Netzwerkdienst, mit dem bereitgestellte Ressourcen miteinander, das Internet und lokale Netzwerke kommunizieren können. 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 stellt Key Vault geheime Schlüssel für den AKS-Cluster bereit, wenn sie von Pods benötigt werden.
Das Lastenausgleichsmodul ist ein Lastenausgleichsmodul der Ebene 4, der eingehenden Datenverkehr basierend auf Regeln und Integritätssondenergebnissen verteilt. In dieser Architektur verteilt der Lastenausgleichsmodul Datenverkehr von Azure Front Door an die Eingangscontroller-Pods mit geringer Latenz und hohem Durchsatz.
Netzwerksicherheitsgruppen (NSGs) sind Sicherheitsfeatures , die Sicherheitsregeln verwenden, um eingehenden oder ausgehenden Netzwerkdatenverkehr basierend auf Quell- oder Ziel-IP-Adresse, Port und Protokoll zuzulassen oder zu verweigern. In dieser Architektur schränken NSG-Regeln den Datenverkehrsfluss zwischen den Anwendungskomponenten in den Subnetzen ein.
Alternativen
Anstelle des verwalteten Diensts Azure Cache for Redis können Sie einen selbstgehosteten Pod im AKS-Cluster als Cache verwenden.
Anstelle einer verwalteten Speicherlösung wie Azure NetApp Files können Sie eine selbstgehostete Lösung wie Rook-Ceph Storage verwenden. Weitere Informationen finden Sie unter Use Rook Ceph on AKS.
Statt AKS zu verwenden, können Sie Azure-Container-Apps verwenden, um containerisierte WordPress-Workloads 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.
Szenariodetails
Dieses Beispielszenario eignet sich am besten für große, speicherintensive Installationen von WordPress. Dieses Bereitstellungsmodell kann skaliert werden, um Spitzen im auf der Website eingehenden Datenverkehr gerecht zu werden.
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 bilden die Säulen des Azure Well-Architected Framework, einer Reihe von Leitprinzipien, die Sie zur Verbesserung der Qualität eines Workloads verwenden können. 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 Erstellen einer Checkliste zur Überprüfung der Zuverlässigkeit.
Berücksichtigen Sie die folgenden Empfehlungen, wenn Sie diese Lösung bereitstellen:
Verwenden Sie Pods in AKS und einen Lastenausgleich, um eingehenden Datenverkehr zu verteilen. Dieser Ansatz bietet hohe Verfügbarkeit, auch wenn ein Pod-Fehler auftritt.
Platzieren Sie alle Netzwerkkomponenten hinter Azure Front Door. Dieser Ansatz macht die Netzwerkressourcen und die Anwendung anfällig für Probleme, die andernfalls den Datenverkehr stören und den Benutzerzugriff beeinträchtigen können.
Verwenden Sie Azure Front Door, um alle Antworten zwischenzuspeichern, um einen kleinen Verfügbarkeitsvorteil zu erzielen. Insbesondere wenn der Ursprung nicht antwortet, können Sie immer noch auf Inhalte zugreifen. Das Zwischenspeichern stellt jedoch keine vollständige Verfügbarkeitslösung dar.
Replizieren Sie den Speicher von Azure NetApp Files zwischen gekoppelten Regionen, um die Verfügbarkeit zu erhöhen. Weitere Informationen finden Sie unter "Grundlegendes zur Azure NetApp Files-Replikation".
Folgen Sie den Optionen für hohe Verfügbarkeit , die Ihren Anforderungen entsprechen, um die Verfügbarkeit von Azure Database für MySQL zu erhöhen.
Diese Lösung unterstützt mehrere Regionen, Datenreplikation sowie automatische Skalierung. Die Komponenten verteilen Datenverkehr an die Pods. Integritätssonden stellen sicher, dass nur gesunde Pods Datenverkehr erhalten.
Azure Front Door ist ein globaler Dienst, der vm-Skalierungsgruppen unterstützt, die in einer anderen Region bereitgestellt werden.
Sicherheit
Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Sicherheit.
Berücksichtigen Sie die folgenden bewährten Methoden, wenn Sie diese Lösung bereitstellen:
Verwenden Sie Web Application Firewall in Azure Front Door, um den Datenverkehr virtueller Netzwerke zu schützen, der in die Front-End-Anwendungsebene fließt. Weitere Informationen finden Sie unter Webanwendungsfirewall auf Azure Front Door.
Lassen Sie nicht zu, dass ausgehender Internetdatenverkehr von der Datenbankebene fließt.
Lassen Sie den öffentlichen Zugriff auf privaten Speicher nicht zu, und deaktivieren Sie den öffentlichen Zugriff auf Ressourcen. Verwenden Sie private Endpunkte für Azure Database for MySQL, Azure Cache for Redis, Key Vault und Azure Container Registry. Weitere Informationen hierzu finden Sie unter Azure Private Link.
Weitere Informationen finden Sie in der allgemeinen WordPress-Sicherheits- und Leistungstipps und in der Azure-Sicherheitsdokumentation.
Kostenoptimierung
Die Kostenoptimierung konzentriert sich auf Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Kostenoptimierung.
Machen Sie sich mit den folgenden Kostenüberlegungen vertraut, wenn Sie diese Lösung bereitstellen:
Datenverkehrserwartungen (GB/Monat): Ihr Datenverkehrsvolumen hat den größten Einfluss auf Ihre Kosten. Die Menge des empfangenen Datenverkehrs bestimmt die Anzahl der erforderlichen AKS-Knoten und den Preis für die ausgehende Datenübertragung. Das Datenverkehrsvolumen korreliert auch direkt mit der Datenmenge, die Ihr Content Delivery Network bereitstellt, wo ausgehende Datenübertragungskosten günstiger sind.
Menge der gehosteten Daten: Berücksichtigen Sie die Datenmenge, die Sie hosten, da die Preise für Azure NetApp Files auf reservierter Kapazität basieren. Um Die Kosten zu optimieren, reservieren Sie die für Ihre Daten erforderliche Mindestkapazität.
Prozentwert schreiben: Überlegen Sie, wie viele neue Daten Sie auf Ihre Website schreiben, und welche Kosten sie zu speichern haben. Bei Bereitstellungen mit mehreren Regionen korreliert die Menge der neuen Daten, die Sie auf Ihre Website schreiben, mit der Datenmenge, die in Ihren Regionen gespiegelt wird.
Statischer und dynamischer Inhalt: Überwachen Sie die Leistung und Kapazität ihrer Datenbankspeicher, um festzustellen, ob eine günstigere SKU Ihre Website unterstützen kann. In der Datenbank werden dynamische Inhalte gespeichert, und das Content Delivery Network speichert statische Inhalte zwischen.
Optimierung des AKS-Clusters: Befolgen Sie allgemeine Tipps für AKS, z. B. Anleitungen zur Größe virtueller Computer (VM) und Azure Reservations, um Ihre AKS-Clusterkosten zu optimieren. Weitere Informationen finden Sie unter AKS Cost Optimization.
Leistungseffizienz
Die Leistungseffizienz bezieht sich auf die Fähigkeit Ihrer Workload, die Anforderungen der Benutzer effizient zu erfüllen. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Leistungseffizienz.
In diesem Szenario werden Pods in AKS verwendet, um das Front-End zu hosten. Das Feature "AutoScale" ermöglicht die Anzahl der Pods, die die Front-End-Anwendungsebene ausführen, um die Skalierung automatisch als Reaktion auf die Kundennachfrage zu skalieren. Sie können auch basierend auf einem Zeitplan skalieren. 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. Notieren Sie sich den Wert des Felds „mountOptions“.
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:
- Václav Jirovsky | Architekt für Cloud-Lösungen
Anderer Mitwirkender:
- Adrian Calinescu | Senior Cloud Solution Architect
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
Produktdokumentation:
- Übersicht über Azure Front Door
- Übersicht über die Webanwendungsfirewall
- Übersicht über Azure NetApp Files
- Erstellen eines NFS-Volumes für Azure NetApp Files
- Konfigurieren von Azure NetApp-Dateien für AKS
- Azure Database for MySQL: Flexibler Server
- Virtuelle Netzwerke im Überblick
- Übersicht über den Key Vault
- Übersicht über das Lastenausgleichsmodul
- Übersicht über DDoS Protection
Microsoft-Trainingsmodule:
- Entwickeln und Bereitstellen von Anwendungen auf Kubernetes
- Einführung in Azure NetApp Files
- Implementieren von Key Vault
- Einführung in das virtuelle Netzwerk