CI/CD na AWS
A CI/CD pode ser representada como um pipeline, em que o novo código é enviado em uma extremidade, testado em uma série de estágios (fonte, construção, teste, preparação e produção) e, então, publicado como código pronto para produção.
![Um diagrama que descreve um exemplo do pipeline de código da AWS](images/cicd_5g2.png)
Visão geral do pipeline de CI/CD
Cada estágio do pipeline de CI/CD é estruturado como uma unidade lógica no processo de entrega. Cada estágio atua como um portão que examina um determinado aspecto do código. À medida que o código avança pelo pipeline, a suposição é que a qualidade do código é maior nos estágios posteriores, porque mais aspectos dele continuam a ser verificados. Problemas descobertos em um estágio inicial impedem que o código progrida pelo pipeline. Os resultados dos testes são enviados imediatamente à equipe, e todas as outras construções e lançamentos serão interrompidos se o software não passar do estágio.
A AWS traz um conjunto completo de ferramentas de desenvolvedor de CI/CD para acelerar o desenvolvimento de software e os ciclos de lançamento. O AWS CodePipeline
Os pipelines de código podem se integrar a outros serviços. Podem ser serviços da AWS, como o Amazon Simple Storage Service
-
Compilação, construção e teste de código com AWS CodeBuild
-
Entrega contínua de aplicações baseadas em contêiner para a nuvem
-
Validação pré-implantação de artefatos (como descritores e imagens de contêiner) necessários para o serviço de rede ou funções de rede específicas nativas da nuvem
-
Testes funcionais, de integração e de performance para função de rede conteinerizada/função de rede virtual (CNF/VNF), incluindo testes de linha de base e regressão
-
Teste de confiabilidade e recuperação de desastres (DR).
![Um diagrama que descreve os componentes do pipeline do AWS CICD](images/cicd_5g3.png)
Componentes do pipeline do AWS CICD
A AWS pode configurar pipelines de CI/CD usando as seguintes ferramentas do desenvolvedor da AWS:
A criação de pipeline de CI/CD pode ser automatizada usando AWS CDK
Esse processo de CI/CD inclui as seguintes etapas:
-
Configuração de rede: AWS CDK e AWS CloudFormation iniciam a criação dos pré-requisitos de rede:
-
Implantação de infraestrutura: AWS CDK e AWS CloudFormation iniciam a criação das seguintes pilhas de recursos:
-
Implantação da Cloud Network Function (CNF): neste estágio, a CNF é implantada em clusters do EKS usando as ferramentas de chart do Kubectl
e do Helm. Essa etapa também implanta todas as aplicações ou ferramentas específicas de que as CNFs precisam para funcionar de forma eficiente (como Prometheus ou Fluentd ). As CNFs podem ser implantadas por meio de funções do Lambda ou com o AWS CodeBuild. -
Atualizações e implantação contínuas: são uma sequência de etapas executadas iterativamente para implantar alterações que fazem parte das alterações de contêiner/configuração que resultam em atualizações. Semelhante ao caso de implantação das CNFs, as atualizações e a implantação contínuas podem ser automatizadas com o uso dos serviços da AWS, com o acionador do AWS CodeCommit
, o Amazon Elastic Container Registry (Amazon ECR) ou um sistema de origem de terceiros, como o GitLab Webhooks .
![Um diagrama que descreve o fluxo do pipeline do AWS CICD.](images/cicd_5g4.png)
Diagrama de fluxo do pipeline do AWS CICD
O pipeline de CI/CD é criado usando o AWS CodePipeline