Crie um pipeline e implante atualizações de artefatos em instâncias locais usando EC2 CodePipeline - 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á.

Crie um pipeline e implante atualizações de artefatos em instâncias locais usando EC2 CodePipeline

Criado por Akash Kumar () AWS

Ambiente: PoC ou piloto

Fonte: DevOps

Destino: EC2 Amazon/On-Premises

Tipo R: redefinir a hospedagem

Tecnologias: DevOps; Modernização; aplicativos móveis e web

AWSserviços: AWS CodeBuild; AWS CodeCommit; AWS CodeDeploy; AWS CodePipeline

Resumo

Esse padrão fornece exemplos de código e etapas para criar um pipeline na Amazon Web Services (AWS) Cloud e implantar artefatos atualizados em instâncias locais do Amazon Elastic Compute Cloud (AmazonEC2) em. AWS CodePipeline O padrão é baseado na prática de integração contínua. Essa prática automatiza a criação e o teste de código com um sistema de controle de versão baseado em Git. Nesse padrão, você cria e clona um repositório de código usando o. AWS CodeCommit Em seguida, você cria um projeto e configura seu código-fonte usando AWS CodeBuild o. Por fim, você cria seu aplicativo e configura seu ambiente de destino para EC2 instâncias locais usando AWS CodeDeploy.

Pré-requisitos e limitações

Pré-requisitos

  • Uma AWS conta ativa

  • Tags definidas pelo usuário para identificar EC2 instâncias durante a implantação

  • CodeDeploy agente, instalado em EC2 instâncias

  • Seu software de tempo de execução necessário, instalado nas EC2 instâncias

  • Amazon Corretto 8 para o Java Development Kit

  • Servidor web Apache Tomcat, instalado

  • CloudWatch Eventos da Amazon (opcional)

  • Um par de chaves para fazer login no servidor da web (opcional)

  • Um projeto de aplicativo Apache Maven para um aplicativo web

Arquitetura

O diagrama a seguir mostra um exemplo de aplicativo Web Java que é implantado em EC2 instâncias locais usando a arquitetura desse padrão.

Exemplo de aplicativo web Java implantado em instâncias EC2

O diagrama mostra o seguinte fluxo de trabalho:

  1. O desenvolvedor confirma as alterações de código em um repositório CodeCommit Git privado.

  2. CodePipeline usa CodeBuild para iniciar a construção e adicionar novos artefatos que estão prontos para implantação no bucket do Amazon Simple Storage Service (Amazon S3).

  3. CodePipeline usa o CodeDeploy agente para pré-instalar todas as dependências necessárias para as alterações do artefato de implantação.

  4. CodePipeline usa o CodeDeploy agente para implantar os artefatos do bucket do S3 nas instâncias de destinoEC2. Se ativado, o CloudWatch Events pode iniciar automaticamente o pipeline quando ocorrer uma alteração no código-fonte.

Pilha de tecnologia

  • CodeBuild

  • CodeCommit

  • CodeDeploy

  • CodePipeline

  • CloudWatch Eventos (opcional)

Ferramentas

  • AWS CodeBuildé um serviço de compilação totalmente gerenciado que ajuda você a compilar o código-fonte, executar testes de unidade e produzir artefatos prontos para implantação. CodeBuild compila seu código-fonte, executa testes de unidade e produz artefatos prontos para serem implantados.

  • AWS CodeCommité um serviço de controle de versão que ajuda você a armazenar e gerenciar repositórios Git de forma privada, sem precisar gerenciar seu próprio sistema de controle de origem.

  • AWS CodeDeployautomatiza implantações no Amazon Elastic Compute Cloud (AmazonEC2) ou em instâncias locais, funções AWS Lambda ou serviços Amazon Elastic Container Service (Amazon). ECS

  • AWS CodePipelineajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software e automatizar as etapas necessárias para liberar alterações de software continuamente.

Código

Esse padrão inclui os seguintes anexos:

  • buildspec.yml— Esse arquivo especifica as ações CodeBuild necessárias para criar e criar um artefato para implantação.

  • appspec.yml— Esse arquivo especifica as ações CodeDeploy necessárias para criar um aplicativo e configurar um ambiente de destino para instâncias locaisEC2.

  • install_dependencies.sh: esse arquivo instala dependências para o servidor web Apache Tomcat.

  • start_server.sh: esse arquivo inicia o servidor web Apache Tomcat.

  • stop_server.sh: esse arquivo inicia o servidor web Apache Tomcat.

Épicos

TarefaDescriçãoHabilidades necessárias

Criar o repositório.

Crie um CodeCommit repositório.

AWSadministrador de sistemas

Clonar o repositório.

Conecte-se ao CodeCommit repositório clonando o repositório.

Desenvolvedor de aplicativos

Envia o código-fonte para o repositório remoto.

  1. Criar uma confirmação para adicionar os arquivos buildspec.yml e appspec.yml ao seu repositório local.

  2. Envie o commit do seu repositório local para o CodeCommit repositório remoto.

Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Crie um projeto de compilação.

  1. Faça login no AWS Management Console, abra o AWS CodeBuild console e escolha Create build project.

  2. Em Nome do projeto, digite o nome de seu projeto.

  3. Em Source provider, escolha AWS CodeCommit.

  4. Em Repositório, escolha o repositório em que você deseja criar o pipeline de código.

  5. Em Environment image (Imagem do ambiente), escolha Managed image (Imagem gerenciada) ou Custom image (Imagem personalizada).

  6. Em Operating system (Sistema operacional), escolha Amazon Linux 2.

    Observação: o Amazon Linux 2 está chegando ao fim do suporte. Para obter mais informações, consulte o Amazon Linux 2 FAQs.

  7. Para RunTime(s), escolha Padrão.

  8. Em Image (Imagem), selecione aws/codebuild/amazonlinux2-aarch64-standard:2.0.

  9. Na Image version (Versão da imagem), escolha Always use the latest image for this runtime version (Sempre usar a imagem mais recente para esta versão de tempo de execução).

  10. Em Perfil de serviço, escolha Novo perfil de serviço ou Perfil de serviço existente.

  11. Em Especificações da compilação, escolha Usar um arquivo de especificações da compilação ,ou Inserir comandos de compilação.

  12. (Opcional) Escolha Adicionar artefato para configurar artefatos.

  13. (Opcional) Para fazer upload dos registros de saída da compilação para a Amazon CloudWatch, escolha CloudWatch logs.

  14. Selecione Create build project (Criar projeto de compilação).

AWSadministrador, desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Crie o aplicativo.

  1. Entre no AWS Management Console, abra o AWS CodeDeploy console e escolha Criar aplicativo.

  2. Em Nome do aplicativo, insira um nome para seu aplicativo.

  3. Para a plataforma de computação, escolha EC2/On-premises.

  4. Escolha Criar aplicativo e, em seguida, escolha Criar grupo de implantação.

  5. Em Nome do grupo de implantação, insira um nome.

  6. Crie uma função de serviço para CodeDeploy. Observação: a função de serviço deve ter permissões para conceder CodeDeploy acesso ao seu ambiente de destino.

  7. Em Service role (Perfil de serviço), escolha o perfil de serviço criado na etapa 6.

  8. Para o Tipo de implantação, escolha In-loco ou Azul/verde com base nos requisitos de sua empresa.

  9. Em Configuração do ambiente, escolha as opções que atendam aos requisitos da sua empresa.

  10. (Opcional) Crie um grupo-alvo para seu balanceador de carga separadamente no EC2 console da Amazon e, em seguida, volte para a página Criar grupo de implantação do AWS CodeDeploy console para escolher seu balanceador de carga e seu grupo-alvo.

  11. Selecione Criar grupo de implantação.

AWSadministrador de sistemas, desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Crie o pipeline.

  1. Faça login no AWS Management Console, abra o AWS CodePipeline console e escolha Create pipeline.

  2. Em Nome do pipeline, insira um nome para o pipeline.

  3. Em Perfil de serviço, escolha Novo perfil de serviço ou Perfil de serviço existente.

  4. Em Role name (Nome da função), digite um nome para sua função.

  5. Na seção Configurações avançadas, em Armazenamento de artefatos, escolha Localização padrão se quiser que o Amazon S3 crie um bucket e armazene os artefatos no bucket. Para usar um bucket S3 existente, escolha Custom location (Local personalizado). Escolha Próximo.

  6. Em Source provider, escolha AWS CodeCommit.

  7. Em Nome do repositório, escolha o repositório que você clonou anteriormente. Em Nome da ramificação, escolha sua ramificação do código-fonte.

  8. Para opções de detecção de alterações, escolha Amazon CloudWatch Events (recomendado) ou AWS CodePipeline. Escolha Próximo.

  9. Em Build provider (Fornecedor de compilação), escolha AWS CodeBuild.

  10. Em Nome do projeto, escolha o projeto de construção que você criou na seção Criar um CodeBuild projeto para o aplicativo desse padrão.

  11. Escolha suas opções de compilação, e, em seguida, escolha Próximo.

  12. Em Deploy provider, escolha AWS CodeDeploy.

  13. Escolha um nome de aplicativo e um grupo de implantação e, em seguida, escolha Avançar.

  14. Selecione Criar pipeline.

AWSadministrador de sistemas, desenvolvedor de aplicativos

Recursos relacionados

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip