Testar grátis
8 min leitura Guide 806 of 877

Gestão de Ambientes

Ambientes consistentes evitam surpresas. O GitScrum ajuda a rastrear quais recursos estão implantados onde e coordenar promoções de ambiente.

Estratégia de Ambiente

Tipos de Ambiente

VISÃO GERAL DO AMBIENTE:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ DESENVOLVIMENTO (DEV):                                     │
│ ─────────────────────                                       │
│ • Desenvolvimento ativo de recursos                        │
│ • Implantações frequentes (múltiplas/dia)                  │
│ • Pode estar instável                                       │
│ • Desenvolvedores têm acesso total                          │
│ • Dados de exemplo/teste                                    │
│                                                             │
│ STAGING:                                                    │
│ ────────                                                    │
│ • Ambiente semelhante à produção                           │
│ • Teste pré-produção                                        │
│ • Mesma configuração da produção                           │
│ • Dados realistas (mas não reais)                          │
│ • Implantar antes da produção                              │
│                                                             │
│ PRODUÇÃO (PROD):                                            │
│ ─────────────────                                           │
│ • Tráfego de usuários ao vivo                               │
│ • Requisitos de maior estabilidade                         │
│ • Acesso restrito                                           │
│ • Dados reais                                               │
│ • Monitoramento e alertas                                  │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ FLUXO DE PROMOÇÃO:                                          │
│                                                             │
│   DEV ──────→ STAGING ──────→ PRODUÇÃO                     │
│     │            │               │                          │
│     │            │               │                          │
│     ▼            ▼               ▼                          │
│  Testes unit   Testes de       Testes de                   │
│  Testes dev    integração      fumaça                      │
│               Aprovação de                                 │
│               stakeholders                                  │
└─────────────────────────────────────────────────────────────┘

Ambientes Estendidos

AMBIENTES ADICIONAIS:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ AMBIENTES OPCIONAIS:                                        │
│                                                             │
│ LOCAL:                                                      │
│ Máquina do desenvolvedor                                  │
│ Iteração rápida                                            │
│ Pode não corresponder exatamente à produção               │
│                                                             │
│ QA:                                                         │
│ Teste QA dedicado                                          │
│ Estável para execução de testes                            │
│ Gerenciamento de dados de teste                            │
│                                                             │
│ UAT (Teste de Aceitação do Usuário):                       │
│ Teste de stakeholder/cliente                               │
│ Validação de negócio                                       │
│ Aprovação antes da produção                                │
│                                                             │
│ PERFORMANCE/CARGA:                                          │
│ Teste de performance                                        │
│ Infraestrutura escalada                                    │
│ Simulação de carga realista                                │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ MATRIZ DE AMBIENTE:                                         │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ AMB        PROPÓSITO     DADOS        ACESSO           ││
│ │ ───        ─────────     ─────        ──────           ││
│ │ Local      Desenvolvimento Mock/Amostra Desenvolvedor  ││
│ │ Dev        Integração    Dados teste   Equipe          ││
│ │ QA         Teste         Dados teste   QA + Equipe     ││
│ │ UAT        Aceitação     Sanitizados   Stakeholders    ││
│ │ Staging    Pré-prod      Realistas     Limitado        ││
│ │ Prod       Ao vivo       Reais         Muito limitado  ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ MAIS AMBIENTES = Mais sobrecarga                          │
│ Equilíbrio: Suficiente para processo, não muitos para gerenciar │
└─────────────────────────────────────────────────────────────┘

Paridade de Ambiente

Mantendo Ambientes Consistentes

PARIDADE DE AMBIENTE:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ O PROBLEMA:                                                 │
│ ───────────                                                 │
│ "Funciona no staging, quebra na produção"                 │
│                                                             │
│ CAUSAS:                                                     │
│ • Versões diferentes de SO                                │
│ • Versões diferentes de dependências                      │
│ • Configuração diferente                                  │
│ • Características de dados diferentes                     │
│ • Configuração de rede diferente                          │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ SOLUÇÕES:                                                   │
│                                                             │
│ CONTAINERIZAÇÃO:                                            │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Mesma imagem Docker em todos os ambientes              ││
│ │                                                         ││
│ │ ┌──────────┐   ┌──────────┐   ┌──────────┐            ││
│ │ │   DEV    │   │ STAGING  │   │   PROD   │            ││
│ │ │          │   │          │   │          │            ││
│ │ │  imagem: │   │  imagem: │   │  imagem: │            ││
│ │ │  v1.2.3  │   │  v1.2.3  │   │  v1.2.3  │            ││
│ │ │          │   │          │   │          │            ││
│ │ └──────────┘   └──────────┘   └──────────┘            ││
│ │      ↑              ↑              ↑                   ││
│ │      └──────────────┴──────────────┘                   ││
│ │           Mesma imagem, mesmo comportamento            ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ INFRAESTRUTURA COMO CÓDIGO:                                 │
│ • Terraform, Pulumi para infraestrutura                   │
│ • Manifestos Kubernetes para implantação                  │
│ • Ansible para configuração                               │
│ • Controlado por versão, revisável                        │
│                                                             │
│ GERENCIAMENTO DE CONFIGURAÇÃO:                              │
│ • Variáveis de ambiente para diferenças                   │
│ • Gerenciamento de segredos (Vault, AWS Secrets)          │
│ • Feature flags para comportamento                        │
└─────────────────────────────────────────────────────────────┘

Rastreamento de Implantação

Visibilidade

RASTREAMENTO DE STATUS DO AMBIENTE:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ DASHBOARD DE IMPLANTAÇÃO:                                    │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ STATUS DO AMBIENTE                                       ││
│ │                                                         ││
│ │ AMB        VERSÃO   IMPLANTADO    STATUS    RECURSOS   ││
│ │ ───        ───────   ──────────    ──────    ────────  ││
│ │ Dev        v2.4.1    10 min atrás   🟢        15 novos  ││
│ │ QA         v2.4.0    2 horas atrás  🟢        12 novos  ││
│ │ Staging    v2.4.0    1 dia atrás    🟢        12 novos  ││
│ │ Prod       v2.3.0    1 semana atrás 🟢        baseline  ││
│ │                                                         ││
│ │ ─────────────────────────────────────────────────────── ││
│ │                                                         ││
│ │ PROMOÇÕES PENDENTES:                                     ││
│ │ • v2.4.0: Staging → Prod (agendado: 27 Jan)           ││
│ │ • v2.4.1: QA → Staging (aguardando aprovação QA)      ││
│ │                                                         ││
│ │ IMPLANTAÇÕES RECENTES:                                   ││
│ │ • v2.4.1 → Dev por @alex (10 min atrás)               ││
│ │ • v2.4.0 → Staging por @jordan (1 dia atrás)          ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ O QUE ESTÁ ONDE:                                           │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ STORY-456: Novo fluxo de checkout                       ││
│ │                                                         ││
│ │ Dev:       ✅ Implantado (v2.4.1)                      ││
│ │ QA:        ✅ Implantado (v2.4.0)                      ││
│ │ Staging:   ✅ Implantado (v2.4.0)                      ││
│ │ Prod:      ⏳ Pendente (em v2.4.0, agendado 27 Jan)   ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘

Processo de Promoção

Portões de Ambiente

WORKFLOW DE PROMOÇÃO:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ DEV → QA PROMOÇÃO:                                         │
│ ──────────────────                                          │
│ ☐ Todos os testes unitários passando                      │
│ ☐ Revisão de código aprovada                              │
│ ☐ Build bem-sucedido                                       │
│ ☐ Recurso completo para teste                              │
│                                                             │
│ QA → STAGING PROMOÇÃO:                                     │
│ ─────────────────────                                       │
│ ☐ Teste QA completo                                        │
│ ☐ Sem bugs críticos                                        │
│ ☐ Testes de regressão passando                             │
│ ☐ Aprovação QA                                              │
│                                                             │
│ STAGING → PRODUÇÃO:                                        │
│ ───────────────────                                         │
│ ☐ Verificação staging completa                             │
│ ☐ Aprovação stakeholder (se necessário)                    │
│ ☐ Notas de release preparadas                              │
│ ☐ Plano de rollback pronto                                 │
│ ☐ Janela de implantação confirmada                         │
│ ☐ Equipe de plantão notificada                             │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ TAREFA DE PROMOÇÃO:                                         │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ RELEASE-024: Promover v2.4.0 para Produção             ││
│ │                                                         ││
│ │ VERSÃO: v2.4.0                                          ││
│ │ ATUAL: Staging                                          ││
│ │ ALVO: Produção                                           ││
│ │ AGENDADO: 27 Jan, 14h UTC                              ││
│ │                                                         ││
│ │ CHECKLIST:                                               ││
│ │ ☑ Testes staging passaram                              ││
│ │ ☑ Notas de release publicadas                           ││
│ │ ☑ Plano de rollback documentado                         ││
│ │ ☐ Implantar na produção                                ││
│ │ ☐ Testes de fumaça                                      ││
│ │ ☐ Monitorar por 1 hora                                  ││
│ │ ☐ Marcar release como completo                          ││
│ │                                                         ││
│ │ RESPONSÁVEL: @jordan                                    ││
│ │ APROVADORES: @tech-lead, @product-owner                ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘

Solução de Problemas de Ambiente

Problemas Comuns

PROBLEMAS DE AMBIENTE:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ PROBLEMA: "Funciona localmente, falha no dev"             │
│ ─────────────────────────────────────────────               │
│ CAUSAS:                                                     │
│ • Variáveis de ambiente ausentes                          │
│ • Versões diferentes de dependências                      │
│ • Serviços apenas locais não disponíveis                  │
│                                                             │
│ CORREÇÃO:                                                   │
│ • Usar Docker para desenvolvimento local                  │
│ • Documentar todas as variáveis de ambiente               │
│ • Bloquear versões de dependências                        │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ PROBLEMA: "Staging passou, produção falhou"               │
│ ───────────────────────────────────────────                 │
│ CAUSAS:                                                     │
│ • Diferenças de volume de dados                           │
│ • Comportamento de serviço terceiro                       │
│ • Deriva de configuração                                   │
│                                                             │
│ CORREÇÃO:                                                   │
│ • Espelhar tráfego de produção para staging               │
│ • Infraestrutura como código (sem mudanças manuais)      │
│ • Auditorias regulares de ambiente                        │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ PROBLEMA: "Ambiente está lento/quebrado"                  │
│ ─────────────────────────────────────────                   │
│ CAUSAS:                                                     │
│ • Esgotamento de recursos                                 │
│ • Implantação ruim                                         │
│ • Corrupção de dados                                       │
│                                                             │
│ CORREÇÃO:                                                   │
│ • Monitoramento e alertas                                 │
│ • Procedimentos de refresh de ambiente                     │
│ • Restauração rápida de estado bom conhecido              │
└─────────────────────────────────────────────────────────────┘

Soluções Relacionadas