Utilizzare OCI DevOps per distribuire i grafici Helm con le istanze Provenance e Container tramite la fase Shell

La distribuzione rapida del software è essenziale per l'esecuzione efficiente delle tue applicazioni nel cloud. Il servizio Oracle Cloud Infrastructure DevOps (OCI DevOps) offre agli sviluppatori una piattaforma di integrazione e distribuzione continue (CI/CD).

Puoi utilizzare il servizio OCI DevOps per creare, testare e distribuire facilmente software e applicazioni su Oracle Cloud. Le pipeline di creazione e distribuzione OCI DevOps riducono gli errori basati sulle modifiche e riducono il tempo dedicato alla creazione e alla distribuzione delle release.

Il servizio OCI DevOps fornisce inoltre repository Git privati per memorizzare il codice e supporta le connessioni al codice esterno repositories.Whether durante la migrazione dei carichi di lavoro su Oracle Cloud Infrastructure (OCI), da cloud in locale o di altro tipo o per lo sviluppo di nuove applicazioni su OCI, è possibile utilizzare il servizio OCI DevOps per semplificare il ciclo di vita della distribuzione del software.

Architettura

In questa architettura di riferimento, verrà distribuita una distribuzione di applicazioni cloud native utilizzando OCI DevOps. Oracle Container Engine for Kubernetes (OKE) e le istanze di container OCI vengono utilizzate come destinazione di distribuzione per OCI DevOps.

Le caratteristiche principali di questa architettura di riferimento sono:

  • Distribuisci grafico Helm con controlli di provenienza e integrità: firma di un pacchetto Helm e convalida dell'integrità utilizzando chiavi GNU Privacy Guard tramite pipeline di distribuzione.
  • Usa la fase Shell per distribuire l'applicazione in istanze contenitore OCI: la fase della shell consente di eseguire comandi personalizzati nella pipeline di distribuzione. Questa fase può essere aggiunta in qualsiasi punto della pipeline di distribuzione. In questa architettura di riferimento viene utilizzata la fase Shell per distribuire un'applicazione alle istanze contenitore OCI.
  • Attivazione dell'esecuzione basata su file della pipeline di build OCI: in OCI DevOps, un'esecuzione della build può essere attivata automaticamente quando si esegue il commit delle modifiche in un repository di codici. Utilizzando questo possiamo impostare l'esclusione e l'inclusione di un set di file / cartelle rispetto al quale le pipeline di build vengono eseguite durante una modifica del codice.
  • Eseguire fasi di build gestite utilizzando il canale di esecuzione build personalizzato: il canale di esecuzione della build personalizzato consente di impostare la OCPU e la memoria desiderate per il canale di esecuzione della build in modo da supportare le risorse necessarie per l'esecuzione delle istruzioni di build.
  • Usa Terraform con il backend di stato remoto dalla pipeline di build DevOps OCI: il bucket di storage degli oggetti OCI compatibile con S3 viene utilizzato come backend remoto per memorizzare gli stati Terraform. Terraform viene eseguito dalla pipeline di build OCI, abilitata con il principal delle risorse in modo che il client possa controllare l'accesso alle risorse in base ai criteri.

Il diagramma riportato di seguito illustra questa architettura di riferimento.



oci-devops-helm-shell-oracle.zip

L'architettura è dotata dei 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.

  • Repository codice

    I repository Git privati possono essere ospitati dal servizio OCI DevOps. È possibile memorizzare, gestire e sviluppare il codice sorgente con i repository di codici DevOps OCI.

  • Pipeline di build

    La pipeline di build definisce un set di fasi per il processo di build: creazione, test e compilazione di artifact software, consegna di artifact ai repository OCI e, facoltativamente, attivazione di una distribuzione.

  • Fase di creazione gestita

    La fase di creazione gestita, crea ed esegue il test del software con un motore di esecuzione della build gestito dal servizio DevOps OCI veloce e scalabile che esegue le istruzioni di build. In questa architettura di riferimento viene utilizzata una fase di creazione con forme predefinite (OCPU e memoria predefinite) e forme personalizzate (valori definiti dall'utente di OCPU e memoria).

  • Distribuisci fase artifact

    La fase di consegna artifact è una delle fasi della build che consentono di eseguire il push di un artifact o di un'immagine del contenitore nel Container Registry OCI o nel registro degli artifact OCI, pubblicare la fase di creazione gestita.

  • Distribuisci pipeline

    Sequenza di passi per la distribuzione di un set di artifact in un ambiente di destinazione. Una pipeline di distribuzione contiene fasi eseguite in sequenza o in parallelo.

  • Fase di distribuzione del grafico Helm

    Helm è un package manager open source per Kubernetes che offre la possibilità di condividere, creare pacchetti e distribuire software creato per Kubernetes. Il servizio DevOps di OCI supporta la distribuzione di grafici Helm in Container Engine for Kubernetes (OKE). La fase di distribuzione del grafico Helm verifica inoltre l'integrità del grafico Helm prima della distribuzione.

  • Fase di distribuzione shell

    La fase shell consente di eseguire comandi personalizzati nella pipeline di distribuzione. Questa fase può essere aggiunta in qualsiasi punto della pipeline di distribuzione.

  • istanze contenitore

    OCI Container Istanze è un servizio di calcolo serverless che consente di eseguire i contenitori in modo rapido e semplice senza gestire alcun server. Le istanze container eseguono i tuoi container su computazione serverless ottimizzata per i carichi di lavoro dei container che offrono lo stesso isolamento delle virtual machine.

  • Vault

    Oracle Cloud Infrastructure Vault consente di gestire centralmente le chiavi di cifratura che proteggono i dati e le credenziali segrete utilizzate per proteggere l'accesso alle risorse nel cloud. Puoi utilizzare il servizio Vault per creare e gestire i vault, le chiavi e i segreti.

  • Memorizzazione degli oggetti

    Il servizio Oracle Cloud Infrastructure Object Storage è una piattaforma di storage su scala Internet ad alte prestazioni che offre durabilità dei dati affidabile ed economica. Il servizio di storage degli oggetti può memorizzare una quantità illimitata di dati non strutturati di qualsiasi tipo di contenuto, inclusi dati analitici e contenuti avanzati, come immagini e video.

  • Log

    Il servizio Oracle Cloud Infrastructure Logging è un unico pannello di controllo altamente scalabile e completamente gestito per tutti i log della tua tenancy. Logging fornisce l'accesso ai log dalle risorse di Oracle Cloud Infrastructure. Questi log includono informazioni diagnostiche critiche che descrivono le prestazioni e l'accesso delle risorse.

  • Notifiche

    Utilizza il servizio Oracle Cloud Infrastructure Notifications per impostare i canali di comunicazione per pubblicare messaggi utilizzando argomenti e sottoscrizioni.

Suggerimenti

Utilizzare i seguenti suggerimenti come punto di partenza. I requisiti potrebbero essere diversi dall'architettura descritta qui.
  • 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.

  • Forme di computazione

    Questa architettura utilizza un'immagine del sistema operativo Oracle Linux con una forma flessibile E4 con risorse minime per ospitare host di computazione o nodi virtuali nei nodi del cluster OKE. Se l'applicazione ha bisogno di più memoria o memorie centrali, puoi scegliere una forma diversa.

  • Registro artifact

    Questa architettura crea un artifact per il software e la configurazione utilizzati dalla distribuzione di un gruppo di istanze, OKE e Functions. L'architettura crea un repository del registro artifact per uso interno. I file binari del software, il testo e le configurazioni di distribuzione vengono caricati e scaricati dal repository del registro artifact.

  • Registro immagine contenitore

    Questa architettura distribuisce il registro come registro Docker privato per uso interno. Le immagini Docker vengono trasferite e estratte dal registro. Inoltre, puoi utilizzare Registry come registro Docker pubblico, consentendo a qualsiasi utente con accesso a Internet e conoscenza dell'URL appropriato di estrarre immagini dai repository pubblici in Oracle Cloud.

  • Integrità e sicurezza

    In questa sezione sono disponibili diverse aree per garantire la sicurezza e l'integrità del software applicativo. Vault OCI viene utilizzato per memorizzare la cifratura del grafico di supporto e per garantire la convalida del grafico prima della distribuzione. I registri (artifact e container) garantiscono che le immagini e gli artifact dell'applicazione vengano salvati e memorizzati con la sicurezza necessaria. Numerose regole di sicurezza e le regole di instradamento necessarie vengono applicate tramite la rete cloud virtuale OCI per consentire solo il traffico di rete necessario per l'applicazione e l'infrastruttura. Inoltre, lo storage degli oggetti viene contrassegnato come privato in modo da garantire la sicurezza e il controllo del traffico.

  • Memorizzazione degli oggetti

    Lo storage degli oggetti garantisce un accesso rapido a grandi quantità di dati strutturati e non strutturati di qualsiasi tipo di contenuto, inclusi backup del database, dati analitici e contenuti avanzati, ad esempio immagini e video. Puoi memorizzare i dati in tutta sicurezza e poi recuperarli direttamente da Internet o dall'interno della piattaforma cloud. Puoi ridimensionare lo storage in modo trasparente senza alcun peggioramento a livello di prestazioni o affidabilità dei servizi. Utilizza lo storage standard per lo storage "hot" a cui devi accedere in modo rapido, immediato e frequente. Utilizzare lo storage di archivio per lo storage "freddo" che si mantiene per lunghi periodi e raramente l'accesso. Il codice applicazione viene impostato all'interno di un repository ospitato in privato. A monte di tutte le risorse necessarie, i criteri di identità OCI vengono applicati di conseguenza.

Considerazioni

Quando si utilizza il servizio OCI DevOps per distribuire una piattaforma di integrazione e distribuzione continue (CI/CD), prendere in considerazione questi fattori.

  • DevOps-Distribuzioni supportate

    DevOps supporta le distribuzioni in Oracle Container Engine for Kubernetes (OKE), host di computazione e funzioni OCI. Questa architettura viene distribuita a un cluster OKE e utilizza una fase della shell per altre destinazioni possibili. Possibilità di eseguire la distribuzione in altri endpoint in base ai requisiti specifici.

  • Artifact distribuiti

    Gli artifact da distribuire con DevOps devono trovarsi in un repository OCI Artifact Registry o Container Image Registry.

  • Raggruppamento di applicazioni

    È consigliabile raggruppare ogni applicazione e tutti i relativi microservizi in un singolo progetto.

Distribuisci

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 specifiche esigenze.

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

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

    2. Selezionare l'area in cui distribuire lo stack.
    3. Seguire i prompt visualizzati e le istruzioni per creare lo stack.
    4. Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Pianifica.
    5. Attendere il completamento del job ed esaminare 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.

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

Visualizza altro

Esaminare queste risorse aggiuntive per ulteriori informazioni sulle funzioni di questa architettura di riferimento.

Conferme

  • Author: Rahul M R