Use AWS CodeCommit e AWS CodePipeline implante um pipeline de CI/CD em várias contas AWS - Recomendações da AWS

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á.

Use AWS CodeCommit e AWS CodePipeline implante um pipeline de CI/CD em várias contas AWS

Criado por Kirankumar Chandrashekar () e Abdal Garuba () AWS AWS

Ambiente: PoC ou piloto

Tecnologias: DevOps

Workload: todas as outras workloads

AWSserviços: AWS CodeCommit; AWS CodePipeline

Resumo

Aviso: não AWS CodeCommit está mais disponível para novos clientes. Os clientes existentes do AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais

Esse padrão mostra como implantar um pipeline de integração contínua e entrega contínua (CI/CD) para suas cargas de trabalho de código de aplicativo em contas separadas da Amazon Web Services (AWS) para fluxos de trabalho de desenvolvedor DevOps, preparação e produção da Amazon Web Services ().

Você pode usar uma estratégia de várias AWS contas para fornecer um alto nível de isolamento de recursos ou segurança, otimizar custos e separar seu fluxo de trabalho de produção.

O código do seu aplicativo permanece idêntico em todas essas AWS contas separadas e é mantido em um AWS CodeCommit repositório central hospedado pela sua DevOps conta. Suas contas de desenvolvedor, de teste e de produção têm ramificações Git separadas neste CodeCommit repositório.

Por exemplo, quando o código é enviado para a ramificação Git do desenvolvedor em seu CodeCommit repositório central, a Amazon EventBridge em sua DevOps conta notifica em sua conta de desenvolvedor sobre as alterações EventBridge no repositório. Na sua conta de desenvolvedor AWS CodePipeline e no estágio de origem, entre em InProgress status. O estágio de origem é configurado a partir da ramificação Git do desenvolvedor no CodeCommit repositório central e CodePipeline assume uma função de serviço para a conta. DevOps

O conteúdo do CodeCommit repositório na filial do desenvolvedor é carregado em um repositório de artefatos em um bucket do Amazon Simple Storage Service (Amazon S3) e criptografado com AWS uma chave do Key Management Service (). AWS KMS Depois que o status do estágio de origem mudar para Succeeded in CodePipeline, o código será transferido para o próximo estágio da execução do pipeline.

Pré-requisitos e limitações

Pré-requisitos

  • AWSContas existentes para cada ambiente necessário (desenvolvedorDevOps, preparação e produção). Essas contas podem ser hospedadas por AWSOrganizations.

  • AWSInterface de linha de comando (AWSCLI), instalada e configurada.

Arquitetura

Fluxo de trabalho para implantar o pipeline de CI/CD para cargas de trabalho de código de aplicativo em contas separadas. AWS

Pilha de tecnologia

  • AWS CodeBuild

  • AWS CodeCommit

  • AWS CodePipeline

  • Amazon EventBridge

  • AWSIdentity and Access Management (IAM)

  • AWS KMS

  • AWSOrganizations

  • Amazon S3

Ferramentas

  • AWS CodeBuild— CodeBuild é um serviço de integração contínua totalmente gerenciado que compila o código-fonte, executa testes e produz pacotes de software prontos para implantação. 

  • AWS CodeCommit— CodeCommit é um serviço de controle de origem totalmente gerenciado que hospeda repositórios seguros baseados em Git

  • AWS CodePipeline— CodePipeline é um serviço de entrega contínua totalmente gerenciado que ajuda você a automatizar seus pipelines de lançamento para atualizações rápidas e confiáveis de aplicativos e infraestrutura. 

  • Amazon EventBridge — EventBridge é um serviço de barramento de eventos sem servidor para conectar seus aplicativos com dados de várias fontes.

  • AWSIdentity and Access Management (IAM) — IAM ajuda você a gerenciar o acesso a AWS serviços e recursos com segurança. 

  • AWSKMS— O AWS Key Management Service (AWSKMS) ajuda você a criar e gerenciar chaves criptográficas e controlar seu uso em uma ampla variedade de AWS serviços e em seus aplicativos.

  • Amazon S3: o Amazon Simple Storage Service (Amazon S3) serve como armazenamento para a internet.

Épicos

TarefaDescriçãoHabilidades necessárias

Crie um CodeCommit repositório.

Faça login no AWS Management Console DevOps da sua conta e abra o CodeCommit console. Crie um repositório e configure todas as ramificações do Git necessárias para suas contas de desenvolvedor, de teste e de produção. AWS Para obter ajuda com esse e outros artigos, consulte a seção “Recursos relacionados”.

DevOps engenheiro

Crie credenciais de acesso para o CodeCommit repositório.

No IAM console, crie credenciais de acesso para permitir que os desenvolvedores de aplicativos enviem e extraiam a base de código do aplicativo do CodeCommit repositório.

DevOps engenheiro

Crie uma IAM função para funções CodePipeline de serviço.

No IAM console, crie uma IAM função que possa ser usada por todas as suas funções CodePipeline de serviço para acessar o CodeCommit repositório central.

Administrador de nuvem

Configure as EventBridge regras para suas outras AWS contas.

No EventBridge console da Amazon, configure regras para enviar notificações sobre alterações relevantes EventBridge no CodeCommit repositório para as contas individuais de desenvolvedor, de teste e de produçãoAWS.

Administrador de nuvem

Crie uma AWS KMS chave.

No AWS KMS console, crie uma KMS chave que permita que suas AWS contas individuais de desenvolvedor, preparação e produção CodePipeline criptografem e descriptografem artefatos.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Configure EventBridge para receber eventos da DevOps AWS conta.

Faça login no AWS Management Console de uma de suas AWS contas individuais (desenvolvedor, teste ou produção). No EventBridge console da Amazon, configure EventBridge para receber eventos de alteração do CodeCommit repositório da sua DevOps conta.

Administrador de nuvem

Criar um bucket do S3.

No console Amazon S3, crie um bucket S3 para armazenar artefatos. CodePipeline

Administrador de nuvem

Crie todos os AWS recursos necessários para os CodePipeline estágios.

Crie todos os outros AWS recursos que serão exigidos pelas CodePipeline etapas. Esses recursos variarão de acordo com a função de cada AWS conta em seu pipeline de CI/CD.

Administrador de nuvem

Crie uma IAM função.

No IAM console, crie uma IAM função para a função CodePipeline de serviço. Essa função de serviço deve ser capaz de assumir a IAM função na DevOps conta para acessar o CodeCommit repositório.

Administrador de nuvem

Crie um pipeline em CodePipeline.

No CodePipeline console, crie um pipeline. Em seguida, crie um estágio de origem que aponte para o CodeCommit repositório na DevOps conta de sua ramificação individual do Git.

Administrador de nuvem

Repita as etapas para todas as suas AWS contas.

Repita essas etapas para todas as AWS contas necessárias como parte de sua estratégia de CI/CD.

Administrador de nuvem

Recursos relacionados

Crie recursos em sua DevOps AWS conta

Crie recursos em suas outras AWS contas

Outros recursos