Ridimensionamento automatico di un'applicazione Web bilanciata per il caricamento

Per eseguire le applicazioni Web nel cloud, è necessario disporre di un'infrastruttura affidabile e sicura, di una topologia elastica e facile da gestire e di una fatturazione basata sull'uso. Una funzione Oracle Cloud che soddisfa tutti questi requisiti è la ridimensionamento automatico.

Il ridimensionamento automatico garantisce che le risorse nel cloud vengano utilizzate in modo efficiente e disponibile quando necessario. È possibile configurare la distribuzione cloud per regolare automaticamente le risorse di calcolo in base alle metriche delle prestazioni, ad esempio l'utilizzo della CPU. Gli utenti hanno prestazioni coerenti anche quando il carico è elevato. E i vostri costi sono proporzionalmente bassi durante i periodi di bassa domanda.

Architettura

Questa architettura di riferimento mostra una topologia a 3 livelli composta da un load balancer (LB), un livello Web di ridimensionamento automatico e un database altamente disponibile.

Tutte le risorse vengono distribuite in un singolo dominio di disponibilità in un'area di Oracle Cloud Infrastructure. Il livello LB, il livello Web e il livello di database sono isolati in subnet separate all'interno di un singolo VCN. I gruppi di sicurezza di rete (NSG) fungono da firewall per regolare il traffico di rete da e verso le risorse di ciascun livello. Una tabella di instradamento collegata a ciascuna subnet contiene regole per indirizzare il traffico verso destinazioni esterne a VCN.

Il seguente diagramma illustra l'architettura di riferimento.



ridimensionamento automatico-oracle.zip

Questa architettura ha i seguenti componenti:

  • 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 vaste distanze possono separarle (tra paesi o addirittura continenti).

    Tutte le risorse di questa architettura si trovano in un'unica regione.

  • Domini di disponibilità

    I domini di disponibilità sono data center indipendenti e autonomi all'interno di un'area. Le risorse fisiche in ogni dominio di disponibilità sono isolate dalle risorse negli altri domini di disponibilità, il che fornisce tolleranza agli errori. I domini di disponibilità non condividono infrastrutture quali l'alimentazione o il raffreddamento o la rete di dominio di disponibilità interna. È quindi improbabile che un errore in un dominio di disponibilità influenzi gli altri domini di disponibilità nell'area.

    Le risorse di questa architettura vengono distribuite in un singolo dominio di disponibilità.

  • Domini di errore

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

    Le risorse di ciascun livello di questa architettura vengono distribuite su più domini di errore.

  • Rete cloud virtuale (VCN) e subnet

    Un VCN è una rete customizzabile e definita dal software impostata in un'area Oracle Cloud Infrastructure. Come le tradizionali reti di data center, i VCN ti danno il controllo completo sul tuo ambiente di rete. Un VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo la creazione di VCN. È possibile segmentare un 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 in VCN. È possibile modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.

    Il bilanciamento del carico e i livelli Web in questa architettura utilizzano subnet pubbliche separate. Il database è collegato a una subnet privata.

  • Load balancer

    Il servizio Oracle Cloud Infrastructure Load Balancing fornisce la distribuzione automatica del traffico da un singolo punto di accesso a più server nel backend.

  • Gruppi 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.

    I NSG separati vengono utilizzati per le risorse in ogni livello di questa architettura.

  • Tabelle instradamento

    Le tabelle di instradamento virtuale contengono regole per instradare il traffico dalle subnet alle destinazioni al di fuori di un VCN, in genere tramite gateway.

  • Gateway Internet

    Il gateway Internet consente il traffico tra le subnet pubbliche in un VCN e Internet pubblico.

  • Configurazione istanza

    Una configurazione dell'istanza è un modello che definisce le impostazioni da utilizzare durante la creazione delle istanze di calcolo, inclusi dettagli quali l'immagine di base, la forma e i metadati. È inoltre possibile specificare le risorse associate per l'istanza, ad esempio gli allegati al volume a blocchi e la configurazione di rete.

  • Pool di istanze

    Un pool di istanze è un gruppo di istanze all'interno di un'area create dalla stessa configurazione di istanza e gestite da un gruppo.

  • Ridimensionamento automatico

    Il ridimensionamento automatico consente di regolare automaticamente il numero di istanze di calcolo in un pool di istanze in base alle metriche delle prestazioni, ad esempio l'utilizzo della CPU.

    Quando il pool di istanze viene ridimensionato o inserito, il set di backend del load balancer associato viene aggiornato automaticamente.

  • Autonomous Transaction Processing

    Oracle Autonomous Transaction Processing è un servizio di database self-driving, self-securing e self-repairing ottimizzato per i carichi di lavoro di elaborazione delle transazioni. Non è necessario configurare o gestire hardware o installare software. Oracle Cloud Infrastructure gestisce la creazione del database, nonché il backup, l'applicazione di patch, l'aggiornamento e il tuning del database.

Suggerimenti

I requisiti potrebbero differire dall'architettura descritta qui. Utilizzare i suggerimenti riportati di seguito come punto di partenza.

  • VCN

    Quando si crea un VCN, determinare il numero di blocchi CIDR richiesti e la dimensione di ciascun blocco in base al numero di risorse che si prevede di allegare alle subnet in VCN. Utilizzare blocchi CIDR all'interno dello spazio degli indirizzi IP privati standard.

    Selezionare blocchi CIDR che non si sovrappongono a nessun'altra rete (in Oracle Cloud Infrastructure, nel data center in locale o in un altro provider cloud) a cui si intende impostare connessioni private.

    Dopo aver creato un VCN, è possibile modificare, aggiungere e rimuovere i blocchi CIDR.

    Quando si progettano le subnet, prendere in considerazione il flusso di traffico e i requisiti di sicurezza. Allegare tutte le risorse all'interno di uno specifico livello o ruolo alla stessa subnet, che può fungere da limite di sicurezza.

    Utilizzare le subnet regionali.

  • Pool di istanze

    Se non ci sono limitazioni, includere tutti i domini di disponibilità disponibili nel pool.

  • Configurazione istanza

    Scegliere le forme di istanza che offrono il miglior rapporto prestazioni/costo e soddisfano i requisiti minimi del carico di lavoro.

  • Configurazione di ridimensionamento automatico

    Valutare i requisiti di risorse dell'applicazione e utilizzare tali informazioni per definire i limiti di ridimensionamento e il funzionamento di raffreddamento durante la scalabilità. Determina il costo massimo del pool di istanze.

Considerazioni

Quando si distribuisce uno stack di applicazioni a più livelli, prendere in considerazione i seguenti fattori:

  • Scalabilità del database

    È possibile scalare manualmente il numero di core CPU del database su o giù in qualsiasi momento. La funzione di ridimensionamento automatico dei database autonomi consente al database di utilizzare fino a tre volte il numero di core CPU corrente in qualsiasi momento. Con l'aumentare della domanda, il ridimensionamento automatico aumenta automaticamente il numero di core in uso. I database autonomi consentono di scalare la capacità di memorizzazione in qualsiasi momento senza compromettere la disponibilità o le prestazioni.

  • Disponibilità del database

    Il diagramma di architettura mostra un singolo database Oracle Autonomous Transaction Processing. Durante la distribuzione dell'architettura, è possibile abilitare Oracle Autonomous Data Guard per eseguire il provisioning e la gestione di un database in standby.

  • Disponibilità applicazione

    I domini di errore forniscono la resilienza all'interno di un dominio di disponibilità. Ove possibile, considerare la possibilità di distribuire le risorse su più domini di disponibilità o su più aree.

  • Controllo dell'accesso

    Utilizzare i criteri per limitare chi può accedere alle risorse nel cloud e alle azioni che possono eseguire.

  • Prestazioni

    La dimensione del pool può essere scalata automaticamente o in uscita, ma è importante conoscere il comportamento dell'applicazione in modo da ottimizzare il criterio di ridimensionamento automatico. I limiti delle risorse possono influire sulla capacità del pool di eseguire lo scale out.

Distribuisci

Il codice richiesto per distribuire questa architettura di riferimento è disponibile in GitHub. È possibile estrarre il codice in Oracle Cloud Infrastructure Resource Manager con un solo clic, creare lo stack e distribuirlo. In alternativa, scaricare il codice da GitHub nel computer, personalizzare il codice e distribuire l'architettura utilizzando Terraform CLI.

  • Distribuisci utilizzando Oracle Cloud Infrastructure Resource Manager:
    1. Fare clic su Distribuisci in Oracle Cloud

      Se non si è già connessi, immettere la tenancy e le credenziali utente.

    2. Rivedere e accettare i termini e le condizioni.
    3. Selezionare l'area in cui distribuire lo stack.
    4. Seguire le istruzioni e i prompt sullo schermo per creare lo stack.
    5. Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Piano.
    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 nuovamente l'azione Piano.

    7. Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
  • Distribuire utilizzando Terraform CLI:
    1. Andare a GitHub.
    2. Scaricare o clonare il codice sul computer locale.
    3. Seguire le istruzioni contenute nel file README.

Log delle modifiche

Questo log elenca solo le modifiche significative: