WordPress su Azure Kubernetes Service

Redis Gestito di Azure
Frontdoor di Azure
Servizio Azure Kubernetes (AKS)
Azure Load Balancer
Azure NetApp Files

Questo articolo descrive una soluzione contenitore che ospita un'installazione di wordPress di grandi dimensioni e a elevato utilizzo di archiviazione in Azure. La soluzione ottimizza la scalabilità e la sicurezza. I componenti principali includono Azure Front Door, Azure Kubernetes Service (AKS) e Azure NetApp Files.

Architettura

 Diagramma dell'architettura di una distribuzione di WordPress su AKS. Azure NetApp Files archivia il contenuto statico. Gli endpoint privati forniscono l'accesso ad altri servizi.

Scaricare un file Visio di questa architettura.

Nota

È possibile estendere questa soluzione implementando suggerimenti e raccomandazioni applicabili a qualsiasi metodo di hosting WordPress. Per suggerimenti generali su come distribuire un'installazione di WordPress, vedere WordPress in Azure.

Flusso di dati

Il flusso di dati seguente corrisponde al diagramma precedente:

  1. Gli utenti accedono al sito Web front-end tramite Azure Front Door con Azure Web Application Firewall abilitato.

  2. Azure Front Door usa un'istanza interna di Azure Load Balancer come origine. Il bilanciatore di carico interno è un componente nascosto di AKS. Azure Front Door recupera tutti i dati non memorizzati nella cache.

  3. Il bilanciamento del carico interno distribuisce il traffico in ingresso ai pod all'interno di AKS.

  4. Azure Key Vault archivia i segreti, inclusa la chiave privata, ovvero un certificato X.509.

  5. L'applicazione WordPress usa un endpoint privato per accedere a un'istanza del server flessibile di Azure Database for MySQL. L'applicazione WordPress recupera informazioni dinamiche da questo servizio di database gestito.

  6. Tutto il contenuto statico è ospitato in Azure NetApp Files. La soluzione usa il driver Astra Trident Container Storage Interface (CSI) con il protocollo NFS (Network File System).

Componenti

  • Il servizio Azure Kubernetes è un servizio Kubernetes gestito che è possibile usare per distribuire, gestire e ridimensionare applicazioni in contenitori. In questa architettura, Azure Kubernetes Service (AKS) ospita i container WordPress e fornisce la piattaforma di orchestrazione che esegue l'applicazione WordPress containerizzata per garantire un'elevata disponibilità e scalabilità.

  • Azure Managed Redis è un archivio dati in memoria gestito e un servizio di memorizzazione nella cache. In questa architettura, Azure Redis gestito ospita una cache chiave-valore condivisa da tutti i pod. I plug-in di ottimizzazione delle prestazioni di WordPress usano la cache per migliorare i tempi di risposta.

  • Azure Database for MySQL - Server flessibile è un servizio di database relazionale gestito basato sul motore di database MySQL open source. In questa architettura questo database archivia i dati di WordPress.

  • Azure Protezione DDoS è un servizio di sicurezza di rete che fornisce funzionalità avanzate di mitigazione DDoS (Distributed Denial of Service). In questa architettura, Protezione DDoS aiuta a difendersi dagli attacchi DDoS in combinazione con le procedure consigliate di progettazione delle applicazioni e abilitate nella rete perimetrale.

  • Azure Front Door è una rete di distribuzione di contenuti cloud moderna e un servizio di bilanciamento del carico globale. In questa architettura, Azure Front Door è il punto di ingresso pubblico nella distribuzione di WordPress.

  • Azure NetApp Files è una soluzione di archiviazione gestita, a elevato utilizzo di prestazioni e di latenza. In questa architettura, Azure NetApp Files ospita il contenuto di WordPress in modo che tutti i pod abbiano accesso ai dati condivisi tramite l'archiviazione file ad alte prestazioni.

  • Azure Virtual Network è un servizio di rete che consente alle risorse distribuite di comunicare tra loro, Internet e reti locali. In questa architettura le reti virtuali forniscono isolamento e segmentazione.

  • Key Vault è un servizio cloud che archivia e controlla l'accesso a segreti, certificati, chiavi e password. In questa architettura, Key Vault fornisce segreti al cluster AKS se i pod ne hanno bisogno.

  • Load Balancer è un bilanciatore di carico di livello 4 che distribuisce il traffico in ingresso in base alle regole e agli esiti dei controlli di integrità. In questa architettura, un servizio di bilanciamento del carico interno distribuisce il traffico dal livello Azure Front Door Premium ai pod del controller in ingresso con bassa latenza e velocità effettiva elevata.

  • I gruppi di sicurezza di rete sono funzionalità di sicurezza che usano regole di sicurezza per consentire o negare il traffico di rete in ingresso o in uscita in base all'indirizzo IP di origine o di destinazione, alla porta e al protocollo. In questa architettura le regole del gruppo di sicurezza di rete limitano il flusso di traffico tra i componenti dell'applicazione nelle subnet.

Alternative

  • Anziché usare il servizio gestito Azure Managed Redis, è possibile usare un pod Redis autogestito all'interno del cluster AKS come cache.

  • Anziché usare una soluzione di archiviazione gestita come Azure NetApp Files, è possibile usare una soluzione autogestita come una archiviazione Rook-Ceph. Per altre informazioni, vedere Use Rook Ceph on AKS.

  • Anziché usare il servizio Azure Kubernetes, è possibile usare Azure Container Apps per ospitare carichi di lavoro WordPress in contenitori. Le Container Apps è un servizio di contenitori serverless gestito, adatto per scenari più semplici o di dimensioni ridotte. Per distribuzioni di grandi dimensioni, a elevato utilizzo di risorse di archiviazione e altamente personalizzabili, utilizzare AKS.

Dettagli dello scenario

Questo scenario di esempio funziona meglio per installazioni di WordPress a elevato utilizzo di archiviazione. Questo modello di distribuzione può essere ridimensionato per soddisfare i picchi di traffico verso il sito.

Potenziali casi d'uso

  • Blog ad alto traffico che usano WordPress come sistema di gestione dei contenuti
  • Siti Web aziendali o di e-commerce che usano WordPress

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che è possibile usare per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Well-Architected Framework.

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni assunti dai clienti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'affidabilità.

Quando si distribuisce questa soluzione, prendere in considerazione i consigli seguenti:

  • Usare i pod nel servizio Azure Kubernetes e un servizio di bilanciamento del carico per distribuire il traffico in ingresso. Questo approccio offre disponibilità elevata anche se si verifica un guasto del pod.

  • Posizionare tutti i componenti di rete dietro Azure Front Door. Questo approccio rende le risorse di rete e l'applicazione resilienti ai problemi che possono altrimenti interrompere il traffico e influire sull'accesso degli utenti.

  • Usare Azure Front Door per memorizzare nella cache tutte le risposte per ottenere un vantaggio di disponibilità ridotto. In particolare, quando l'origine non risponde, è comunque possibile accedere al contenuto. Tuttavia, la memorizzazione nella cache non offre una soluzione di disponibilità completa.

  • Replicare l'archiviazione di Azure NetApp Files tra regioni accoppiate per aumentare la disponibilità. Per altre informazioni, vedere Understand Azure NetApp Files replication.

  • Segui le opzioni di alta disponibilità che soddisfano le tue esigenze per aumentare la disponibilità di Azure Database for MySQL.

  • La soluzione supporta più aree, replica dei dati e scalabilità automatica. I componenti distribuiscono il traffico ai pod. I controlli di integrità assicurano che solo i pod sani ricevano traffico.

  • Azure Front Door è un servizio globale che supporta i set di scalabilità di macchine virtuali distribuiti in un'altra area.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'uso improprio dei dati e dei sistemi preziosi. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per la sicurezza.

Quando si distribuisce questa soluzione, prendere in considerazione le procedure consigliate seguenti:

  • Usare Web Application Firewall su Azure Front Door per proteggere il traffico di rete virtuale che passa al livello applicazione front-end. Per altre informazioni, vedere Web Application Firewall su Azure Front Door.

  • Non consentire il flusso del traffico Internet in uscita dal livello di database.

  • Non consentire l'accesso pubblico all'archiviazione privata e disabilitare l'accesso pubblico alle risorse. Usa endpoint privati per Azure Database for MySQL, Azure Redis gestito, Key Vault e Azure Container Registry. Per altre informazioni, vedere Azure Private Link.

Per altre informazioni, vedere General WordPress security and performance tips and Azure security documentation.

Ottimizzazione dei costi

L'ottimizzazione dei costi è incentrata sui modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'ottimizzazione dei costi.

Quando si distribuisce questa soluzione, esaminare le considerazioni sui costi seguenti:

  • Aspettative del traffico (GB/mese): Il volume di traffico ha il massimo effetto sui costi. La quantità di traffico ricevuta determina il numero di nodi del servizio Azure Kubernetes necessari e il prezzo per il trasferimento dei dati in uscita. Il volume di traffico è correlato direttamente anche alla quantità di dati fornita dalla rete per la distribuzione di contenuti, in cui i costi di trasferimento dei dati in uscita sono più economici.

  • Quantità di dati ospitati: Prendi in considerazione la quantità di dati che ospiti, perché il prezzo di Azure NetApp Files si basa sulla capacità riservata. Per ottimizzare i costi, riservare la capacità minima necessaria per i dati.

  • Percentuale scrittura: Valutare la quantità di nuovi dati scritti nel sito Web e il costo per archiviarlo. Per le distribuzioni multi-regione, la quantità di nuovi dati che scrivi sul tuo sito web è correlata alla quantità di dati replicati nelle tue regioni.

  • Contenuto statico e dinamico: Monitorare le prestazioni e la capacità di archiviazione del database per determinare se uno SKU più economico può supportare il sito. Il database archivia il contenuto dinamico e la rete per la distribuzione di contenuti memorizza nella cache il contenuto statico.

  • Ottimizzazione clusterAKS: Seguire i suggerimenti generali per il servizio Azure Kubernetes, ad esempio indicazioni sulle dimensioni della macchina virtuale (VM) e sulle prenotazioni di Azure, per ottimizzare i costi del cluster del servizio Azure Kubernetes. Per altre informazioni, vedere Ottimizzazione dei costi AKS.

Efficienza delle prestazioni

L'efficienza delle prestazioni si riferisce alla capacità del carico di lavoro di ridimensionarsi per soddisfare in modo efficiente le esigenze degli utenti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'efficienza delle prestazioni.

Questo scenario usa i pod in AKS (Azure Kubernetes Service) per ospitare il front-end. La funzionalità di scalabilità automatica consente al numero di pod che eseguono il livello applicazione front-end di ridimensionarsi automaticamente in risposta alla domanda dei clienti. Possono anche essere ridimensionati in base a una pianificazione definita. Per altre informazioni, vedere Opzioni di ridimensionamento per le applicazioni nel servizio Azure Kubernetes.

Importante

Per ottenere prestazioni ottimali, montare un volume permanente che usa il protocollo NFS versione 4.1. Nell'esempio YAML seguente viene illustrato come configurare un PersistentVolume oggetto a questo scopo. Prendere nota del valore del mountOptions campo.

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

Collaboratori

Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.

Autore principale:

Altro collaboratore:

  • Adrian Calinescu - Italia | Architetto senior di soluzioni cloud

Per visualizzare i profili di LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Documentazione sui prodotti:

Moduli di formazione Microsoft: