Um projeto com arquitetura de ponta a ponta focada em boas práticas de DevOps, integração contínua (CI), entrega contínua (CD) e Infraestrutura como Código (IaC).
Este repositório não é apenas um código-fonte, mas sim um ecossistema completo. Ele demonstra o uso de pipelines automatizados para testes de segurança, build de imagens Docker e deploy em ambientes provisionados via IaC (Terraform/Pulumi).
Para rodar este projeto localmente, você vai precisar de:
- Clone o repositório:
git clone https://github.com/seu-usuario/meu-projeto.git
cd meu-projeto- Suba o ambiente utilizando Docker Compose:
docker-compose up --buildA aplicação estará disponível em http://localhost:3000.
Utilizamos uma estratégia baseada em:
main: Branch protegida, refletindo o ambiente de produção.develop: Branch de integração principal.feature/*: Branches dedicadas para desenvolvimento de novas funcionalidades. Regras de proteção: Pull Requests exigem revisão de código e aprovação na pipeline de CI antes do merge.
- CI (Continuous Integration): Disparado em PRs e pushes. Realiza o build da imagem Docker, roda testes automatizados e executa análises de segurança utilizando
Trivy. - CD (Continuous Deployment): Disparado no push para a branch
main. Publica a imagem no GitHub Container Registry (GHCR) e realiza o deploy no Kubernetes nos ambientes destaginge, mediante aprovação manual,production.
A pasta /infra é reservada para automação de infraestrutura. Utilizamos ferramentas como Terraform para garantir a reprodutibilidade do ambiente na nuvem.
meu-projeto/
├── .github/
│ ├── workflows/ # Pipelines do GitHub Actions
│ └── CODEOWNERS # Definição de donos dos códigos para revisões
├── infra/ # Scripts de IaC (Terraform / Pulumi)
├── src/ # Código-fonte da aplicação
├── tests/ # Testes unitários e de integração
├── Dockerfile # Receita da imagem Docker
└── docker-compose.yml # Orquestração local de containers
- Ambientes Isolados: Credentials e secrets são geridos de forma separada no GitHub para
stagingeproduction. - Dependabot: Habilitado para manter as dependências do projeto atualizadas automaticamente de forma contínua.
- Cache Otimizado: Uso de actions/cache nas pipelines para agilizar os builds em até 70%.
Feito com 💻 e ☕.