Isola ambienti di sviluppo multilivello e tra più aree mediante compartimenti

Sfrutta i compartimenti per creare un modello per ambienti di test e sviluppo multilivello e interregionale sicuri che puoi utilizzare per creare soluzioni aziendali su Oracle Cloud Infrastructure.

Per implementare progetti mission critical, le organizzazioni in genere gestiscono ambienti separati per lo sviluppo e il test prima di rilasciare il progetto in un ambiente di produzione. Un ambiente consente di definire e gestire i servizi Oracle Cloud PaaS e Oracle Cloud Infrastructure come un'unica entità. È importante disporre delle risorse, della struttura e della progettazione appropriate in tutti gli ambienti per gestirli in modo efficiente.

I compartimenti sono una funzione potente di Oracle Cloud Infrastructure (OCI) per l'isolamento della sicurezza e il controllo degli accessi. Attraverso l'applicazione delle policy, offrono il giusto livello di accesso in base ai parametri definiti dall'organizzazione per la gestione delle risorse e l'amministrazione delegata.

Architettura

Questa architettura di riferimento mostra come utilizzare i compartimenti per progettare e configurare diversi ambienti su Oracle Cloud Infrastructure e come eseguire il provisioning delle risorse per supportare lo sviluppo di software e il ciclo di vita delle release. L'architettura utilizza un'applicazione Web a più livelli come punto di riferimento durante l'allocazione di risorse tra organizzazioni diverse all'interno di un'azienda per illustrare l'implementazione.

Il diagramma seguente descrive questa architettura.



architettura oci-dev-env-oracle.zip

Questa architettura contiene i componenti elencati di seguito.

  • Tenancy

    Una tenancy è una partizione sicura e isolata che Oracle imposta all'interno di Oracle Cloud quando ti iscrivi a Oracle Cloud Infrastructure. Puoi creare, organizzare e amministrare le tue risorse in Oracle Cloud all'interno della tua tenancy. Una tenancy è sinonimo di azienda o organizzazione. In genere, un'azienda avrà una singola tenancy e ne rifletterà la struttura organizzativa all'interno di tale tenancy. Una singola tenancy in genere è associata a una singola sottoscrizione e una singola sottoscrizione in genere ha una sola tenancy.

  • Area

    Un'area Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, definiti domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (in tutti i paesi o anche in continenti).

  • Compartimento

    I compartimenti sono partizioni logiche tra più aree all'interno di una tenancy di Oracle Cloud Infrastructure. Usare 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, definisci i criteri che specificano chi può accedere alle risorse e quali azioni può eseguire.

  • Criterio

    Un criterio di Oracle Cloud Infrastructure Identity and Access Management specifica chi può accedere a quali risorse e come. L'accesso viene concesso a livello di gruppo e compartimento. Ciò significa che puoi scrivere un criterio che concede a un gruppo un tipo specifico di accesso all'interno di un compartimento specifico o alla tenancy.

  • Load balancer

    Il servizio Oracle Cloud Infrastructure Load Balancing offre la distribuzione automatica del traffico da un unico punto di accesso a più server nel back-end.

  • Calcolo

    Il servizio Oracle Cloud Infrastructure Compute consente di eseguire il provisioning e la gestione degli host di computazione nel cloud. Puoi avviare le istanze di computazione con forme che soddisfano i requisiti delle risorse per CPU, memoria, larghezza di banda di rete e storage. Dopo aver creato un'istanza di computazione, puoi accedere a tale istanza in modo sicuro, riavviarla, collegare e scollegare volumi e terminarla quando non hai più bisogno di tale istanza.

  • Autonomous Transaction Processing

    Oracle Autonomous Transaction Processing è un servizio di database a gestione autonoma, protezione automatica e funzionalità di riparazione ottimizzato per i carichi di lavoro di elaborazione delle transazioni. Non è necessario configurare o gestire hardware né installare software. Oracle Cloud Infrastructure gestisce la creazione del database, nonché il backup, l'applicazione di patch, l'aggiornamento e l'ottimizzazione del database.

Suggerimenti

Utilizzare i seguenti suggerimenti come punto di partenza. I requisiti potrebbero essere diversi.

  • VCN

    Quando crei una rete VCN, determina il numero di blocchi CIDR necessari e la dimensione di ogni blocco in base al numero di risorse che intendi collegare alle subnet nella VCN. Usa blocchi CIDR che si trovano nello 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) a cui si intende impostare connessioni private.

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

    Quando si progettano le subnet, tenere in considerazione il flusso di traffico e i requisiti di sicurezza. Collegare tutte le risorse all'interno di un livello o ruolo specifico alla stessa subnet, che può essere utilizzata come limite di sicurezza.

    Utilizzare le subnet regionali.

  • Compartimento

    Per impostazione predefinita, qualsiasi tenancy di Oracle Cloud dispone di un compartimento radice predefinito denominato dopo la tenancy stessa. L'amministratore della tenancy (amministratore predefinito del compartimento radice) è qualsiasi utente membro del gruppo di amministratori predefinito.

    Per questa architettura creiamo due compartimenti di livello superiore, HR e Sales, per due organizzazioni diverse nel compartimento radice. Due gruppi gestiscono questi compartimenti: gli amministratori HR e gli amministratori vendite. Nell'ambito del compartimento di livello superiore HR, creiamo i compartimenti secondari HR-Prod, HR-Dev, HR-Staging e HR-Test. Questi compartimenti sono gestiti rispettivamente dai gruppi HR-Prod-Admins, HR-Dev-Admins, HR-Staging-Admins e HR-Test-Admins. Nell'ambito del compartimento di livello superiore Vendite, vengono creati i compartimenti secondari Vendite-Prod, Vendite-Dev, Vendite-Staging e Test vendite. Questi compartimenti sono gestiti rispettivamente da Sales-Prod-Admins, Sales-Dev-Admins, Sales-Staging-Admins e Sales-Test-Admins.

  • Criterio

    Il controllo dell'accesso al compartimento è regolato dai criteri. I criteri sono composti dalle istruzioni che associano un oggetto (sempre un gruppo di utenti) alle azioni sulle risorse selezionate (o la famiglia di risorse) all'interno di una tenancy o un compartimento. È possibile qualificare ulteriormente l'istruzione dei criteri aggiungendo condizioni che migliorano ulteriormente il controllo dell'accesso.

    In questa implementazione, deleghiamo l'amministrazione delle risorse di Oracle Cloud Infrastructure Compute attraverso criteri e compartimenti per i compartimenti e i compartimenti secondari di livello superiore. L'obiettivo è far funzionare ogni compartimento in modo indipendente e perfettamente isolato l'uno dall'altro.

Considerazioni

Quando si distribuisce questa architettura di riferimento, tenere presente quanto riportato di seguito.

  • Scalabilità

    Oracle Cloud Infrastructure supporta una gerarchia di compartimenti fino a sei livelli. L'amministratore di un compartimento dispone di tutti i poteri sui relativi compartimenti nidificati. In questa implementazione, utilizziamo tre livelli.

    Le risorse di Oracle Cloud Infrastructure, come Oracle Cloud Infrastructure Compute, il servizio di bilanciamento del carico e Autonomous Transaction Processing vengono fornite in ogni compartimento tra aree e ambienti diversi. In questo esempio, le risorse vengono allocate per un'applicazione Web semplice come punto di riferimento per il ciclo di vita di uno sviluppo software e di una release.

    Oracle Cloud Infrastructure Compute offre la funzione di ridimensionamento automatico che ti consente di offrire prestazioni coerenti per gli utenti finali durante i periodi di alta domanda e ti aiuta a ridurre i costi durante i periodi di bassa domanda. È inoltre possibile utilizzare la funzione di ridimensionamento automatico per Oracle Autonomous Transaction Processing. Quando il ridimensionamento automatico è abilitato, se l'applicazione in uso il database utilizza automaticamente un numero maggiore di risorse a livello di CPU e I/O, in base alle esigenze, senza alcun intervento manuale. Il load balancer offre supporto per la modifica dinamica della larghezza di banda di una forma.

  • Disponibilità

    In genere, si distribuisce un'applicazione nell'area in cui è più utilizzata, perché l'utilizzo di risorse nelle vicinanze è più rapido rispetto all'uso di risorse distanti. I domini di disponibilità all'interno della stessa area si connettono tra loro utilizzando una rete a bassa latenza e a elevata larghezza di banda. Questa rete offre connettività ad alta disponibilità per Internet e per l'apparecchiatura on premise in modo da poter creare sistemi replicati in più domini di disponibilità, sia per l'alta disponibilità che per il recupero da errori irreversibili.

    Oracle Autonomous Transaction Processing elimina i tempi di inattività del sito mantenendo una copia remota in tempo reale di un database di produzione e passando automaticamente dal database primario alla copia remota mediante Oracle Data Guard.

  • Gestibilità
    Poiché i compartimenti segregano la gestione delle risorse, puoi condividere le risorse tra i vari compartimenti. Ad esempio, per condividere un'istanza di computazione da HR-Dev a Sales-Dev, hai a disposizione due opzioni:
    • Creare un'immagine personalizzata del gruppo HR-Dev-Admins, esportare l'immagine in Oracle Cloud Infrastructure Object Storage e renderla disponibile per il gruppo Sales-Dev-Admins.
    • Inoltre, puoi esportare il volume di avvio dell'istanza in HR-Dev nel compartimento Vendite-Dev.

    Come amministratore, pianifica in anticipo come partizionare gli intervalli CIDR disponibili in varie aree dell'organizzazione. Assicurarsi che i VCN non abbiano intervalli CIDR sovrapposti. Questa pianificazione impedisce il peering inavvertito tra due VCN provenienti da compartimenti diversi.

    Infine, gestisci l'architettura automatizzando l'infrastruttura e l'allocazione delle risorse con Terraform.

  • Sicurezza

    Configurare gli elenchi di sicurezza, che fungono da firewall virtuali, in modo che le risorse in compartimenti diversi possano comunicare. Ad esempio, un'istanza di database nel compartimento HR può connettersi a un'istanza di database nel compartimento vendite, purché le liste di sicurezza applicabili siano configurate correttamente.

    Esporre un endpoint privato per il database Oracle Autonomous Transaction Processing allegando il database a una subnet privata.

    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ò essere utilizzata come limite di sicurezza. Aggiungi tabelle di instradamento e gateway (router virtuali) alla VCN per gestire il traffico, a seconda del tipo di accesso necessario. Ad esempio, potrebbe essere necessario connettersi tramite la rete Internet pubblica, una rete Internet privata, una rete on premise, un altro servizio Oracle o una rete VCN diversa nella tenancy.

    Prendere in considerazione l'utilizzo di Oracle Cloud Infrastructure Compute Web Application Firewall (WAF) per proteggere l'applicazione dal traffico dannoso dalla rete Internet pubblica. Questa architettura si basa sui criteri che limitano chi può accedere a quali risorse Oracle Cloud Infrastructure Compute all'interno di un compartimento specifico.

Distribuire

Il codice Terraform per la creazione di ambienti compartimento a più livelli per lo sviluppo di soluzioni aziendali è disponibile in GitHub.

  1. Vai a GitHub.
  2. Duplicare o scaricare il repository sul computer locale.
  3. Seguire le istruzioni riportate nel documento README.

Log modifiche

Questo log elenca le modifiche significative: