top of page

Automação eficiente de integração e entrega contínua com AWS CodePipeline e Amazon ECS

Se a sua equipe enfrenta desafios em integrar e entregar atualizações de software de forma ágil e confiável, uma solução de automação pode transformar os processos. Na nScreen, utilizamos o AWS CodePipeline integrado ao Amazon ECS para automatizar a entrega contínua de aplicações, garantindo que o seu software seja atualizado com eficiência e precisão.


A seguir, vamos compartilhar como a nScreen conseguiu automatizar com sucesso a pipeline de entrega contínua de software, utilizando essas tecnologias AWS para resolver problemas reais.


O Desafio da automação na entrega contínua

Em ambientes dinâmicos e com ciclos rápidos de atualização, manter a consistência na entrega de novas versões de software pode ser um desafio. A manualidade no processo de deploy, muitas vezes, resulta em atrasos, erros e dificuldades de integração.  Além disso, a necessidade de gerenciamento manual de servidores e infraestrutura aumenta o overhead, demandando mais tempo e esforço da equipe técnica.Utilizar o AWS CodePipeline e o Amazon ECS não só resolve esses problemas, como também automatiza o processo de deploy, reduzindo o tempo gasto com servidores e eliminando grande parte das falhas humanas no processo de entrega. Isso garante um processo otimizado, com entregas mais rápidas, seguras e eficientes, além de liberar a equipe para focar em atividades de maior valor estratégico.


Execução da solução

Passos implementados:

  • Mapeamento dos desafios: Avaliamos os processos manuais existentes que impactavam a velocidade e confiabilidade das entregas, identificando os pontos críticos que poderiam ser automatizados, como o deploy de novas versões e o rollback automático em caso de falhas.

  • Configuração do AWS CodePipeline: Configuramos o AWS CodePipeline e o AWS CodeBuild para criar uma esteira de integração contínua (CI) e entrega contínua (CD), permitindo que cada modificação de código fosse automaticamente testada e implantada. A integração com o Amazon ECS garantiu que os serviços fossem escalados e distribuídos conforme as novas versões fossem lançadas.

  • Automação com Amazon ECS: Utilizamos o Amazon Elastic Container Service (ECS) para orquestrar a entrega contínua de contêineres, permitindo uma escalabilidade eficiente e garantindo que os serviços estivessem sempre atualizados com as últimas versões. A automação do ECS facilitou a distribuição das novas versões em múltiplas instâncias de maneira ágil e sem downtime.


Etapas da implementação

Fase 1: Preparação e integração

  • Integramos o CodePipeline com o Git, garantindo que toda mudança de código fosse automaticamente detectada.

  • Utilizamos o AWS CodeBuild para automatizar a criação de builds e executar testes de unidade e integração.

Fase 2: Deploy automatizado no Amazon ECS

  • Configuramos o ECS para gerenciar o deploy das novas versões de serviços em contêineres, garantindo a distribuição contínua e a escalabilidade.

  • Implementamos monitoramento automatizado usando o AWS CloudWatch, garantindo que falhas no processo de deploy fossem identificadas e corrigidas rapidamente.

Fase 3: Testes e validação

  • Automatizamos testes de performance para garantir que cada nova versão funcionasse de forma otimizada.

  • Verificamos o comportamento de cada novo deploy em diferentes ambientes (dev, staging e produção) para garantir compatibilidade e estabilidade.


Resultados obtidos

A implementação do AWS CodePipeline e do Amazon ECS permitiu à nScreen alcançar resultados significativos, como:

  • Automatização do processo de deploy: O pipeline automatizado eliminou etapas manuais, garantindo um fluxo contínuo de integração e entrega, reduzindo erros humanos e agilizando o processo.

  • Escalabilidade e flexibilidade: Utilizando o Amazon ECS, foi possível escalar as aplicações de forma automática com base na demanda, garantindo alta disponibilidade e otimizando recursos computacionais.


Diagrama de arquitetura


  1. Os desenvolvedores enviam commits para o repositório GitHub. Cada novo commit em uma branch (como demo, dev, staging, ou prod) aciona automaticamente o pipeline no AWS CodePipeline.

  2. O AWS CodePipeline extrai o código-fonte do repositório GitHub com base no branch selecionado. iniciando o pipeline de integração contínua (CI). Para garantir mais segurança, usamos o AWS SSM para armazenar as credenciais do GitHub de forma protegida, assegurando uma comunicação segura entre os serviços.

  3. CodePipeline então aciona o AWS CodeBuild, No CodeBuild, a aplicação é empacotada em uma imagem Docker. O buildspec.yml no repositório GitHub define os comandos e etapas necessários para construir a aplicação.

  4. Após a construção da imagem Docker, o CodeBuild pública essa imagem no GitHub Container Registry (GHCR), garantindo que a imagem esteja disponível para deploy nos ambientes.

  5. Após a conclusão do build e publicação da imagem no repositório de containers, o AWS CodePipeline passa para a fase de deploy no Amazon ECS. Usando o imagedefinitions.json, o serviço ECS é atualizado com a nova versão da aplicação.

  6. O Amazon ECS recupera a nova imagem do GitHub Container Registry e implementa a nova versão da aplicação.

  7. A nova versão da aplicação agora está sendo executada em containers gerenciados pelo Amazon ECS, usando instâncias Amazon EC2. A aplicação ficará disponível após atualização bem-sucedida.


Informações complementares sobre as ferramentas AWS

AWS CodePipeline

O AWS CodePipeline automatiza os processos de build, teste e deploy, oferecendo integração contínua (CI) e entrega contínua (CD). A ferramenta facilita a criação de pipelines customizáveis e pode ser integrada com outros serviços da AWS, como CodeBuild, SSM, ECS, S3 e CloudWatch.

Amazon ECS

O Amazon Elastic Container Service (ECS) permite a execução de contêineres em escala, simplificando o gerenciamento de aplicações distribuídas. O ECS oferece integração nativa com o CodePipeline para automatizar o deploy de novas versões, com suporte a escalabilidade automática e zero downtime.


Conclusão

Com o uso de AWS CodePipeline e Amazon ECS, a nScreen conseguiu automatizar com sucesso todo o processo de integração e entrega contínua, resultando em deploys mais rápidos, seguros e escaláveis. Essa solução proporciona uma infraestrutura otimizada para atender às demandas crescentes do mercado, garantindo que sua equipe possa focar na inovação e no desenvolvimento de novas funcionalidades.


 

Sobre a nScreen

nScreen | Eclipseworks company

Somos o braço especializado em cloud da Eclipseworks, atuamos da migração on premise para a nuvem, até o uso de serviços avançados como IA Generativa. Além disso, nós somos especialistas na criação de experiências digitais, combinando metodologias centradas no usuário com engenharia de software avançada para desenvolver soluções inovadoras e eficazes.




25 visualizações
bottom of page