Crea una pipeline di integrazione e distribuzione continua utilizzando i servizi Oracle Cloud Infrastructure DevOps
La distribuzione rapida del software è fondamentale per creare e distribuire in modo efficiente le tue applicazioni nel cloud. I servizi DevOps Oracle Cloud Infrastructure (OCI) offrono una piattaforma di integrazione e distribuzione continue (CI/CD) per gli sviluppatori che consente di creare, testare e distribuire facilmente software e applicazioni su Oracle Cloud.
Le pipeline di creazione e distribuzione di DevOps OCI riducono gli errori basati sulle modifiche e riducono il tempo impiegato dai clienti per creare e risolvere i problemi consentendo di ricreare il software e di rieseguirne il test quando vengono applicate le modifiche e, di conseguenza, di rilevare tempestivamente qualsiasi impatto negativo.
Il servizio include il provisioning di repository GIT privati per memorizzare il codice e supporta le connessioni a repository di codici esterni per contenere il codice sorgente e i file di configurazione. Poiché i processi di creazione dipendono e producono artifact intermedi (moduli, package e così via), funzionano anche con i repository di artifact e container di Oracle. Che si tratti della migrazione dei carichi di lavoro in OCI (da on-premise o da altri cloud) o dello sviluppo di nuove applicazioni su OCI, è possibile utilizzare OCI DevOps per semplificare il ciclo di vita di consegna del software.
Quando si lavora in un ambiente ibrido o multi-cloud, è possibile utilizzare OCI DevOps per creare artifact da distribuire in altri ambienti.
Architettura
La pipeline di build segue un flusso definito dall'utente per creare e sottoporre a test il software, quindi creare un'immagine di contenitore con la versione più recente dell'applicazione. L'output della build viene memorizzato nel registro container come immagine. Una pipeline di distribuzione utilizza quindi l'immagine creata dal registro del container e un file manifest Kubernetes per distribuire la versione più recente dell'applicazione in OKE.
La pipeline fornita non affronta considerazioni quali l'applicazione di test di unità e l'analisi della qualità del codice utilizzando l'analisi statica del codice e strumenti linter.
Il diagramma riportato di seguito illustra questa architettura di riferimento.
Descrizione dell'illustrazione deployment-pipeline-devops-arch.png
deployment-pipeline-devops-arch-oracle.zip
- 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.
- Progetto DevOps
Raggruppamento logico di risorse DevOps necessarie per implementare un workflow CI/CD. Le risorse DevOps possono essere artifact, pipeline di creazione, pipeline di distribuzione, connessioni esterne, trigger e ambienti. I progetti DevOps semplificano l'abilitazione di log, monitoraggio e notifiche per tutte le risorse DevOps.
- Build pipeline
Una pipeline di creazione accetta un ID commit dai repository di codici di origine e utilizza tale codice per eseguire le istruzioni di creazione. Le pipeline di creazione definiscono un set di fasi per il processo di creazione, creazione, test e compilazione di artifact software, distribuzione di artifact ai repository OCI e, facoltativamente, attivazione di una distribuzione. Il flusso e le istruzioni dell'esecuzione della build vengono definiti nel file delle specifiche della build.
- Repository codice
Repository Git privati ospitati dal servizio DevOps. Puoi memorizzare, gestire e sviluppare il codice sorgente con i repository di codice DevOps OCI.
- Pipeline di distribuzione
Sequenza di passi per la consegna e la distribuzione di un set di artifact in un ambiente di destinazione. Il flusso e la logica della release del software possono essere controllati definendo fasi che possono essere eseguite in serie o in parallelo.
- 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: attesa N secondi
- Approvazione manuale: procedere se viene fornita un'approvazione; interrompere se viene rifiutata un'approvazione.
- Richiama funzione: esegue task o integrazioni personalizzati 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, 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 crea repository per raggruppare artifact simili. Quando il repository viene creato, è possibile caricarne gli artifact. Questi artifact sono una raccolta di file di testo, file binari e file manifesto di distribuzione 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 notifica 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): OCI Container Engine for Kubernetes è un servizio completamente gestito, scalabile e ad alta disponibilità che puoi utilizzare per distribuire le tue applicazioni containerizzate nel cloud.
- Istanze di computazione: il servizio di computazione OCI consente di eseguire il provisioning e gestire gli host di computazione nel cloud. Puoi distribuire 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, multitenant, altamente scalabile, on demand, con funzioni di servizio. Il servizio si basa su Oracle Cloud Infrastructure di livello Enterprise e si basa sul motore open source Fn Project.
Suggerimenti
- Forme di computazione
Questa architettura utilizza un'immagine del sistema operativo Oracle Linux con la forma flessibile E3 o E4. Puoi iniziare con il numero minimo di risorse richieste per gli host di computazione nell'ambiente del tuo gruppo di istanze e nei nodi 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 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.
- Oracle Container Engine for Kubernetes (OKE)
Questa architettura distribuisce il 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.
- 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 OCI.
Considerazioni
Quando si distribuisce questa architettura di riferimento, tenere presenti i punti riportati di seguito.
- DevOps supporta le distribuzioni in OKE, negli host di computazione e nelle funzioni.
- Solo gli host Linux sono supportati per le distribuzioni dei gruppi di istanze nelle istanze di computazione.
- Gli artifact da distribuire con DevOps devono trovarsi in un registro artifact o in un repository di registro immagini container OCI.
- La best practice è raggruppare ogni applicazione e tutti i relativi microservizi in un unico progetto.
Distribuzione
Il codice Terraform per la creazione e la distribuzione della pipeline mediante OCI DevOps è disponibile in GitHub.
- Distribuire utilizzando lo stack di esempio in Oracle Cloud Infrastructure Resource Manager:
- Fare clic su
.
Se non si è ancora collegati, immettere la tenancy e le credenziali utente.
- Selezionare l'area in cui distribuire lo stack.
- Seguire i prompt visualizzati e le istruzioni per creare lo stack.
- Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Piano.
- 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.
- Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
- Fare clic su
- Distribuzione mediante l'interfaccia CLI Terraform:
- Andare a GitHub.
- Duplicare o scaricare il repository nel computer locale.
- Seguire le istruzioni riportate nel documento README.
Log modifiche
Questo log elenca le modifiche significative:
27 ottobre 2021 | È stato aggiunto l'argomento Distribuisci e il collegamento al codice di distribuzione. È stato inoltre aggiunto il badge disponibile per l'automazione. |
5 agosto 2022 | Modifiche del testo alla panoramica del documento e all'argomento Architettura.
Nuovo collegamento aggiunto all'argomento Esplora altro. |