View a markdown version of this page

Análise do CI/CD - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Análise do CI/CD

Integração e entrega contínuas (CI/CD) é o processo de automatizar o ciclo de vida do lançamento do software. Em alguns casos, a entrada D também CI/CD pode significar implantação. A diferença entre entrega contínua e implantação contínua ocorre quando você libera uma alteração no ambiente de produção. Com a entrega contínua, é necessária uma aprovação manual antes de promover mudanças na produção. A implantação contínua apresenta um fluxo ininterrupto em todo o pipeline, e nenhuma aprovação explícita é necessária. Como essa estratégia discute CI/CD conceitos gerais, as recomendações e as informações fornecidas são aplicáveis às abordagens de entrega contínua e implantação contínua.

CI/CD automates much or all of the manual processes traditionally required to get new code from a commit into production. A CI/CD pipeline encompasses the source, build, test, staging, and production stages. In each stage, the CI/CD pipelines provisions any infrastructure that is needed to deploy or test the code. By using a CI/CDNo pipeline, as equipes de desenvolvimento podem fazer alterações no código que são automaticamente testadas e enviadas para implantação.

Vamos revisar o CI/CD processo básico antes de discutir algumas das maneiras pelas quais você pode, consciente ou inconscientemente, deixar de ser totalmente CI/CD. The following diagram shows the CI/CD estágios e atividades em cada estágio.

Os cinco estágios de um CI/CD processo e as atividades e ambientes de cada um.

Sobre a integração contínua

A integração contínua ocorre em um repositório de código, como um repositório Git no GitHub. Você trata uma única ramificação principal como a fonte confiável da base de código, e cria ramificações de curta duração para o desenvolvimento de recursos. Você integrará uma ramificação de recurso à ramificação principal quando estiver pronto para implantar o recurso em ambientes superiores. As ramificações de recurso nunca são implantadas diretamente nos ambientes superiores. Para obter mais informações, consulte Abordagem baseada no trunk neste guia.

Processo de integração contínua

  1. O desenvolvedor cria uma nova ramificação da ramificação principal.

  2. O desenvolvedor faz alterações, cria e testa localmente.

  3. Quando as alterações estiverem prontas, o desenvolvedor cria uma pull request (GitHub documentação) com a ramificação principal como destino.

  4. O código é revisado.

  5. Quando o código é aprovado, ele é incorporado à ramificação principal.

Sobre a entrega contínua

A entrega contínua ocorre em ambientes isolados, como ambientes de desenvolvimento e de produção. As ações que ocorrem em cada ambiente podem variar. Muitas vezes, uma das primeiras etapas é usada para fazer atualizações no próprio pipeline antes de continuar. O resultado final da implantação é que cada ambiente é atualizado com as alterações mais recentes. O número de ambientes de desenvolvimento para criação e teste também varia, mas recomendamos que você use pelo menos dois. No pipeline, cada ambiente é atualizado em ordem de importância, terminando com o ambiente mais importante, o ambiente de produção.

Processo de entrega contínua

A parte de entrega contínua do pipeline começa extraindo o código da ramificação principal do repositório de origem e passando-o para a etapa de criação. O documento de infraestrutura como código (IaC) do repositório descreve as tarefas que são executadas em cada etapa. Embora o uso de um documento de IaC não seja obrigatório, um serviço ou uma ferramenta de IaC, como AWS CloudFormation ou AWS Cloud Development Kit (AWS CDK), é altamente recomendado. As etapas mais comuns incluem:

  1. Testes de unidades

  2. Criação de código

  3. Provisionamento de recursos

  4. Testes de integração

Se algum erro ocorrer ou algum teste falhar em qualquer etapa do pipeline, a etapa atual voltará ao estado anterior e o pipeline será encerrado. As alterações subsequentes devem começar no repositório de código e passar por todo o CI/CD processo.