CI/CD in AWS
L'approccio CI/CD può essere rappresentato come una pipeline in cui il nuovo codice viene inviato a un'estremità, testato durante una serie di fasi (origine, compilazione, gestione temporanea e produzione) e quindi pubblicato come codice pronto per la produzione.
![Diagramma che illustra un esempio della pipeline di codice AWS](images/cicd_5g2.png)
Panoramica della pipeline CI/CD
Ogni fase della pipeline CI/CD è strutturata come un'unità logica nel processo di consegna. Ogni fase agisce da gate che controlla un determinato aspetto del codice. Durante l'avanzamento nella pipeline, si presume che la qualità del codice sia più alta nelle fasi successive perché ne vengono verificati sempre più aspetti. I problemi rilevati in una fase iniziale impediscono al codice di progredire nella pipeline. I risultati dei test vengono immediatamente inviati al team e le build e i rilasci successivi vengono interrotti se il software non supera la fase.
AWS offre un set completo di strumenti di sviluppo CI/CD per accelerare lo sviluppo del software e i cicli di rilascio. AWS CodePipeline
Le pipeline di codice possono integrarsi con altri servizi. Questi possono essere servizi AWS, come Amazon Simple Storage Service
-
Creazione, compilazione e test del codice con AWS CodeBuild
-
Distribuzione continua di applicazioni basate su container nel cloud.
-
Convalida preliminare dell'implementazione di artefatti (come descrittori e immagini di container) richiesti per il servizio di rete o specifiche funzioni di rete native per il cloud
-
Test funzionali, di integrazione e delle prestazioni per la funzione di rete containerizzata/funzione di rete virtuale (CNF/VNF), inclusi i test di base e di regressione
-
Test di affidabilità e ripristino di emergenza (DR).
![Diagramma che illustra i componenti della pipeline CI/CD AWS](images/cicd_5g3.png)
Componenti della pipeline CI/CD AWS
AWS può configurare la pipeline CI/CD utilizzando i seguenti strumenti di sviluppo AWS:
La creazione della pipeline CI/CD può essere automatizzata utilizzando AWS CDK
Il processo CI/CD include le seguenti fasi:
-
Configurazione della rete: AWS CDK e AWS CloudFormation avviano la creazione dei prerequisiti di rete:
-
Implementazione dell'infrastruttura: AWS CDK e AWS CloudFormation avviano la creazione delle seguenti pile di risorse:
-
Implementazione della funzione di rete per il cloud (CNF): in questa fase, la CNF viene implementata nei cluster EKS utilizzando gli strumenti dei grafici Kubectl
e Helm. Questa fase implementa anche tutte le applicazioni o gli strumenti specifici necessari alle CNF per lavorare in modo efficiente (comePrometheus o FluentD ). Le CNF possono essere implementate tramite funzioni Lambda o con AWS CodeBuild. -
Aggiornamenti continui e implementazione: si tratta di una sequenza di passaggi che vengono eseguiti in modo iterativo per implementare le modifiche di container/configurazione che comportano aggiornamenti. Analogamente all'implementazione della CNF, gli aggiornamenti continui e l'implementazione possono essere automatizzati utilizzando i servizi AWS, con l'attivazione di AWS CodeCommit
, Amazon Elastic Container Registry (Amazon ECR) o un sistema di origine di terze parti come GitLab Webhook .
![Diagramma che illustra il flusso della pipeline CI/CD AWS.](images/cicd_5g4.png)
Diagramma di flusso della pipeline CI/CD AWS
La pipeline CI/CD è creata con AWS CodePipeline