In dit artikel wordt een containeroplossing beschreven voor het hosten van een grote, opslagintensieve installatie van WordPress in Azure. De oplossing maximaliseert schaalbaarheid en beveiliging. Belangrijke onderdelen zijn Azure Front Door, Azure Kubernetes Service (AKS) en Azure NetApp Files.
Architectuur
Een Visio-bestand van deze architectuur downloaden.
Notitie
U kunt deze oplossing uitbreiden door tips en aanbevelingen te implementeren die niet specifiek zijn voor een bepaalde WordPress-hostingmethode. Zie WordPress in Azure voor algemene tips voor het implementeren van een WordPress-installatie.
Gegevensstroom
- Gebruikers hebben toegang tot de front-endwebsite via Azure Front Door met Azure Web Application Firewall ingeschakeld.
- Azure Front Door maakt gebruik van een intern exemplaar van Azure Load Balancer als de oorsprong. De interne load balancer is een verborgen onderdeel van AKS. Azure Front Door haalt gegevens op die niet in de cache zijn opgeslagen.
- De interne load balancer distribueert inkomend verkeer naar pods binnen AKS.
- Azure Key Vault slaat geheimen op, zoals de persoonlijke sleutel, een X.509-certificaat.
- De WordPress-toepassing maakt gebruik van een privé-eindpunt voor toegang tot een exemplaar van een flexibele server van Azure Database for MySQL. De WordPress-toepassing haalt dynamische informatie op uit deze beheerde databaseservice.
- Alle statische inhoud wordt gehost in Azure NetApp Files. De oplossing maakt gebruik van het CSI-stuurprogramma (Astra Trident Container Storage Interface) met het NFS-protocol.
Onderdelen
- Azure Front Door is een modern netwerk voor cloudinhoudlevering. Als gedistribueerd netwerk van servers levert Azure Front Door efficiënt webinhoud aan gebruikers. Netwerken voor inhoudslevering minimaliseren de latentie door inhoud in de cache op te slaan op edge-servers in locaties met een punt-of-aanwezigheid bij eindgebruikers.
- Azure Virtual Network biedt een manier voor geïmplementeerde resources om met elkaar, internet en on-premises netwerken te communiceren. Virtuele netwerken bieden isolatie en segmentatie. Ze filteren en routeren ook verkeer en maken het mogelijk om verbindingen tussen verschillende locaties tot stand te brengen. In deze oplossing zijn de twee netwerken verbonden via peering van virtuele netwerken.
- Azure DDoS Protection biedt verbeterde DDoS-risicobeperkingsfuncties. Wanneer u deze functies combineert met best practices voor het ontwerpen van toepassingen, helpen ze om bescherming te bieden tegen DDoS-aanvallen. Schakel DDoS Protection in op virtuele perimeternetwerken.
- Netwerkbeveiligingsgroepen gebruiken een lijst met beveiligingsregels om binnenkomend of uitgaand netwerkverkeer toe te staan of te weigeren op basis van bron- of doel-IP-adres, poort en protocol. In de subnetten van dit scenario beperken netwerkbeveiligingsgroepsregels de verkeersstroom tussen de toepassingsonderdelen.
- Load Balancer distribueert inkomend verkeer op basis van regels en statustestresultaten. Een load balancer biedt lage latentie en hoge doorvoer. Door verkeer over meerdere servers te spreiden, voegt een load balancer schaalbaarheid toe aan TCP-toepassingen (Transmission Control Protocol) en UDP-toepassingen (User Datagram Protocol). In dit scenario distribueert een load balancer verkeer van het netwerk voor contentlevering naar de front-endwebservers.
- AKS is een volledig beheerde Kubernetes-service die u kunt gebruiken voor het implementeren, beheren en schalen van toepassingen in containers.
- Azure NetApp Files biedt een volledig beheerde oplossing voor prestatie-intensieve en latentiegevoelige opslag. In deze oplossing host Azure NetApp Files alle WordPress-inhoud, zodat alle pods toegang hebben tot de gegevens.
- Azure Cache voor Redis is een gegevensarchief in het geheugen. U kunt Azure Cache voor Redis gebruiken om een sleutel-waardecache in deze oplossing te hosten. Deze cache wordt gedeeld tussen alle pods en wordt gebruikt voor WordPress-invoegtoepassingen voor prestatieoptimalisatie.
- Key Vault slaat de toegang tot wachtwoorden, certificaten en sleutels op en beheert deze.
- Azure Database for MySQL - flexibele server is een relationele databaseservice die is gebaseerd op de opensource MySQL-database-engine. De implementatieoptie voor flexibele servers is een volledig beheerde service die gedetailleerde controle en flexibiliteit biedt voor databasebeheerfuncties en configuratie-instellingen. In dit scenario slaat Azure Database for MySQL WordPress-gegevens op.
Alternatieven
- In plaats van de Azure Cache voor Redis beheerde service te gebruiken, kunt u een zelf-hostende pod in het AKS-cluster gebruiken als de cache.
- In plaats van een beheerde opslagoplossing zoals Azure NetApp Files te gebruiken, kunt u een zelf-hostende oplossing gebruiken, zoals Rook-Ceph-opslag. Zie voor meer informatie hoe u Rook Ceph gebruikt in Azure Kubernetes Service.
Scenariodetails
Dit voorbeeldscenario is geschikt voor grote, opslagintensieve installaties van WordPress. Dit implementatiemodel kan worden geschaald om pieken in het verkeer naar de site te ontmoeten.
Potentiële gebruikscases
- Blogs met veel verkeer die WordPress gebruiken als hun inhoudsbeheersysteem
- Zakelijke of e-commercewebsites die Gebruikmaken van WordPress
Overwegingen
Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.
Betrouwbaarheid
Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.
Houd rekening met de volgende aanbevelingen wanneer u deze oplossing implementeert:
- De oplossing maakt gebruik van pods in AKS en een load balancer om inkomend verkeer te distribueren. Deze benadering biedt hoge beschikbaarheid, zelfs als er een podfout is.
- De oplossing ondersteunt meerdere regio's, gegevensreplicatie en automatisch schalen. De onderdelen distribueren verkeer naar de pods. Statustests worden gebruikt, zodat verkeer alleen wordt gedistribueerd naar gezonde pods.
- Alle netwerkonderdelen worden fronted door Azure Front Door. Deze aanpak maakt de netwerkresources en toepassing bestand tegen problemen die anders het verkeer zouden verstoren en de toegang van eindgebruikers zouden beïnvloeden.
- Azure Front Door is een wereldwijde service die ondersteuning biedt voor virtuele-machineschaalsets die in een andere regio worden geïmplementeerd.
- Wanneer u Azure Front Door gebruikt om alle antwoorden in de cache op te cachen, profiteert u van een klein beschikbaarheidsvoordeel. Als de oorsprong niet reageert, hebt u nog steeds toegang tot inhoud. Caching biedt echter geen volledige beschikbaarheidsoplossing.
- Repliceer Azure NetApp Files-opslag tussen gekoppelde regio's om de beschikbaarheid te vergroten. Zie Replicatie tussen regio's met Azure NetApp Files voor meer informatie.
- Als u de beschikbaarheid van Azure Database for MySQL wilt verhogen, volgt u de opties voor hoge beschikbaarheid die aan uw behoeften voldoen.
Beveiliging
Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.
Houd rekening met de volgende aanbevolen procedures wanneer u deze oplossing implementeert:
- Gebruik Web Application Firewall in Azure Front Door om het verkeer van het virtuele netwerk dat naar de front-endtoepassingslaag stroomt te beveiligen. Zie Azure Web Application Firewall in Azure Front Door voor meer informatie.
- Sta uitgaand internetverkeer niet toe vanuit de databaselaag.
- Sta geen openbare toegang tot privéopslag toe en schakel openbare toegang tot resources uit. Gebruik privé-eindpunten voor Azure Database for MySQL, Azure Cache voor Redis, Key Vault en Azure Container Registry. Zie Azure Private Link voor meer informatie.
Zie algemene tips voor beveiliging en prestaties van WordPress en documentatie over Azure-beveiliging voor meer informatie over WordPress-beveiliging.
Kostenoptimalisatie
Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.
Bekijk de volgende kostenoverwegingen wanneer u deze oplossing implementeert:
- Verwachtingen voor verkeer (GB/maand). Uw verkeersvolume is de factor die het grootste effect heeft op uw kosten. De hoeveelheid verkeer dat u ontvangt, bepaalt het aantal AKS-knooppunten dat u nodig hebt en de prijs voor uitgaande gegevensoverdracht. Het verkeersvolume correleert ook rechtstreeks met de hoeveelheid gegevens die wordt geleverd door uw netwerk voor contentlevering, waarbij de kosten voor uitgaande gegevensoverdracht goedkoper zijn.
- Hoeveelheid gehoste gegevens. Het is belangrijk om rekening te houden met de hoeveelheid gegevens die u host, omdat de prijzen van Azure NetApp Files zijn gebaseerd op gereserveerde capaciteit. Als u de kosten wilt optimaliseren, reserveert u de minimale capaciteit die u nodig hebt voor uw gegevens.
- Schrijfpercentage. Bedenk hoeveel nieuwe gegevens u naar uw website schrijft en de kosten voor het opslaan ervan. Voor implementaties in meerdere regio's komt de hoeveelheid nieuwe gegevens die u naar uw website schrijft overeen met de hoeveelheid gegevens die in uw regio's wordt gespiegeld.
- Statische versus dynamische inhoud. Bewaak de prestaties en capaciteit van uw databaseopslag om te bepalen of een goedkopere SKU uw site kan ondersteunen. De database slaat dynamische inhoud op en het netwerk voor contentlevering slaat statische inhoud in de cache op.
- Optimalisatie van AKS-clusters. Als u de kosten van uw AKS-cluster wilt optimaliseren, volgt u algemene tips voor AKS, zoals richtlijnen voor VM-grootte en Azure-reserveringen. Zie AKS-kostenoptimalisatie voor meer informatie.
Prestatie-efficiëntie
Prestatie-efficiëntie is de mogelijkheid om op efficiënte wijze uw werkbelasting te schalen om te voldoen aan de vereisten die gebruikers eraan stellen. Zie overzicht van de pijler Prestatie-efficiëntie voor meer informatie.
In dit scenario worden pods in AKS gebruikt om de front-end te hosten. Met de functie voor automatisch schalen kan het aantal pods waarop de front-endtoepassingslaag wordt uitgevoerd, automatisch worden geschaald als reactie op de vraag van de klant. Ze kunnen ook schalen op basis van een gedefinieerd schema. Zie Schaalopties voor toepassingen in Azure Kubernetes Service (AKS) voor meer informatie.
Belangrijk
Voor de beste prestaties is het essentieel om een permanent volume te koppelen dat gebruikmaakt van NFS-protocolversie 4.1. In het volgende YAML-voorbeeld ziet u hoe u een PersistentVolume
object voor dit doel configureert. Noteer de waarde van het mountOptions
veld.
kind: PersistentVolume
...
accessModes:
- ReadWriteMany
mountOptions:
- vers=4.1
nfs:
server: xx.xx.xx.xx
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Hoofdauteur:
- Vaclav Jirowski | Cloud Solution Architect
Andere Inzenders:
- Adrian Calinescu | Senior Cloud Solution Architect
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
Productdocumentatie:
- Wat is Azure Front Door?
- Wat is Azure Web Application Firewall?
- Wat is Azure NetApp Files?
- Een NFS-volume maken voor Azure NetApp Files
- Azure NetApp Files configureren voor Azure Kubernetes Service
- Azure Database for MySQL - Flexibele server
- Wat is Azure Virtual Network?
- Info over Azure Key Vault
- Wat is Azure Load Balancer?
- Wat is Azure DDoS Protection?
Microsoft-trainingsmodules:
- Toepassingen ontwikkelen en implementeren in Kubernetes
- Kennismaking met Azure NetApp Files
- Taakverdeling voor uw webserviceverkeer met Azure Front Door
- Azure Key Vault implementeren
- Inleiding tot Azure Virtual Network