7 min leitura • Guide 767 of 877
Gerenciamento de Projetos Infrastructure as Code
Infrastructure as Code (IaC) requer o mesmo rigor que desenvolvimento de aplicações. GitScrum ajuda times a gerenciar trabalho de infraestrutura com processos adequados de review e rastreamento de mudanças.
Estrutura de Tarefas de Infraestrutura
Formato de Tarefa IaC
ESTRUTURA DE TAREFA DE INFRAESTRUTURA:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TAREFA DE MUDANÇA DE INFRAESTRUTURA: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ INFRA-100: Adicionar cluster Redis para caching ││
│ │ ││
│ │ O QUÊ: ││
│ │ Provisionar cluster Redis ElastiCache (3 nodes) ││
│ │ ││
│ │ POR QUÊ: ││
│ │ Camada de caching de aplicação para PROJ-456 ││
│ │ Suporta: Armazenamento de sessão, cache de resposta API││
│ │ ││
│ │ RECURSOS: ││
│ │ • Cluster ElastiCache (cache.r6g.large x 3) ││
│ │ • Security group ││
│ │ • Parameter group ││
│ │ • Subnet group ││
│ │ ││
│ │ IMPACTO DE CUSTO: ││
│ │ Estimado: ~$400/mês ││
│ │ Aprovado: Sim (ticket de orçamento BUDGET-123) ││
│ │ ││
│ │ BLAST RADIUS: ││
│ │ Apenas novos recursos - sem impacto em existentes ││
│ │ ││
│ │ ROLLBACK: ││
│ │ terraform destroy para novos recursos ││
│ │ ││
│ │ JANELA DE DEPLOYMENT: ││
│ │ Qualquer hora (sem downtime esperado) ││
│ │ ││
│ │ CHECKLIST: ││
│ │ ☐ Código Terraform ││
│ │ ☐ Code review ││
│ │ ☐ Apply em staging ││
│ │ ☐ Testar conectividade ││
│ │ ☐ Apply em produção ││
│ │ ☐ Atualizar documentação ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Categorias de Mudança
TIPOS DE MUDANÇA DE INFRAESTRUTURA:
┌─────────────────────────────────────────────────────────────┐
│ │
│ BAIXO RISCO (Auto-aprovação OK): │
│ • Novos recursos (sem impacto em existentes) │
│ • Mudanças de tags │
│ • Aumento de capacidade │
│ • Adicionar monitoramento │
│ │
│ MÉDIO RISCO (Peer review necessário): │
│ • Mudanças de security group │
│ • Atualizações de policy IAM │
│ • Mudanças de configuração │
│ • Políticas de scaling │
│ │
│ ALTO RISCO (Múltiplos reviewers + janela): │
│ • Mudanças de banco de dados │
│ • Mudanças de rede │
│ • Operações destrutivas │
│ • Secrets de produção │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ TAREFA ALTO RISCO: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 🔴 INFRA-150: Migrar para nova VPC ││
│ │ ││
│ │ Risco: ALTO ││
│ │ Downtime: Esperado (janela de manutenção) ││
│ │ ││
│ │ APROVAÇÃO NECESSÁRIA: ││
│ │ ☐ Review do lead DevOps ││
│ │ ☐ Review de segurança (mudança de rede) ││
│ │ ☐ Change advisory board ││
│ │ ││
│ │ DEPLOYMENT: ││
│ │ ☐ Janela agendada: Sábado 2AM ││
│ │ ☐ Plano de rollback documentado ││
│ │ ☐ Time on-call notificado ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Workflow Terraform
Fluxo de Tarefa Terraform
WORKFLOW DE MUDANÇA TERRAFORM:
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. CRIAR TAREFA │
│ Documentar o quê/por quê/impacto │
│ │
│ 2. DESENVOLVER │
│ Escrever código Terraform │
│ terraform plan localmente │
│ │
│ 3. CODE REVIEW │
│ PR com output do terraform plan │
│ Reviewer verifica mudanças planejadas │
│ Aprovação baseada em risco │
│ │
│ 4. STAGING │
│ terraform apply em staging │
│ Verificar mudanças funcionam │
│ Atualizar tarefa com resultado │
│ │
│ 5. PRODUÇÃO │
│ Agendar janela (se necessário) │
│ terraform apply em produção │
│ Verificar e monitorar │
│ │
│ 6. DOCUMENTAR │
│ Atualizar runbooks │
│ Atualizar diagramas de arquitetura │
│ Fechar tarefa │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ EXEMPLO DE WORKFLOW NO GITSCRUM: │
│ │
│ Backlog → Em Progresso → Em Review → Staging → Prod → Done │
│ │ │ │ │ │ │
│ │ │ │ │ │ │
│ │ Escrevendo Esperando Testando Deployando │
│ │ código review em staging │
│ Planejado │
│ │
│ AUTOMAÇÃO: │
│ • CI roda terraform plan no PR │
│ • Merge para main aplica em staging │
│ • Tag de release aplica em produção │
└─────────────────────────────────────────────────────────────┘
Coordenação com Dev Work
Integrando Infra e App
COORDENANDO TRABALHO DE INFRA E APLICAÇÃO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ CENÁRIO: Feature precisa de nova infraestrutura │
│ │
│ EPIC: Sistema de Busca de Usuários │
│ ├── INFRA-100: Provisionar cluster Elasticsearch │
│ │ ├── Criar código Terraform │
│ │ ├── Configurar índices │
│ │ └── Setup monitoramento │
│ │ │
│ ├── APP-200: Implementar API de busca (espera INFRA-100) │
│ │ ├── Service layer │
│ │ ├── Endpoints API │
│ │ └── Testes de integração │
│ │ │
│ └── APP-201: UI de busca (espera APP-200) │
│ ├── Componentes de busca │
│ └── Resultados de busca │
│ │
│ SPRINT PLANNING: │
│ ═══════════════ │
│ │
│ Sprint 5: │
│ • INFRA-100: Provisionar Elasticsearch │
│ (Time de App pode começar mock enquanto espera) │
│ │
│ Sprint 6: │
│ • APP-200: Backend de busca (infra pronta) │
│ • APP-201: Iniciar UI │
│ │
│ VISIBILIDADE: │
│ • Dependências explícitas │
│ • Rastreamento de progresso │
│ • Alertas de bloqueio │
└─────────────────────────────────────────────────────────────┘
Janelas de Manutenção
Planejando Mudanças de Alto Risco
PLANEJAMENTO DE JANELA DE MANUTENÇÃO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TAREFA DE MANUTENÇÃO: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ INFRA-200: Upgrade de Banco de Dados ││
│ │ ││
│ │ JANELA: Sábado, 15 Jan 2024, 02:00-04:00 UTC ││
│ │ DOWNTIME ESPERADO: 30 minutos ││
│ │ ││
│ │ PRÉ-MANUTENÇÃO: ││
│ │ ☐ Notificar stakeholders (48h antes) ││
│ │ ☐ Atualizar página de status ││
│ │ ☐ Testar rollback em staging ││
│ │ ☐ Confirmar on-call disponível ││
│ │ ││
│ │ DURANTE MANUTENÇÃO: ││
│ │ ☐ Habilitar modo manutenção ││
│ │ ☐ Criar snapshot ││
│ │ ☐ Executar upgrade ││
│ │ ☐ Verificar saúde ││
│ │ ☐ Desabilitar modo manutenção ││
│ │ ││
│ │ PÓS-MANUTENÇÃO: ││
│ │ ☐ Monitorar por 1 hora ││
│ │ ☐ Atualizar status para resolvido ││
│ │ ☐ Documentar mudanças ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ COMUNICAÇÃO: │
│ • Email para stakeholders 48h antes │
│ • Banner de manutenção no aplicativo 24h antes │
│ • Atualização de página de status quando começar │
│ • All-clear quando completo │
└─────────────────────────────────────────────────────────────┘
Métricas de Infra
| Métrica | O Que Mede | Meta |
|---|---|---|
| Lead Time | Tarefa criada → deploy | < 1 semana |
| Change Failure Rate | Rollbacks necessários | < 5% |
| MTTR | Tempo para corrigir issue | < 1 hora |
| Change Success | Deploys bem-sucedidos | > 95% |