Vou construir github actions ci cd automatizar implantar aws ec2, github actions docker gitlab
Desenvolvedor Full Stack: Supabase, Docker, GitHub
Sobre este Serviço
Seu lançamento é feito à mão de um laptop, e um push ruim pode derrubar a produção. Eu configurei um pipeline GitHub Actions CI/CD para que uma mescla para o main construa, teste e envie por conta própria, sem que ninguém precise pedir pra uma pessoa fazer o push.
O problema é que as etapas de release ficam na cabeça de uma pessoa. Eu as movo para um workflow que fica ao lado do seu código.
Você recebe:
- lint e testes em cada pull request
- imagem Docker construída no merge, enviada para o Amazon ECR com uma tag de versão clara
- o main vai para staging automaticamente (serviço ECS ou EC2)
- produção requer aprovação manual com clique
- rollback com um clique para a imagem anterior
- segredos movidos do código para secrets do Actions ou Systems Manager
- acesso à AWS através de uma função IAM de menor privilégio, sem chaves de longa duração armazenadas em nenhum lugar
- um README: como funciona e como adicionar um serviço
Processo: eu leio seu Dockerfile e seus scripts, monto o workflow em um branch, rodo uma release real para staging enquanto você acompanha, e então passo tudo adiante.
Preciso: acesso ao repositório, uma função IAM ou usuário para ECR e ECS, seus comandos de teste e lint, e quem aprova as releases.
Me envie uma mensagem antes de pedir para eu confirmar sua stack e escopo.
Ferramentas:
Docker
•
GitLab
•
GitHub
Frameworks:
Npm
Provedor de Nuvem:
Amazon Web Services
•
microsoft azure
Linguagem de programação:
Bash
•
JavaScript
•
PHP
•
Python
Especialidade:
Instalação
•
Desenvolvimento
•
Configuração
Perguntas frequentes
Tradução automática
Que acesso você precisa e é seguro?
Acesso ao repositório e uma função IAM limitada apenas para ECR e ECS. O pipeline faz login com essa função, então nenhuma chave AWS de longa duração fica no GitHub. Você revoga ambas quando eu terminar. Não preciso do seu root ou dos dados do seu app.
Você escreve meus testes?
Não. eu conecto seus comandos de lint e teste existentes no pipeline. Se você não tiver nenhum, o pipeline ainda constrói e envia, e deixo um espaço claro onde os testes podem ser inseridos depois. Escrever testes não faz parte deste serviço.
Você constrói minha infraestrutura AWS?
Não. Seu serviço ECS ou servidor EC2, mais staging e produção, já precisam existir. Eu conecto o GitHub a eles. Se o lado AWS ainda precisar de construção, me avise que eu coto isso separadamente deste serviço.
Quais stacks e ferramentas você cobre?
Apps Node.js e Next.js que tenham um Dockerfile, implantando no ECS ou EC2 na AWS a partir de GitHub Actions. Jenkins, GitLab CI, Kubernetes e EKS ficam de fora deste serviço. Me avise se seu stack for diferente e eu digo.
Quanto tempo leva?
Staging Auto Deploy leva 3 dias, Safe Production Release leva 5, Full Team Handover leva 7. O relógio começa quando eu tenho acesso ao repositório e à AWS, então envie os dois cedo. Acesso lento do seu lado atrasa a data
O que acontece se uma release der ruim?
Rollback é um clique no GitHub. Ele faz o redeploy da tag da imagem anterior, então você volta para a última release estável em minutos. Eu executo isso uma vez durante a entrega para que você veja funcionando no seu próprio serviço antes de fechar.
Quem pode aprovar a produção?
Você indica os usuários do GitHub. Somente eles podem clicar em approving, então uma mescla acidental nunca chega à produção. Alguns planos do GitHub limitam esse recurso em repositórios privados, então eu verifico seu plano antes de começar qualquer coisa.
Minha equipe consegue liberar sem mim depois?
Sim. Qualquer pessoa com direitos de merge envia para staging ao fazer merge. Seus aprovadores nomeados liberam a produção com um clique. O README explica como funciona e como adicionar um novo serviço à mesma pipeline depois.
E se eu precisar de alterações após a entrega?
Revisões cobrem correções do que eu construí, então qualquer coisa que não se comporte conforme descrito é corrigida. Um novo serviço, um novo ambiente ou um cloud diferente é novo escopo. Adicione o segundo serviço extra ou me avise.
Por que te enviar uma mensagem antes de fazer o pedido?
Assim posso ler seu Dockerfile e confirmar se ECS ou EC2 se encaixa antes de você pagar. Isso evita que você compre um plano que não combina com sua configuração, e eu te digo de antemão se seu código precisa de uma mudança primeiro, não depois.

