Distribuire applicazioni cloud native che utilizzano MySQL in Oracle Cloud Infrastructure

Puoi utilizzare Oracle Container Engine for Kubernetes (OKE), Oracle Cloud Infrastructure Registry e Oracle MySQL Database Service (MDS) per sviluppare e distribuire applicazioni cloud native e per eseguire la migrazione delle applicazioni legacy nel cloud.

OKE è un servizio completamente gestito, scalabile e ad alta disponibilità che puoi utilizzare per distribuire le applicazioni gestite in container nel cloud. Utilizzare OKE quando il team di sviluppo desidera creare, distribuire e gestire in modo affidabile le applicazioni cloud native.

Puoi utilizzare Oracle Cloud Infrastructure Registry come registro Docker privato per uso interno, push e pull delle immagini Docker da e verso il registro utilizzando l'API Docker V2 e l'interfaccia della riga di comando Docker standard (CLI).

MDS è un servizio nativo Oracle Cloud Infrastructure completamente gestito che automatizza task come backup e recupero, nonché l'applicazione di patch al database e al sistema operativo.

L'utilizzo di MDS su Oracle Cloud Infrastructure Compute offre i seguenti vantaggi:

  • Distribuisci MySQL in pochi minuti.
  • Approfitta di un servizio OCI completamente gestito.
  • Concentrati sullo sviluppo, non sull'amministrazione dell'infrastruttura.
  • Usa strumenti e funzionalità più recenti per le app moderne.
  • Scalabilità in base alle vostre esigenze.
  • Evita l'ombreggiatura dell'IT.

Architettura

Questa architettura di riferimento contiene un livello di database ad alta disponibilità, creato con MDS e un cluster OKE.

Il diagramma riportato di seguito mostra questa architettura di riferimento.

Segue la descrizione dell'architettura-kubernetes-mysql-oci.png
Descrizione dell'illustrazione Architecture-kubernetes-mysql-oci.png

architettura-kubernetes-mysql-oci-oracle.zip

Quando si distribuisce MDS in una subnet di dominio attivo, MDS distribuirà un cluster di istanze MySQL con una sola istanza in ogni dominio di errore per fornire la ridondanza. Un'istanza è quella principale e le altre due istanze sono i secondi. Il database primario include un singolo endpoint che consente letture e scritture nel database, mentre i secondiari ricevono i dati replicati dal database primario. L'accesso diretto ai secondi non è consentito.

In caso di errore o switchover manuale, uno dei secondi diventa il nuovo primario e l'endpoint viene reindirizzato a esso. Ciò significa che l'indirizzo IP dell'endpoint non viene mai modificato e non è necessario aggiornare l'applicazione. OCI gestisce gli aspetti di alta disponibilità del database.

L'architettura include un cluster OKE, compatibile con Oracle Cloud Infrastructure Registry per accogliere le applicazioni cloud native sviluppate e distribuibili.

L'architettura dispone dei seguenti componenti:

  • Host Bastion

    L'host bastion è un'istanza di computazione che funge da punto di accesso controllato e sicuro alla topologia dall'esterno del cloud. Il provisioning dell'host del bastion viene in genere eseguito in una zona demilitarizzata (DMZ, Demilitarized Zone). Consente di proteggere le risorse sensibili posizionandole in reti private a cui non è possibile accedere direttamente dall'esterno del cloud. La topologia dispone di un singolo punto di ingresso noto che è possibile monitorare e controllare regolarmente. Pertanto, è possibile evitare di esporre i componenti più sensibili della topologia senza comprometterne l'accesso.

  • Container Engine for Kubernetes

    Oracle Cloud Infrastructure Container Engine for Kubernetes è un servizio completamente gestito, scalabile e ad alta disponibilità che puoi utilizzare per distribuire le tue applicazioni gestite in container nel cloud. Puoi specificare le risorse di computazione necessarie alle tue applicazioni e Container Engine for Kubernetes eseguirne il provisioning su Oracle Cloud Infrastructure in una tenancy esistente. Container Engine for Kubernetes utilizza Kubernetes per automatizzare la distribuzione, la scalabilità e la gestione delle applicazioni gestite in container in vari cluster di host.

  • Servizio di database Oracle MySQL

    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 per e disponibile in esclusiva in OCI, Oracle MySQL Database Service è il 100% creato, gestito e supportato 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 sofisticata analitica in tempo reale direttamente su un database MySQL operativo.

  • Registro

    Oracle Cloud Infrastructure Registry è un registro gestito da Oracle che consente di semplificare il flusso di lavoro sviluppo-produzione. Il registro semplifica la memorizzazione, la condivisione e la gestione degli artifact di sviluppo, come le immagini Docker. L'architettura ad alta disponibilità e scalabile di Oracle Cloud Infrastructure garantisce che puoi distribuire e gestire le tue applicazioni in modo affidabile.

  • Area

    Un'area 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 le grandi distanze possono separarle (tra paesi o addirittura continenti).

  • Rete cloud virtuale (VCN) e subnet

    Una VCN è una rete personalizzabile definita dal software che si imposta in un'area Oracle Cloud Infrastructure. Analogamente alle reti di data center tradizionali, i VCN offrono un controllo completo sull'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. Puoi suddividere una VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è composta da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. Puoi modificare la dimensione di una subnet dopo la creazione. Una subnet può essere pubblica o privata.

  • Domini di disponibilità

    I domini di disponibilità sono data center indipendenti e autonomi all'interno di un'area geografica. Le risorse fisiche presenti in ogni dominio di disponibilità sono isolate dalle risorse presenti negli altri domini di disponibilità, garantendo quindi la tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio alimentazione o raffreddamento, o la rete del dominio di disponibilità interna. È pertanto improbabile che l'eventuale guasto di un dominio di disponibilità influenzi gli altri domini di disponibilità nell'area.

  • Domini di errore

    Un dominio di errore è un raggruppamento di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore, dotati di alimentazione e hardware indipendenti. Quando si distribuiscono le risorse su più domini di errore, le applicazioni possono tollerare l'errore fisico del server, la manutenzione del sistema e gli errori di alimentazione all'interno di un dominio di errore.

  • Gateway di instradamento dinamico (DRG)

    Il gateway DRG è un router virtuale che fornisce un percorso per il traffico di rete privato tra una VCN e una rete esterna all'area, ad esempio una VCN in un'altra area Oracle Cloud Infrastructure, una rete on premise o una rete in un altro provider cloud.

  • Gateway del servizio

    Il gateway di servizi fornisce l'accesso da una VCN ad altri servizi, ad esempio Oracle Cloud Infrastructure Object Storage. Il traffico dalla VCN al servizio Oracle viaggia su fabric di rete Oracle e non passa mai su Internet.

  • Gateway Internet

    Il gateway Internet consente il traffico tra le subnet pubbliche in una VCN e la rete Internet pubblica.

  • Lista di sicurezza

    Per ogni subnet, puoi creare regole di sicurezza che specifichino l'origine, la destinazione e il tipo di traffico che devono essere consentiti verso e dall'esterno.

  • Tabella di instradamento

    Le tabelle di instradamento virtuale contengono regole per instradare il traffico dalle subnet alle destinazioni esterne a una VCN, in genere attraverso i gateway.

Suggerimenti

I requisiti potrebbero essere diversi dall'architettura descritta qui. Utilizzare i seguenti suggerimenti come punto di partenza.

  • Host Bastion

    Utilizzare la forma VM.Standard.E4.Flex con una CPU, 1 GB di memoria e il sistema operativo Oracle Linux più recente.

  • Cluster OKE

    Utilizzare l'opzione Creazione personalizzata dalla console per specificare una VCN e una subnet per la distribuzione. Creare un cluster a tre nodi e scegliere VM.Standard.E4.Flex come forma iniziale. Per distribuzioni più grandi, puoi utilizzare una dimensione cluster più grande con una forma di computazione più elevata.

  • Forma del sistema DB

    Questa architettura utilizza l'alta disponibilità in MDS per fornire tre server MySQL distribuiti nei domini di errore. Per un carico di lavoro leggero, si consiglia di utilizzare MySQL.VM.Standard.E3.1.8GB.HA. Puoi utilizzare forme di dimensioni maggiori per i carichi di lavoro più impegnativi.

  • Connessione a MDS

    È possibile accedere a MDS direttamente con il client MySQL o una shell MySQL installata nelle VM o nei container delle applicazioni.

  • Storage database MDS

    Le prestazioni dello storage del database MDS si ridimensionano con la dimensione di storage selezionata per il sistema DB. Impossibile limitare o modificare le operazioni IOPS di storage MDS. Devi eseguire il provisioning della dimensione di storage in base ai requisiti in termini di dimensioni e prestazioni dei dati. MDS utilizza l'opzione Prestazioni superiori del servizio per volumi a blocchi su iSCSI. I risultati finali delle prestazioni possono variare in base a forme e scenari diversi.

  • Registro contenitore

    Oracle gestisce il registro di sistema, in modo da non dover scegliere dimensioni o altre opzioni. Si consiglia di creare un registro privato per le procedure ottimali di sicurezza.

  • VCN

    Quando crei una rete 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. Usare i blocchi CIDR che si trovano all'interno dello spazio di indirizzi IP privati standard.

    Selezionare i blocchi CIDR che non si sovrappongono ad altre reti (in Oracle Cloud Infrastructure, nel data center on premise o in un altro provider cloud) in cui si desidera impostare connessioni private.

    Dopo aver creato una VCN, puoi modificare, aggiungere e rimuovere i relativi blocchi CIDR.

    Quando si progettano le subnet, considerare i requisiti di flusso di traffico e sicurezza. Collegare tutte le risorse all'interno di un livello o ruolo specifico alla stessa subnet, che può fungere da limite di sicurezza.

Considerazioni

  • Scalabilità

    Puoi ridimensionare MySQL in verticale modificando la forma VM di ciascun nodo di computazione. L'uso di una forma con un conteggio di memorie centrali più elevato aumenta la memoria e la larghezza di banda di rete allocata all'istanza di computazione.

  • Disponibilità applicazioni

    Questa architettura utilizza l'alta disponibilità in MDS per distribuire le istanze di computazione tra più domini di errore, che rimuove i singoli punti di errore e garantisce la ridondanza.

  • Costo

    Selezionare la forma VM in base alle memorie centrali, alla memoria e alla larghezza di banda di rete necessarie per il database. È possibile iniziare con una forma a core singolo. Se hai bisogno di un maggior numero di prestazioni, memoria o larghezza di banda della rete per il nodo dell'applicazione o del database, puoi modificare la forma VM in un secondo momento.

Distribuisci

Il codice Terraform per questa architettura di riferimento è disponibile come stack di esempio in Oracle Cloud Infrastructure Resource Manager. Puoi anche scaricare il codice da GitHub e personalizzarlo in base ai tuoi requisiti specifici.

  • Distribuire utilizzando lo stack di esempio in Oracle Cloud Infrastructure Resource Manager:
    1. Fare clic su Distribuisci su Oracle Cloud

      Se non si è già connessi, immettere le credenziali della tenancy e dell'utente.

    2. Rivedere e accettare i termini e le condizioni.
    3. Selezionare l'area in cui distribuire lo stack.
    4. Seguire i prompt visualizzati e le istruzioni per creare lo stack.
    5. Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Plan.
    6. Attendere il completamento del job e rivedere il piano.

      Per apportare eventuali modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Eseguire quindi di nuovo l'azione Piano.

    7. Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
  • Distribuiscilo utilizzando il codice Terraform in GitHub:
    1. Visita GitHub.
    2. Copiare o scaricare il repository sul computer locale.
    3. Seguire le istruzioni riportate nel documento README.

Log delle modifiche

Questo log elenca le modifiche significative: