Implementa Joomla CMS su Oracle Linux con MySQL Database Service
Puoi distribuire Joomla su Oracle Linux con MySQL Database Service per fornire a utenti e aziende un'architettura scalabile e solida, basse attività di implementazione e manutenzione e accesso a una knowledge base di grandi dimensioni guidata dalla community.
Joomla, basata sullo stack LAMP, è uno dei sistemi di content management più popolari disponibili. Rilasciato sotto la licenza pubblica GNU, è libero e open-source e non richiede competenze tecniche avanzate per la configurazione e l'utilizzo.
Architettura
Puoi distribuire Joomla in una configurazione a nodo singolo o come parte di una configurazione multi-nodo ad alta disponibilità. Questa architettura di riferimento include l'automazione Terraform, compatibile con entrambe le configurazioni.
Per un'architettura ad alta disponibilità e di livello produzione, fare riferimento al diagramma riportato di seguito, che illustra uno scenario a più nodi.

Descrizione dell'illustrazione joomla-mds-multi.png
Il diagramma precedente illustra un ambiente di applicazioni ad alta disponibilità semplificato su OCI, con attenzione a due istanze di virtual machine dietro un load balancer. Queste istanze esistono in due domini di errore distinti all'interno di un dominio di disponibilità. Questa architettura utilizza il servizio di storage di file OCI; Joomla è installato in un file system di rete (NFS) condiviso. Il file system esiste in una subnet privata dedicata con un gruppo di sicurezza di rete (NSG) che consente l'accesso alla destinazione di accesso da tutte le istanze.
Il diagramma riportato di seguito mostra una semplice architettura a nodo singolo. È costituito da una distribuzione leggera, che potrebbe essere adatta a scopi di apprendimento o servire come prova di concetto.

Descrizione dell'illustrazione joomla-mds-single.png
Questa architettura a nodo singolo è un esempio di una distribuzione leggera, che potrebbe essere adatta a scopi di apprendimento o servire come prova di concetto. Include una singola istanza VM e un sistema DB MySQL standalone. L'istanza viene posizionata in una subnet pubblica e accessibile da Internet, mentre il sistema DB MySQL viene posizionato in una subnet privata. Le liste di sicurezza e le tabelle di instradamento vengono utilizzate per limitare e instradare il traffico.
- Tenancy
                           
                           Una tenancy è una partizione sicura e isolata impostata da Oracle all'interno di Oracle Cloud quando ti iscrivi a Oracle Cloud Infrastructure. È possibile creare, organizzare e amministrare le risorse in Oracle Cloud all'interno della propria tenancy. Una tenancy è sinonimo di azienda o organizzazione. 
- Criteri
                           
                           Un criterio Oracle Cloud Infrastructure Identity and Access Management specifica chi può accedere alle risorse e come. L'accesso viene concesso a livello di gruppo e compartimento. Ciò significa che è possibile scrivere un criterio che consente a un gruppo di accedere a un tipo specifico di compartimento specifico o alla tenancy. 
- Compartimenti
                           
                           I compartimenti sono partizioni logiche tra più aree all'interno di una tenancy Oracle Cloud Infrastructure. Utilizzare i compartimenti per organizzare le risorse in Oracle Cloud, controllare l'accesso alle risorse e impostare le quote di utilizzo. Per controllare l'accesso alle risorse in un determinato compartimento, puoi definire criteri che specificano gli utenti che possono accedere alle risorse e le azioni che possono eseguire. 
- Rete cloud virtuale (VCN, Virtual Cloud Network) Uno dei primi passi in OCI è l'impostazione di una rete cloud virtuale (VCN) per le risorse cloud. Una VCN è una rete definita dal software impostata nell'area OCI. Le VCN possono essere segmentate in subnet, che possono essere specifiche di un'area o di un dominio di disponibilità. Sia le subnet specifiche dell'area che quelle del dominio di disponibilità possono coesistere nella stessa VCN. Una subnet può essere pubblica o privata. 
- Domini di disponibilità
                           
                           I domini di disponibilità sono data center indipendenti e standalone all'interno di un'area geografica. Le risorse fisiche presenti in ciascun dominio di disponibilità sono isolate dalle risorse presenti negli altri domini di disponibilità, il che garantisce la tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio l'alimentazione o il raffreddamento, né la rete interna del dominio di disponibilità. Pertanto, è improbabile che un errore di un dominio di disponibilità influisca sugli altri domini di disponibilità nell'area. 
- Load balancer
                           
                           Il servizio Oracle Cloud Infrastructure Load Balancing offre la distribuzione automatica del traffico da un singolo punto di accesso a più server nel back-end. 
- Istanze di computazione
                           
                           Oracle Cloud Infrastructure Compute consente di eseguire il provisioning e la gestione degli host di computazione. Puoi avviare le istanze di computazione con forme che soddisfano i requisiti delle tue risorse (CPU, memoria, larghezza di banda della rete e storage). Dopo aver creato un'istanza di computazione, puoi accedervi in modo sicuro, riavviarla, collegare e scollegare i volumi e arrestarli quando non ne hai bisogno. 
- Gateway Internet
                           
                           Il gateway Internet consente il traffico tra le subnet pubbliche in una VCN e la rete Internet pubblica. 
- Gateway di instradamento dinamico (DRG)
                           
                           Il gateway DRG è un router virtuale che fornisce un percorso per il traffico di rete privato tra le reti on premise e i VCN e può essere utilizzato anche per instradare il traffico tra i VCN nella stessa area o tra più aree. 
- Gruppo di sicurezza di rete (NSG)
                           
                           Gli NSG fungono da firewall virtuali per le risorse cloud. Grazie al modello di sicurezza zero-trust di Oracle Cloud Infrastructure, tutto il traffico viene rifiutato e puoi controllare il traffico di rete all'interno di una VCN. Un gruppo NSG è composto da un set di regole di sicurezza in entrata e in uscita che si applicano solo a un set specificato di VNIC in una singola VCN. 
- Storage file Il servizio di storage di file di Oracle Cloud Infrastructure offre un file system di rete di livello Enterprise, durevole, scalabile, sicuro e duraturo. 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. 
Suggerimenti
- VCN
                           
                           Quando crei la VCN, determina quanti indirizzi IP servono le risorse cloud in ogni subnet. Utilizzando la notazione CIDR (Classless Inter-Domain Routing), specificare una maschera di sottorete e un intervallo di indirizzi di rete sufficientemente ampio per gli indirizzi IP richiesti. Utilizzare un intervallo di indirizzi compreso nello spazio di indirizzi IP privati standard. Selezionare un intervallo di indirizzi che non si sovrapponga alla rete in locale o a qualsiasi altra rete in modo da poter impostare una connessione tra la VCN e la rete in locale, se necessario. Durante la progettazione delle subnet, prendi in considerazione i requisiti di flusso del traffico e sicurezza. Associare tutte le istanze di computazione all'interno dello stesso livello o ruolo alla stessa subnet, che può fungere da limite di sicurezza. 
- Sicurezza
                           
                           Utilizza i criteri per limitare l'accesso alle risorse OCI di cui la tua azienda dispone e le modalità di accesso. Utilizzare Vault per una maggiore protezione delle chiavi, dei certificati e dei segreti. Il servizio di networking offre due funzionalità firewall virtuali che utilizzano regole di sicurezza per controllare il traffico a livello di pacchetto: liste di sicurezza e gruppi di sicurezza di rete (NSG). Un gruppo NSG è costituito da un set di regole di sicurezza in entrata e in uscita valide solo per un set di VNIC di tua scelta in una singola VCN. Ad esempio, puoi scegliere tutte le istanze di computazione che agiscono come server Web nel livello Web di un'applicazione a più livelli nella tua VCN. Le regole di sicurezza NSG funzionano allo stesso modo delle regole delle liste di sicurezza. Tuttavia, per l'origine o la destinazione di una regola di sicurezza NSG, è possibile specificare un gruppo NSG anziché un blocco CIDR. In questo modo, puoi scrivere facilmente le regole di sicurezza per controllare il traffico tra due gruppi NSG nella stessa VCN o il traffico all'interno di un singolo gruppo NSG. Quando si crea un sistema di database, è possibile specificare uno o più gruppi NSG. È inoltre possibile aggiornare un sistema di database esistente per utilizzare uno o più gruppi NSG. 
- Calcolo
                           
                           Scegli le forme con la combinazione di OCPU e memoria appropriata, quindi esegui il provisioning dello storage NVMe e/o a blocchi locale in base alle esigenze, per ogni istanza. Valuta la possibilità di utilizzare le forme flessibili disponibili, che offrono una maggiore flessibilità nella combinazione di OCPU e memoria. 
- Database
                           
                           Scegliere la forma Oracle MySQL Database Service basata sul carico di lavoro pianificato. Abilitare MySQL High Availability per tre nodi ridondanti. 
Considerazioni
Quando si distribuisce Joomla su Oracle Linux con MySQL Database Service, tenere in considerazione i seguenti fattori di implementazione:
- Disponibilità e scalabilità delle applicazioni In questo esempio, nell'architettura ad alta disponibilità, vengono visualizzate due istanze in domini di errore diversi all'interno dello stesso dominio di disponibilità. Si potrebbe scegliere di posizionare le istanze in domini di disponibilità diversi (nelle aree in cui sono disponibili) per ottenere una tolleranza degli errori ancora maggiore. Un approccio alternativo che rappresenta un adattamento più dinamico alle esigenze di prestazioni più complesse e variabili è l'uso di un pool di istanze e il ridimensionamento automatico. - I pool delle istanze ti consentono di eseguire il provisioning e creare più istanze di computazione in base alla stessa configurazione all'interno della stessa area.
- Il ridimensionamento automatico ti consente di regolare automaticamente il numero di istanze di computazione in un pool delle istanze in base alle metriche delle prestazioni, ad esempio l'utilizzo della CPU. Il ridimensionamento automatico ti consente di offrire prestazioni coerenti per gli utenti durante periodi di elevata domanda e di ridurre i costi durante periodi di bassa domanda.
 
- Disponibilità e scalabilità del database Il sistema 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. 
- Backup del databaseMySQL Database Service supporta due tipi di backup: backup completo di tutti i dati contenuti nel sistema di database e backup incrementale solo dei dati aggiunti o modificati dall'ultimo backup completo. I backup vengono eseguiti nei modi seguenti:- Manuale: un'azione nella console o una richiesta effettuata tramite l'API avvia il backup. I backup manuali possono essere conservati per un minimo di un giorno e per un massimo di 365 giorni. Automatico: i backup pianificati automaticamente vengono eseguiti senza l'interazione richiesta al momento della scelta dell'utente.
- I backup automatici vengono conservati per un periodo compreso tra uno e 35 giorni. Il valore di conservazione predefinito è sette giorni. Se definito, non è possibile modificare il periodo di conservazione di un backup automatico
 
- Backup di computazione Il servizio Oracle Cloud Infrastructure Block Volumes consente di eseguire backup point-in-time dei dati su un volume a blocchi. Successivamente, puoi ripristinare questi backup su nuovi volumi immediatamente o in un secondo momento. Puoi anche usare il servizio per eseguire un backup point-in-time e coerente in caso di crash di un volume di avvio senza interruzioni delle applicazioni o tempi di inattività. Le funzionalità di backup dei volumi di avvio sono uguali a quelle dei backup dei volumi a blocchi. 
- Criteri di sicurezza
                        
                        Utilizza i criteri per limitare gli utenti in grado di accedere alle risorse OCI di cui la tua azienda ha e come. 
- Sicurezza della rete
                        
                        Il servizio di networking offre due funzionalità firewall virtuali che utilizzano regole di sicurezza per controllare il traffico a livello di pacchetto: liste di sicurezza e gruppi di sicurezza di rete (NSG). Un gruppo NSG è costituito da un set di regole di sicurezza in entrata e in uscita valide solo per un set di VNIC di tua scelta in una singola VCN. Ad esempio, puoi scegliere tutte le istanze di computazione che agiscono come server Web nel livello Web di un'applicazione multitier nella tua VCN. Le regole di sicurezza NSG funzionano allo stesso modo delle regole delle liste di sicurezza. Tuttavia, per l'origine o la destinazione di una regola di sicurezza NSG, è possibile specificare un gruppo NSG anziché un blocco CIDR. In questo modo, puoi scrivere facilmente le regole di sicurezza per controllare il traffico tra due gruppi NSG nella stessa VCN o il traffico all'interno di un singolo gruppo NSG. Quando si crea un sistema di database, è possibile specificare uno o più gruppi NSG. È inoltre possibile aggiornare un sistema di database esistente per utilizzare uno o più gruppi NSG. In questi esempi, le istanze vengono visualizzate come esistenti in una subnet pubblica. Considerare la possibilità di inserirli in una subnet privata per una maggiore sicurezza. In tal caso, per accedere alle istanze è necessario un bastion. 
Distribuzione
Il codice Terraform per questa architettura di riferimento è disponibile come stack di esempio in Oracle Cloud Infrastructure Resource Manager. È inoltre possibile scaricare il codice da GitHub e personalizzarlo in base alle proprie esigenze specifiche.
- Distribuire utilizzando lo stack di esempio in Oracle Cloud Infrastructure Resource Manager:
                           - Fare clic su  Se non si è ancora collegati, immettere la tenancy e le credenziali utente. 
- Selezionare l'area in cui distribuire lo stack.
- Seguire i prompt visualizzati e le istruzioni per creare lo stack.
- Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Piano.
- Attendere il completamento del processo e rivedere il piano.
                                 Per apportare modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Quindi eseguire di nuovo l'azione Piano. 
- Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
 
- Fare clic su 
- Distribuzione mediante il codice Terraform in GitHub:
                           - Andare a GitHub.
- Duplicare o scaricare il repository nel computer locale.
- Seguire le istruzioni riportate nel documento README.
 
Visualizza altro
Scopri di più sulle best practice di Oracle Cloud Infrastructure, Oracle MySQL Database Service e altre distribuzioni CMS nell'infrastruttura OCI esaminando queste risorse aggiuntive:
- Struttura sulle migliori prassi per Oracle Cloud Infrastructure
- Panoramica di MySQL Database Service
- Scopri di più sulla distribuzione di MySQL Database Service in Oracle Cloud
- Impostare un CMS WordPress connesso a un database MySQL nel cloud
- Distribuire Drupal CMS su Oracle Linux con MySQL Database Service
- Implementa Moodle LMS su Oracle Linux con MySQL Database Service
- Distribuisci Magento eCommerce su Oracle Linux con MySQL Database Service