Creare una pipeline CI/CD utilizzando Oracle Cloud Infrastructure DevOps e le istanze OCI
Architettura
Questa architettura di riferimento mostra come creare un'applicazione moderna e quindi distribuirla nelle istanze di computazione OCI. Questa demo utilizza un'applicazione basata su un'applicazione Java Graal Enterprise/Micronaut abilitata. L'applicazione viene esposta tramite un load balancer OCI, garantendo un agevole spostamento del traffico durante le distribuzioni attive.
Il diagramma seguente descrive questa architettura.

Descrizione dell'immagine instance-group-deploy-arch.png
- Area
Un'area OCI è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (tra paesi o addirittura continenti). L'architettura utilizza un'unica area.
- DevOps progetto
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.
- Pipeline di build
Una pipeline di build richiede un ID di commit dai repository di codici sorgente e utilizza tale codice per eseguire le istruzioni di build. Le pipeline di build definiscono un set di fasi per il processo di build: creazione, test e compilazione di artifact software, distribuzione di artifact ai repository OCI e, facoltativamente, attivazione di una distribuzione. Definire il flusso e le istruzioni dell'esecuzione della build nel file delle specifiche di build.
- Fasi di creazione
Le fasi sono singole azioni che vengono eseguite durante un'esecuzione di una pipeline. Di seguito sono riportate le varie fasi di creazione:
- Fasi build gestite: fase di build gestita per creare e sottoporre a test il codice sorgente.
- Fase Distribuisci artifact: una fase per eseguire il PUSH degli output della fase di build in vari repository. Analogamente alle immagini del contenitore per il repository del contenitore e al manifesto di distribuzione nel registro artifact.
- Richiama la distribuzione: una fase per richiamare una pipeline di distribuzione una volta completate le fasi di build, oltre all'analisi delle variabili esportate dalla fase di build gestita alle fasi della pipeline di distribuzione.
- Repository codice
Repository Git privati ospitati dal servizio DevOps. È possibile memorizzare, gestire e sviluppare il codice sorgente con i repository di codici DevOps.
- Pipeline di distribuzione
Sequenza di passi per la distribuzione e la distribuzione di un set di artifact in un ambiente di destinazione. Il flusso e la logica della release software possono essere controllati definendo fasi che possono essere eseguite in serie o in parallelo.
- Fasi di distribuzione
Le fasi sono singole azioni che vengono eseguite durante un'esecuzione di una pipeline. In questo scenario stiamo utilizzando la fase in sequenza del gruppo di istanze di computazione con nella pipeline di distribuzione, che installerà l'applicazione nelle istanze di computazione OCI di conseguenza.
- Artifact DevOps
Un artifact DevOps è un riferimento o un puntatore a qualsiasi file, file binario, package, file manifest o immagine che costituisce l'applicazione. Quando si crea un artifact, informare Oracle DevOps della posizione di origine dell'artifact effettivo. DevOps supporta i repository OCI Container Image Registry e OCI Artifact Registry.
- Repository artifact
Il repository artifact crea repository per raggruppare artifact simili. Quando il repository viene creato, è possibile caricarvi gli artifact. Questi artifact sono una raccolta di file di testo, file binari e file manifesti di distribuzione consegnati all'ambiente di distribuzione di destinazione. Ogni artifact ha un nome, composto dal relativo percorso: versione. Il percorso è una stringa per organizzare gli artifact.
- Servizi di registrazione e notifica OCI
Il servizio Log OCI memorizza i log correlati alla distribuzione. L'output runtime della distribuzione e i risultati finali della distribuzione vengono visualizzati come voci di log. Il servizio Notifiche OCI offre visibilità sullo stato più recente del progetto di distribuzione e sulle relative risorse e intraprende qualsiasi azione necessaria. 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 alle pipeline di distribuzione DevOps e approvare la fase.
- Ambienti di distribuzione
Un ambiente è una raccolta di risorse di elaborazione di un cliente in cui vengono distribuiti gli artifact. Gli ambienti possono essere funzioni, virtual machine (VM) di computazione, istanza Bare Metal o un cluster OKE. La distribuzione Blue Green è disponibile solo con il cluster OKE e le virtual machine di computazione.
- Istanze di computazione OCI
Oracle Cloud Infrastructure offre una capacità di computazione veloce, flessibile e conveniente per qualsiasi esigenza di carico di lavoro, dai server e VM Bare Metal performanti ai container leggeri. La computazione OCI offre istanze VM e Bare Metal estremamente flessibili per ottenere un rapporto prezzo/prestazioni ottimale. Questa architettura utilizza OCI Compute con Oracle Linux come immagine del sistema operativo.
- Load balancer OCI
Il servizio Oracle Cloud Infrastructure Load Balancing fornisce la distribuzione automatica del traffico da un punto di accesso a più server raggiungibili dalla tua rete cloud virtuale (VCN). Il servizio offre un load balancer che può scegliere tra un indirizzo IP pubblico o privato e larghezza di banda di cui è stato eseguito il provisioning.
Suggerimenti
- Forme di computazione
Questa architettura utilizza un'immagine del sistema operativo Oracle Linux con forma flex E3 o E4 con risorse minime per ospitare gli host di computazione nei nodi cluster OKE. Se l'applicazione richiede più memoria o più memorie centrali, puoi scegliere una forma diversa.
- VCN
Quando crei una rete VCN, determina il numero di blocchi CIDR necessari e la dimensione di ciascun blocco in base al numero di risorse che intendi collegare alle subnet nella rete VCN. Usare i blocchi CIDR che si trovano nello spazio di indirizzi IP privati standard.
Dopo aver creato una rete VCN, puoi modificare, aggiungere e rimuovere i relativi blocchi CIDR.
Questa architettura utilizza una VCN pubblica per ospitare Oracle Container Engine for Kubernetes. Inoltre, puoi usare una VCN privata. In tal caso, usare un gateway NAT per concedere l'accesso al cluster tramite la rete Internet pubblica.
- 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 artifact
Questa architettura crea un artifact per il software e la configurazione utilizzati da una distribuzione di un gruppo di istanze, OKE e Functions. L'architettura crea un repository del registro artifact per uso interno. I file binari software, il testo e le configurazioni di distribuzione vengono caricati e scaricati dal repository del registro artifact.
Considerazioni
Quando si distribuisce questa architettura di riferimento, tenere presente quanto riportato di seguito.
- Distribuzioni supportate da DevOps
DevOps supporta le distribuzioni in OKE, host di computazione e funzioni. Questa architettura si distribuisce su un cluster OKE. Valutare la possibilità di eseguire la distribuzione ad altri endpoint in base ai requisiti.
- Supporto Linux
Sono supportati solo gli host Linux 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 OCI o in un repository del registro immagini del contenitore.
- Raggruppamento di applicazioni
È consigliabile 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.
- Distribuire utilizzando lo stack di esempio in Oracle Cloud Infrastructure Resource Manager:
- Fare clic su

Se non si è già 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 job e rivedere il piano.
Per apportare modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Eseguire quindi 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
- Distribuisci usando il codice Terraform in GitHub:
- Vai a GitHub.
- Duplicare o scaricare il repository nel computer locale.
- Seguire le istruzioni riportate nel documento
README.