Inspirada na Rinha de Backend , a Rinha de DevOps é uma competição técnica para profissionais de DevOps e SRE demonstrarem suas habilidades na construção de infraestruturas resilientes, escaláveis e observáveis.
O desafio consiste em implementar a infraestrutura completa para um sistema de e-commerce simulado, com foco em alta disponibilidade, monitoramento, resiliência a falhas e automação de CI/CD, tudo isso com recursos computacionais extremamente limitados.
(clique em saiba mais para exibir)
+---------------------+
| |
| Nginx |
| Load Balancer |
| (porta 4444) |
| |
+---------------------+
|
|
v
+---------------------+
| |
| API Gateway |
| (Traefik) |
| |
+---------------------+
/ | \
/ | \
+-------------+ +-------------+ +-------------+
| | | | | |
| API Catálogo| | API Pedidos | |API Pagamentos|
|(2 instâncias) |(2 instâncias) |(2 instâncias)|
| | | | | |
+-------------+ +-------------+ +-------------+
| | |
| | |
v v v
+-------------------------------------------------+
| |
| PostgreSQL |
| |
+-------------------------------------------------+
|
|
+----------------+----------------+
| |
v v
+---------------+ +-----------------+
| | | |
| Cache | | Prometheus |
| (Redis) | | (Monitoramento) |
| | | |
+---------------+ +-----------------+
|
|
v
+----------------+
| |
| CI/CD |
|(GitHub Actions)|
| |
+----------------+
Consulte o arquivo desafio/regras.md para as regras detalhadas do desafio.
Pontos principais:
- Limite de recursos: 1.5 CPUs e 3GB de RAM para toda a infraestrutura
- Uso obrigatório de Docker/Docker Compose
- Regra de ouro: Implementar alta disponibilidade mesmo com recursos limitados
- APIs serão fornecidas como imagens prontas (não precisam ser desenvolvidas)
Implementar a infraestrutura completa para suportar três microserviços:
- API de Catálogo - Responsável pelo catálogo de produtos
- API de Pedidos - Gerencia carrinhos e pedidos
- API de Pagamentos - Processa pagamentos
Sua solução deve garantir:
- Alta disponibilidade (zero downtime durante atualizações)
- Resiliência a falhas (recuperação automática)
- Monitoramento e observabilidade
- Pipeline de CI/CD automatizado
- Tudo isso com recursos extremamente limitados!
Os projetos serão avaliados em quatro dimensões principais:
-
Performance (30%)
- Throughput máximo sustentável
- Tempo de resposta sob carga
- Uso eficiente dos recursos
-
Resiliência (30%)
- Tempo de recuperação após falha
- Zero downtime durante atualizações
- Resistência a cenários de falha
-
Observabilidade (20%)
- Qualidade do monitoramento implementado
- Facilidade de diagnóstico de problemas
- Configuração de alertas
-
Código e Automação (20%)
- Qualidade e legibilidade do código de infraestrutura
- Pipeline de CI/CD
- Documentação
As imagens dos serviços estão disponíveis no Docker Hub:
rinhadevops/api-catalogo:latest
rinhadevops/api-pedidos:latest
rinhadevops/api-pagamentos:latest
Você pode incorporá-las diretamente no seu docker-compose.yml.
- Faça um fork deste repositório
- Implemente sua solução
- Crie um Pull Request adicionando seu projeto na pasta
/participantes/seu-usuario-github/
- Certifique-se de incluir um README.md explicando sua abordagem
Veja instruções detalhadas em participantes/SUBMISSAO.md.
# Instalar Gatling
cd testes/gatling
./gatling.sh -s ECommerceSimulation
# Instalar Chaos Toolkit
cd testes/chaos
chaos run chaos-test.json
P: Posso usar Kubernetes em vez de Docker Compose? R: Não. Para manter a competição acessível e focada, exigimos Docker Compose.
P: Posso modificar as APIs? R: Não. As APIs são fornecidas como imagens prontas e não devem ser modificadas.
P: Posso usar serviços em nuvem? R: Não. A solução deve rodar localmente usando apenas Docker Compose.
P: Há alguma preferência quanto às tecnologias utilizadas? R: Desde que seja compatível com Docker Compose e atenda aos requisitos de recursos, você pode usar as tecnologias que preferir.
Boa sorte e que vença a melhor infraestrutura!