usando o AWS CodePipeline
Neste tutorial, você aprenderá a criar um pipeline de lançamento de software automatizado que implanta um aplicativo de exemplo ao vivo. Você criará o pipeline usando o AWS CodePipeline, um serviço que cria, testa e implanta seu código toda vez que há uma mudança no código. Você usará sua conta do GitHub, um bucket do Amazon Simple Storage Service (S3) ou um repositório do AWS CodeCommit como o local de origem do código do aplicativo de exemplo. Você também usará AWS Elastic Beanstalk como o destino de implementação para o aplicativo de exemplo. Seu pipeline completo poderá detectar mudanças feitas no repositório de origem que contém o aplicativo de exemplo e, em seguida, atualizar automaticamente seu aplicativo de exemplo ao vivo.
A implantação contínua permite implantar revisões automaticamente em um ambiente de produção, sem aprovação explícita de um desenvolvedor, automatizando assim todo o processo de lançamento do software.
Todas as atividades realizadas neste tutorial estão qualificadas para o nível gratuito.
Gerencie seus recursos da AWS
Faça login no ConsoleSeu pipeline de implantação contínua precisará de um ambiente de destino contendo servidores virtuais ou instâncias do Amazon EC2, onde ele implantará o código de exemplo. Você preparará esse ambiente antes de criar o pipeline.
a. Para simplificar o processo de configuração de instâncias do EC2 para este tutorial, você criará um ambiente de exemplo usando o AWS Elastic Beanstalk. O Elastic Beanstalk permite que você hospede facilmente aplicativos web sem precisar executar, configurar ou operar servidores virtuais por conta própria. Ele faz provisões e opera automaticamente a infraestrutura (por exemplo, servidores virtuais, load balancers etc.) e fornece a pilha de aplicativos (por exemplo, OS, linguagem e estrutura, servidor da web e de aplicativos etc.) para você.
b. Escolha PHP no menu suspenso e clique em Launch Now (Executar agora).
Nota: se você já criou um aplicativo do Elastic Beanstalk antes, clique em: Create New Application (Criar novo aplicativo) no canto superior direito. Nomeie seu aplicativo e crie um novo web server environment (ambiente de servidor da web). Selecione PHP como a sua plataforma e Single Instance (Instância única) como seu tipo de ambiente. Se você estiver planejando fazer login remoto em suas instâncias, selecione um par de chaves. Caso contrário, deixe os valores padrão para as opções restantes e crie o ambiente para o seu pipeline de implementação contínua.
c. O Elastic Beanstalk começará a criar um ambiente de exemplo para você implantar seu aplicativo. Ele criará uma instância do Amazon EC2, um grupo de segurança, um grupo do Auto Scaling, um bucket do Amazon S3, alarmes do Amazon CloudWatch e um nome de domínio para o seu aplicativo.
Nota: levará vários minutos para esta tarefa ser concluída.
Nesta etapa, você recuperará uma cópia do código do aplicativo de exemplo e escolherá uma fonte para hospedar o código. O pipeline pega o código da origem e, em seguida, executa ações nele.
Você pode usar uma das três opções como sua origem: um repositório GitHub, um bucket do Amazon S3 ou um repositório do AWS CodeCommit. Selecione sua preferência e siga as etapas abaixo:
Nesta etapa, você criará e configurará um pipeline simples com duas ações: source (originar) e deploy (implantar). Você fornecerá ao CodePipeline os locais de seu repositório de origem e ambiente de implementação.
a. Clique aqui para abrir o console do AWS CodePipeline.
- Na página de boas-vindas, clique em Create pipeline (Criar pipeline).
- Se esta for a primeira vez que você usa o AWS CodePipeline, uma página de introdução será exibida em vez da página de boas-vindas. Clique em Get started (Iniciar).
b. Na página Step 1: Name (Etapa 1: nome):
- Pipeline name (Nome de pipeline): insira o nome do seu pipeline, DemoPipeline.
- Clique em Next Step (Próxima etapa).
Nota: depois de criar um pipeline, não é possível alterar o nome dele.
c. Na página Step 2: Source (Etapa 2: origem), selecione o local da origem selecionada e siga as etapas abaixo:
d. Um verdadeiro pipeline de implantação contínua requer um estágio de construção, onde o código é compilado e testado na unidade. O CodePipeline permite que você conecte seu provedor de criação preferencial ao seu pipeline. No entanto, neste tutorial, você ignorará o estágio de construção.
- Na página Step 3: Build (Etapa 3: construir), escolha No Build (Sem construção).
- Clique em Next Step (Próxima etapa).
e. Na página Step 4: Beta (Etapa 4: Beta):
- Deployment provider (Provedor de implantação): clique em AWS Elastic Beanstalk.
- Application name (Nome do aplicativo): clique em My First Elastic Beanstalk Application (Meu primeiro aplicativo do Elastic Beanstalk).
- Environment name (Nome do ambiente): clique em Default-Environment.
- Clique em Next Step (Próxima etapa).
Nota: o nome "Beta" é apenas o nome dado por padrão a esse estágio do pipeline, assim como "Origem" era o nome dado ao primeiro estágio do pipeline.
f. Na página Step 5: Service Role (Etapa 5: função de serviço):
- Service Role (Função de serviço): clique em Create role (Criar função).
- Você será redirecionado para uma página do console do IAM que descreve a função AWS-CodePipeline-Service que será criada para você. Clique em Allow (Permitir)
- Após criar a função, você é redireciondo à página Step 5: Service Role (Etapa 5: função de serviço) onde AWS-CodePipeline-Service aparece no Role name (Nome da função). Clique em Next Step (Próxima etapa).
Nota: a criação da Service role (Função de serviço) é necessária apenas na primeira vez que você cria um pipeline no AWS CodePipeline. Se uma função de serviço já tiver sido criada, você poderá escolhê-la na lista suspensa de funções. Como a lista suspensa exibirá todas as funções do serviço do IAM associado à sua conta, se você escolher um nome diferente do padrão, certifique-se de que o nome é reconhecível como a função de serviço para o AWS CodePipeline.
Nesta etapa, você executará seu pipeline. Após seu pipeline ter sido criado, ele é executado automaticamente. Primeiro, ele detecta o código do aplicativo de exemplo no seu local de origem, agrupa os arquivos e os move para o segundo estágio que você definiu. Durante este estágio, ele passa o código para o Elastic Beanstalk, que contém a instância do EC2 que hospedará seu código. O Elastic Beanstalk lida com a implantação do código na instância do EC2.
a. Na página Step 6: Review (Etapa 6: revisar), reveja as informações e clique em Create pipeline (Criar pipeline).
b. Depois que o pipeline é criado, a página de status do pipeline é exibida e o pipeline é executado automaticamente. Você pode ver o progresso, bem como as mensagens de sucesso e falha, conforme o pipeline realiza cada ação.
Para verificar se o seu pipeline foi executado com sucesso, monitore o progresso do pipeline conforme ele se move em cada estágio. O status de cada estágio mudará de Ainda não executado para Em andamento e, então, para Bem-sucedido ou Falhou. O pipeline deve concluir a primeira execução dentro de alguns minutos.
c. Na área de status do estágio Beta, clique em AWS Elastic Beanstalk.
d. O console do AWS Elastic Beanstalk é aberto com os detalhes da implantação.
- Clique no ambiente que você criou anteriormente, chamado Default-Environment.
e. Clique no URL que aparece na parte superior direita da página para visualizar o site de exemplo que você implantou.
Nesta etapa, você revisará o código de exemplo e confirmará a mudança no seu repositório. O CodePipeline detectará seu código de exemplo atualizado e, em seguida, iniciará automaticamente a implantação em sua instância do EC2 por meio do Elastic Beanstalk.
Observe que a página da web de exemplo que você implementou se refere ao AWS CodeDeploy, um serviço que automatiza as implantações de códigos. No CodePipeline, o CodeDeploy é uma alternativa ao uso do Elastic Beanstalk para ações de implantação. Vamos atualizar o código de exemplo para que ele afirme corretamente que você implantou o exemplo usando o Elastic Beanstalk.
d. Retornar ao seu pipeline no console do CodePipeline. Em alguns minutos, você deverá ver a mudança de cor da fonte para azul, indicando que o pipeline detectou as mudanças feitas no seu repositório de origem. Quando isso ocorrer, ele moverá automaticamente o código atualizado para o Elastic Beanstalk.
- Após o status do pipeline exibir Succeeded (Bem-sucedido), na área de status do estágio Beta, clique em AWS Elastic Beanstalk.
e. O console do AWS Elastic Beanstalk é aberto com os detalhes da implantação. Selecione o ambiente que você criou anteriormente, chamado Default-Environment.
f. Clique no URL que aparece na parte superior direita da página para visualizar o site de exemplo novamente. Seu texto foi atualizado automaticamente em todo o pipeline de implantação contínua!
Para evitar cobranças futuras, você excluirá todos os recursos executados ao longo deste tutorial, incluindo o pipeline, o aplicativo do Elastic Beanstalk e a origem configurada para hospedar o código.
a. Primeiro, você excluirá seu pipeline:
- Na visualização de pipeline, clique em Edit (Editar).
- Clique em Delete (Excluir).
- Digite o nome do seu pipeline e clique em Delete (Excluir).
b. Em segundo lugar, exclua seu aplicativo do Elastic Beanstalk:
- Visite o console do Elastic Beanstalk.
- Clique em Actions (Ações).
- Depois clique em Terminate Environment (Encerrar ambiente).
Você criou com sucesso um pipeline de lançamento de software automatizado usando o AWS CodePipeline! Usando o CodePipeline, você criou um pipeline que usa o GitHub, o Amazon S3 ou o AWS CodeCommit como o local de origem para o código do aplicativo e depois implanta o código em uma instância do Amazon EC2 gerenciada pelo AWS Elastic Beanstalk. O pipeline implantará automaticamente seu código toda vez que houver uma mudança de código. Você está uma etapa mais perto de praticar a implantação contínua!
Agora que você aprendeu a criar um pipeline simples usando o AWS CodePipeline, você pode aprender mais visitando os recursos abaixo.
- Crie um pipeline de quatro estágios mais avançado seguindo este guia. Este pipeline usa um repositório GitHub para a origem, um servidor de construção Jenkins para criar e testar o projeto e um aplicativo do AWS CodeDeploy para implantar o código criado em um servidor de preparação.
- Gire rapidamente um pipeline de quatro estágios com um servidor de construção Jenkins usando nosso Pipeline Starter Kit (Kit inicial de pipeline).
- Saiba mais sobre Entrega contínua.