

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# CI/CD attivo AWS
<a name="cicd-on-aws"></a>

Il CI/CD può essere immaginato come una pipeline, in cui il nuovo codice viene inviato da un lato, testato in una serie di fasi (origine, compilazione, test, staging e produzione) e quindi pubblicato come codice pronto per la produzione.

![\[Un diagramma che illustra un esempio della pipeline di codice AWS\]](http://docs.aws.amazon.com/it_it/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g2.png)


*Panoramica della pipeline CICD*

Ogni fase della CI/CD pipeline è strutturata come un'unità logica nel processo di consegna. Ogni fase funge da cancello che controlla un determinato aspetto del codice. Man mano che il codice procede nella pipeline, si presume che la qualità del codice sia più elevata nelle fasi successive, poiché molti aspetti continuano a essere verificati. I problemi scoperti in una fase iniziale impediscono al codice di procedere nella pipeline. I risultati dei test vengono immediatamente inviati al team e tutte le successive build e versioni vengono interrotte se il software non supera la fase.

AWS include un set completo di strumenti di CI/CD sviluppo per accelerare lo sviluppo e i cicli di rilascio del software. [AWS CodePipeline](https://aws.amazon.com/codepipeline/)automatizza le fasi di compilazione, test e implementazione del processo di rilascio ogni volta che viene apportata una modifica al codice, in base al modello di rilascio definito. Ciò consente la fornitura rapida e affidabile di funzionalità e aggiornamenti. 

Le pipeline di codice possono integrarsi con altri servizi. Questi possono essere AWS servizi, come [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (Amazon S3), o prodotti di terze parti, come. GitHub AWS CodePipeline può affrontare una varietà di casi d'uso operativi e di sviluppo, tra cui:
+ Compilazione, creazione e test del codice con [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+ Distribuzione continua di applicazioni basate su container nel cloud
+ Convalida prima dell'implementazione degli elementi (come descrittori e immagini dei container) necessari per il servizio di rete o per specifiche funzioni di rete native del cloud
+ Test funzionali, di integrazione e prestazionali per la funzione di function/virtual rete containerizzata (CNF/VNF), inclusi test di base e di regressione
+ Test di affidabilità e disaster recovery (DR).

![\[Un diagramma che illustra i componenti della pipeline AWS CICD\]](http://docs.aws.amazon.com/it_it/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g3.png)


*AWS componenti della pipeline CICD*

AWS può configurare le CI/CD pipeline utilizzando i seguenti strumenti di sviluppo: AWS 
+ [AWS CodeCommit](https://aws.amazon.com/codecommit/)
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+ [AWS CodePipeline](https://aws.amazon.com/codepipeline/)
+ [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)
+ [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/)
+ [AWS CodeStar](https://aws.amazon.com/codestar/)

La creazione di pipeline CI/CD può essere automatizzata utilizzando e. [AWS CDK[CloudFormation](https://aws.amazon.com/cloudformation/)](https://aws.amazon.com/cdk/) Nel dominio NFV, questa automazione AWS nativa può essere integrata in un framework di Management and Orchestration (MANO) e nel framework di orchestrazione dei servizi del CSP. 

Il processo include i seguenti passaggi: CI/CD 
+ Configurazione della rete AWS CDK e CloudFormation avvio della creazione dei prerequisiti di rete:
+ Stack di rete (VPC, sottoreti, gateway NAT (Network Address Translation), tabella di routing e gateway Internet)
+ Implementazione dell'infrastruttura AWS CDK e CloudFormation avvio della creazione dei seguenti stack di risorse:
+ Stack di calcolo (creazione di cluster [Amazon Elastic Kubernetes Service (Amazon](https://aws.amazon.com/eks/) EKS), nodi EKS Worker,) [AWS Lambda](https://aws.amazon.com/lambda/)
+ Stack di storage (bucket Amazon S3[, volumi Amazon Elastic Block](https://aws.amazon.com/ebs) Store (Amazon EBS) e Amazon Elastic [File System (Amazon EFS](https://aws.amazon.com/efs/)) 
+ Stack di monitoraggio ([ CloudWatch](https://aws.amazon.com/cloudwatch/), [Amazon OpenSearch Service](https://aws.amazon.com/opensearch-service/) (OpenSearch Service) 
+ Stack di sicurezza [AWS Identity and Access Management](https://aws.amazon.com/iam/)(AWS IAM), gruppi di sicurezza [Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2) (Amazon EC2), elenchi di controllo degli [accessi alla rete](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) VPC () NACLs 
+ **Implementazione di Cloud Network Function (CNF)**[: in questa fase, CNF viene distribuito su cluster EKS utilizzando gli strumenti grafici Kubectl e Helm.](https://kubernetes.io/docs/reference/kubectl/overview/) [Questa fase implementa anche tutte le applicazioni o gli strumenti specifici necessari CNFs per lavorare in modo efficiente (come [Prometheus](https://prometheus.io/) o Fluentd).](https://www.fluentd.org/) CNFs può essere distribuito tramite funzioni Lambda o con. AWS CodeBuild
+ Aggiornamenti e distribuzione continui: si tratta di una sequenza di passaggi che vengono eseguiti in modo iterativo per implementare le modifiche che fanno parte delle container/configuration modifiche che determinano gli aggiornamenti. [Analogamente al caso di implementazione CNF, gli aggiornamenti e la distribuzione continui possono essere automatizzati utilizzando AWS Services, con il trigger di [AWS CodeCommit](https://aws.amazon.com/codecommit/)[Amazon Elastic Container Registry](https://aws.amazon.com/ecr/) (Amazon ECR) o un sistema di origine di terze parti come GitLab Webhooks.](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html)

![\[Un diagramma che illustra il flusso della pipeline CICD. AWS\]](http://docs.aws.amazon.com/it_it/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g4.png)


*Diagramma di flusso della pipeline AWS CICD*

La CI/CD pipeline è costruita utilizzando [AWS CodePipeline](https://aws.amazon.com/codepipeline/)e utilizza un servizio di distribuzione continua che modella, visualizza e automatizza i passaggi necessari per il rilascio del software. Definendo le fasi di una pipeline, è possibile recuperare il codice da un repository di codice sorgente, trasformarlo in un artefatto rilasciabile, testarlo e distribuirlo in produzione. Verrà distribuito solo il codice che supera con successo tutte queste fasi. Facoltativamente, puoi aggiungere altri requisiti alla tua pipeline, come le approvazioni manuali, per garantire che solo le modifiche approvate vengano implementate in produzione.