Implementa WordPress con MySQL Database Service su Oracle Cloud Infrastructure Kubernetes Engine
Sfrutta la flessibilità e i vantaggi in termini di costi derivanti dall'hosting delle tue pagine Web e dei tuoi blog su WordPress su Oracle Cloud Infrastructure (OCI).
- Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine o OKE) per fornire un'implementazione Wordpress altamente scalabile e disponibile senza la necessità di distribuire o gestire un cluster Kubernetes.
- MySQL Database Service per fornire un database ad alte prestazioni per la tua applicazione WordPress senza dover eseguire il provisioning o gestire il database.
- Servizio di storage di file per lo storage di persistenza condiviso (richiesto da WordPress) accessibile a tutte le istanze dell'applicazione per renderlo ad alta disponibilità.
Architettura
Questa architettura di riferimento mostra una distribuzione WordPress ad alta disponibilità e scalabile in un cluster OKE. Questa distribuzione utilizza il servizio di storage di file come storage persistente e MySQL Database Service come database. Un load balancer con un IP esterno viene allocato per fornire l'accesso all'applicazione WordPress.
Il seguente diagramma illustra questa architettura di riferimento.

Descrizione dell'immagine oci-mysql-oke-wordpress-arch.png
oci-mysql-oke-wordpress-arch-oracle.zip
La sezione seguente descrive questa architettura di riferimento:
Nel cluster OKE è possibile selezionare il numero di pod dell'applicazione WordPress per la distribuzione. Ogni pod richiede l'accesso allo storage condiviso persistente. Per fornire lo storage, nel cluster viene creata una risorsa della classe di storage mappata a una condivisione NFS nello storage di file. Una risorsa in volume persistente rende quindi lo storage offerto dalla classe di storage consumabile dalle risorse all'interno del cluster. Viene creata una risorsa PVC (persistent-volume-claim) per indicare che i pod desiderano utilizzare lo storage. Il PVC è mappato nei pod dell'applicazione WordPress per accedere allo storage.
Il database per l'applicazione WordPress utilizza MySQL Database Service. L'istanza di MySQL Database Service viene creata e gestita dal cluster OKE come risorsa personalizzata definita con OCI Service Operator for Kubernetes (OSOK).
MySQL Database Service viene distribuito con High Availability (HA) utilizzando tre istanze di MySQL Database Service distribuite in domini di disponibilità o domini di errore diversi. L'applicazione WordPress si connette a un singolo endpoint per la lettura e la scrittura nel database. In caso di errore, il sistema di database eseguirà automaticamente il failover su un'istanza secondaria senza riconfigurare l'applicazione WordPress.
Un load balancer viene creato e gestito dal cluster OKE come risorsa di servizio con il tipo LoadBalancer.
L'architettura presenta i seguenti componenti:
- Area
Un'area geografica Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (tra paesi o addirittura continenti).
- Domini di disponibilità
I domini di disponibilità sono data center standalone e indipendenti all'interno di un'area geografica. Le risorse fisiche in ciascun dominio di disponibilità sono isolate dalle risorse negli altri domini di disponibilità, il che fornisce tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio alimentazione o raffreddamento, o la rete interna del dominio di disponibilità. Pertanto, un errore in un dominio di disponibilità non dovrebbe influire sugli altri domini di disponibilità nell'area.
- Domini di errore
Un dominio di errore consiste in un gruppo di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore con alimentazione e hardware indipendenti. Quando distribuisci le risorse su più domini di errore, le tue applicazioni possono tollerare errori fisici del server, manutenzione del sistema e errori di alimentazione all'interno di un dominio di errore.
- Rete cloud virtuale (VCN) e subnet
Una VCN è una rete personalizzabile e definita dal software configurata in un'area Oracle Cloud Infrastructure. Come le tradizionali reti di data center, le reti VCN consentono di controllare l'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. Puoi segmentare una VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. È possibile modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.
- Motore Kubernetes
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine o OKE) è un servizio completamente gestito, scalabile e ad alta disponibilità che puoi utilizzare per distribuire le tue applicazioni containerizzate nel cloud. Puoi specificare le risorse di computazione richieste dalle tue applicazioni e Kubernetes Engine le esegue sul Oracle Cloud Infrastructure in una tenancy esistente. OKE utilizza Kubernetes per automatizzare l'implementazione, la scalabilità e la gestione di applicazioni containerizzate tra cluster di host.
- Oracle MySQL Database Service
Oracle MySQL Database Service è un servizio di database Oracle Cloud Infrastructure (OCI) completamente gestito che consente agli sviluppatori di sviluppare e distribuire rapidamente applicazioni cloud native sicure. Ottimizzato ed esclusivamente disponibile in OCI, Oracle MySQL Database Service è stato creato, gestito e supportato al 100% dai team di progettazione OCI e MySQL.
Oracle MySQL Database Service dispone di un motore di analitica integrato e ad alte prestazioni (HeatWave) per eseguire sofisticate analisi in tempo reale direttamente su un database MySQL operativo.
- Storage file
Il servizio Oracle Cloud Infrastructure File Storage offre un file system di rete duraturo, scalabile, sicuro e di livello aziendale. Puoi connetterti a un file system del servizio di storage di file da qualsiasi istanza Bare Metal, virtual machine o container in una rete VCN. Inoltre, puoi accedere a un file system dall'esterno della VCN utilizzando Oracle Cloud Infrastructure FastConnect e IPSec VPN.
- WordPress sistema di content management (CMS)
WordPress CMS ti consente di creare un blog completamente funzionale o un sito Web di uso generale.
- Gateway NAT (Network Address Translation)
Un gateway NAT consente alle risorse private in una VCN di accedere agli host su Internet, senza esporre tali risorse alle connessioni Internet in entrata.
- Gateway del servizio
Il gateway di servizi fornisce l'accesso da una VCN ad altri servizi, come Oracle Cloud Infrastructure Object Storage. Il traffico dalla VCN al servizio Oracle viene instradato sul fabric di rete Oracle e non attraversa Internet.
- Registro
Oracle Cloud Infrastructure Registry è un registro gestito da Oracle e che ti consente di semplificare il flusso di lavoro da sviluppo a produzione. Registry semplifica la memorizzazione, la condivisione e la gestione degli artifact di sviluppo, ad esempio le immagini Docker. L'architettura altamente disponibile e scalabile di Oracle Cloud Infrastructure ti assicura di poter distribuire e gestire le tue applicazioni in modo affidabile.
- Load balancer
Il servizio Oracle Cloud Infrastructure Load Balancing fornisce la distribuzione automatica del traffico da un unico punto di accesso a più server nel back-end.
- Tabella di instradamento
Le tabelle di instradamento virtuali contengono regole per instradare il traffico dalle subnet alle destinazioni esterne a una VCN, in genere attraverso i gateway.
- Lista di sicurezza
Per ogni subnet, puoi creare regole di sicurezza che specificano l'origine, la destinazione e il tipo di traffico che devono essere consentiti all'interno e all'esterno della subnet.
Suggerimenti
- VCN
Quando crei una VCN, determina il numero di blocchi CIDR necessari e la dimensione di ciascun blocco in base al numero di risorse che intendi collegare alle subnet nella VCN. Utilizzare i blocchi CIDR all'interno dello spazio di indirizzi IP privati standard.
Selezionare i blocchi CIDR che non si sovrappongono a qualsiasi altra rete (in Oracle Cloud Infrastructure, nel data center on premise o in un altro provider cloud) a cui si intende impostare connessioni private.
Dopo aver creato una VCN, puoi modificarne, aggiungerne e rimuoverne i blocchi CIDR.
Quando si progettano le subnet, considerare il flusso di traffico e i requisiti di sicurezza. Collega tutte le risorse all'interno di un livello o ruolo specifico alla stessa subnet, che può fungere da limite di sicurezza.
- Larghezza di banda del load balancer
Durante la creazione del load balancer, puoi selezionare una forma predefinita che fornisca una larghezza di banda fissa oppure specificare una forma personalizzata (flessibile) in cui impostare un intervallo di larghezza di banda e consentire al servizio di ridimensionare automaticamente la larghezza di banda in base ai pattern di traffico. Con entrambi gli approcci, puoi modificare la forma in qualsiasi momento dopo aver creato il load balancer.
- Liste di sicurezza
Utilizza le liste di sicurezza per definire regole di entrata e uscita che si applicano all'intera subnet.
- Oracle MySQL Database Service
In questa architettura, CMS WordPress memorizza i dati relazionali in Oracle MySQL Database Service. Si consiglia di utilizzare la versione più recente.
Considerazioni
Quando si distribuisce WordPress in Oracle Cloud, tenere presente quanto riportato di seguito per scalabilità e disponibilità.
- Disponibilità dell'applicazione
L'applicazione WordPress viene distribuita con più pod nella distribuzione per fornire alta disponibilità.
- Disponibilità e scalabilità del servizio di database SQL personale
Il servizio MySQL Database visualizzato nell'architettura ad alta disponibilità utilizza l'opzione MySQL High Availability integrata, che crea tre istanze e le posiziona in domini di errore diversi.
Distribuire
Questa architettura di riferimento può essere distribuita e gestita dal cluster OKE senza utilizzare la console o l'interfaccia CLI OCI e automatizzata con un grafico Helm. Il grafico Helm di esempio per questa architettura di riferimento illustra come eseguire il bootstrap di una distribuzione WordPress utilizzando un sistema MySQL Database come database in un cluster Kubernetes distribuito in OCI per HA o non HA. È possibile scaricare il codice da GitHub e personalizzarlo in base alle proprie esigenze specifiche.
- Passare a GitHub - HA o GitHub - non-HA.
- Duplica o scarica il repository nel computer locale.
- Seguire le istruzioni riportate nel documento
README
.