Crea una pipeline di distribuzione continua utilizzando Oracle Cloud Infrastructure DevOps

La distribuzione rapida di software è essenziale per eseguire le tue applicazioni nel cloud in modo efficiente. Oracle Cloud Infrastructure (OCI) DevOps offre un'esperienza di distribuzione continua end-to-end agli sviluppatori. OCI DevOps include la distribuzione delle pipeline per automatizzare il tuo processo continuo di distribuzione del software (CD) alle piattaforme OCI: Container Engine for Kubernetes (OKE), Functions e le istanze di computazione.

L'automazione delle release del software con la distribuzione della pipeline aumenta la produttività degli sviluppatori e consente di rilasciare le funzioni con maggiore frequenza e meno errori. Evita i tempi di inattività durante le distribuzioni e automatizza la complessità dell'aggiornamento delle applicazioni. OCI DevOps può essere utilizzato da entrambi i clienti che eseguono la migrazione di carichi di lavoro da cloud on premise o da altri cloud a OCI e dai clienti che sviluppano nuove applicazioni nell'infrastruttura OCI.

Architettura

In questa architettura di riferimento, viene distribuita un'applicazione Hello World di esempio mediante OCI DevOps. L'applicazione Hello World è già stata creata e pronta per la distribuzione. L'applicazione viene distribuita in tre ambienti di destinazione diversi: OKE, istanze di computazione e funzioni. Per semplificare il processo, Terraform viene utilizzato per l'automazione dell'infrastruttura.

Il diagramma riportato di seguito illustra questa architettura di riferimento.

Segue la descrizione di dev-ops-deployment-pipeline.png
Descrizione dell'illustrazione dev-ops-deployment-pipeline.png

deployment-pipeline-devops-arch-oracle.zip

Questa architettura dispone dei componenti riportati di seguito.
  • Area

    Un'area OCI è un'area geografica localizzata contenente 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).

    L'architettura utilizza un'unica area.

  • DevOps progetto

    Un progetto DevOps è un raggruppamento logico di risorse necessarie per implementare il carico di lavoro di integrazione e distribuzione continue (CI/CD). Le risorse DevOps possono essere artifact, pipeline di distribuzione e ambienti. I progetti DevOps semplificano l'abilitazione di log, monitoraggio e notifiche per tutte le risorse DevOps.

  • Pipeline di distribuzione

    Una pipeline di distribuzione contiene i requisiti che devono essere soddisfatti per distribuire un set di artifact a un ambiente. Le pipeline contengono fasi, ovvero i componenti di base di una pipeline. Una pipeline può avere fasi che vengono eseguite in modo seriale o parallelo, in modo da poter controllare il flusso e la logica della release del software.

  • Fasi di distribuzione
    Le fasi sono singole azioni eseguite durante un'esecuzione di una pipeline. La pipeline di distribuzione DevOps include i seguenti tipi di fasi predefiniti da utilizzare nel processo di release:
    • Distribuzione in sequenza: release incrementale a OKE, funzioni o gruppi di istanze.
    • Attesa: attendere N secondi.
    • Approvazione manuale: procedere se viene fornita un'approvazione; interrompere se viene rifiutata un'approvazione.
    • Richiama funzione: esegue task personalizzati e l'integrazione richiamando una funzione e passa un artifact di parametri di richiesta.
  • Artifact DevOps

    Un artifact DevOps è un riferimento o un puntatore a qualsiasi file, file binario, pacchetto, file manifesto o immagine che costituisce l'applicazione. Quando si crea un artifact, è necessario informare Oracle DevOps della posizione di origine dell'artifact effettivo. DevOps supporta il registro dell'immagine contenitore OCI e i repository del registro degli artifact OCI.

  • Repository di artifact

    Il repository di artifact viene utilizzato per creare repository per raggruppare artifact simili. Una volta creato il repository, è possibile caricare gli artifact. Questi artifact sono una raccolta di file di testo, file binari e file manifesto di distribuzione che verranno consegnati all'ambiente di distribuzione di destinazione. Ogni artifact ha un nome, che viene fatto del relativo percorso: versione. Il percorso è una stringa che consente di organizzare gli artifact.

  • Servizi di registrazione e notifiche OCI

    Il servizio di log OCI memorizza i log correlati alla distribuzione. L'output del runtime di distribuzione e i risultati finali della distribuzione vengono visualizzati come voci di log. Il servizio di notifiche OCI fornisce visibilità sullo stato più recente del progetto di distribuzione e sulle relative risorse ed esegue le azioni necessarie. Ad esempio, si riceve una notifica quando un evento importante, ad esempio una fase di una pipeline di distribuzione in attesa di approvazione. Quando si riceve il messaggio di notifica, è possibile passare a DevOps pipeline di distribuzione e approvare la fase.

  • Ambienti di distribuzione
    Un ambiente è una raccolta di risorse informatiche di un cliente in cui vengono distribuiti gli artifact. Gli ambienti possono essere una funzione, un'istanza della virtual machine (VM) di computazione o Bare Metal o un cluster OKE.
    • Cluster Oracle Kubernetes (OKE): Oracle Container Engine for Kubernetes è un servizio completamente gestito, scalabile e ad alta disponibilità che puoi utilizzare per distribuire le tue applicazioni in container nel cloud.
    • Istanze di computazione: il servizio di computazione OCI consente di eseguire il provisioning e gestire gli host di computazione nel cloud. Puoi avviare le istanze di computazione con forme che soddisfano i requisiti delle tue risorse in termini di CPU, memoria, larghezza di banda della rete e storage.
    • Functions: Oracle Functions è una piattaforma completamente gestita, multi-tenant, altamente scalabile, su richiesta, Functions-as-a-Service. Si basa su OCI di livello enterprise e si basa sul motore open source Fn Project.
    Gli ambienti possono trovarsi in aree OCI diverse dall'area della pipeline di distribuzione. Ciò consente agli sviluppatori di eseguire la distribuzione in più aree OCI utilizzando la stessa pipeline di distribuzione.

Suggerimenti

Utilizzare i seguenti suggerimenti come punto di partenza. I requisiti potrebbero essere diversi da rispetto all'architettura descritta in questa sezione.
  • Forme di computazione

    Questa architettura utilizza un'immagine del sistema operativo Oracle Linux con la forma flessibile E3 o E4 che dispone di risorse minime per ospitare gli host di calcolo nei nodi del cluster OKE. Se l'applicazione richiede più memoria o core, è possibile scegliere una forma diversa.

  • VCN

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

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

    Questa architettura utilizza una VCN pubblica per ospitare Oracle Container Engine for Kubernetes. Puoi anche usare una VCN privata. In tal caso, utilizzare un gateway NAT per concedere l'accesso al cluster tramite la rete Internet pubblica.

  • OKE

    Questa architettura viene distribuita al cluster OKE come uno degli ambienti di destinazione. I nodi di lavoro vengono distribuiti su un sistema operativo Oracle Linux E3 o E4. Questa architettura utilizza tre nodi di lavoro nel cluster, ma è possibile creare fino a 1.000 nodi in ogni cluster.

  • Funzioni

    Se scegli l'architettura da distribuire in una funzione OCI, nella tua tenancy vengono create una nuova applicazione e una nuova funzione Functions.

  • Gruppo istanza

    Se scegli l'architettura da distribuire a un gruppo di istanze, avrai nuove istanze di computazione della forma scelta creata nella tua tenancy.

  • Registro immagini contenitore

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

  • Registro artifact

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

Considerazioni

Quando si distribuisce questa architettura di riferimento, tenere presenti i punti riportati di seguito.

  • DevOps-distribuzioni supportate

    DevOps supporta le distribuzioni in OKE, negli host di computazione e nelle funzioni. Questa architettura viene distribuita in un cluster OKE. Considerare la possibilità di eseguire la distribuzione in altri endpoint in base ai requisiti.

  • Supporto di Linux

    Solo gli host Linux sono supportati per le distribuzioni dei gruppi di istanze nelle istanze di computazione.

  • Artifact distribuiti

    Gli artifact da distribuire con DevOps devono trovarsi in un registro artifact o in un repository di registro immagini container OCI.

  • Raggruppamento di applicazioni

    Come procedura ottimale, raggruppare ogni applicazione e tutti i relativi microservizi in un unico progetto.

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:
    1. Fare clic sul pulsante Distribuisci per il caso d'uso specifico per accedere a Resource Manager:

      Se non si è ancora collegati, immettere la tenancy e le credenziali 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 Piano.
    5. 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.

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

Log modifiche

Questo log elenca le modifiche significative: