Melhores Práticas para PostgreSQL Gerenciado
O PostgreSQL gerenciado remove o trabalho de aplicação de patches, mas não a engenharia de desempenho. Consultas, índices, pools de conexão e simulações de restauração continuam sendo seu trabalho no RDS, Cloud SQL, Aurora, Neon e Supabase.
Como Usar Esta Lista
- Execute antes do corte de produção e após qualquer incidente do provedor
- Combine com o ADR de Seleção de Nuvem para contexto de escolha de plataforma
- Assuma que o gerenciado não corrige índices ausentes nem tempestades de conexão
A - Provisionamento
- Criptografia em repouso habilitada na criação. Chave KMS documentada; sem snapshots não criptografados.
- Apenas rede privada. Sem IP público, a menos que uma exceção seja aprovada.
- Multi-AZ / HA regional para produção. Apenas dev/staging Single-AZ.
- Proteção contra exclusão em produção. Alinhado com
prevent_destroydo Terraform. - Versão principal fixada explicitamente. PostgreSQL 18.x, não "padrão" flutuante.
B - Configuração
- Grupo de parâmetros personalizado: logging, pg_stat_statements, timeouts. Não o grupo padrão.
- PgBouncer ou pooler do provedor para tráfego de aplicativos. Conexão direta apenas para migrações.
- max_connections vs. cálculo de pool documentado. Veja o artigo sobre cálculo de conexões.
- SSL verify-full com bundle CA do provedor nos aplicativos. Rotacionado antes da expiração da CA.
- Lista de extensões permitidas no repositório; CI testa CREATE EXTENSION em staging.
C - Propriedade do Aplicativo
- Revisão semanal do pg_stat_statements. Top 10 por total_exec_time.
- Índices pertencentes ao repositório de migrações. Não alterações apenas no console.
- Retentativa idempotente do aplicativo em failover. Desconexões TCP esperadas.
- Roteamento de réplica de leitura com proteção contra lag. Nem todas as leituras cegamente para a réplica.
- Sem superusuário/usuário master no DSN do aplicativo. Funções por serviço.
D - Confiabilidade e DR
- Retenção de backup atende à política de RPO. Janela PITR testada.
- Simulação de restauração trimestral para não produção. Documentar minutos para banco de dados legível.
- Jogo de simulação de failover anualmente. Medir RTO; corrigir lacunas de pooler/DNS.
- Slots de replicação monitorados. Consumidores de CDC não podem preencher o disco.
- Janela de manutenção anunciada; staging atualizado primeiro.
E - Custo e Governança
- Revisão de dimensionamento correto trimestral. Crédito de CPU, crescimento de armazenamento, réplicas ociosas.
- Tags: env, service, owner, cost-center. Pronto para rateio financeiro.
- IaC como fonte da verdade. Derivação do console corrigida ou proibida.
- Egress minimizado: aplicativo e banco de dados na mesma região/AZ, quando possível.
- ADR arquivado quando a plataforma muda. Link na wiki da equipe.
FAQs
Gerenciado significa sem DBA?
Você ainda precisa de expertise em Postgres para consultas, locks, extensões e incidentes.
Hotfix no console OK?
Apenas emergência; faça o backport da alteração para o Terraform em 24h ou reverta.
Quando adicionar réplica de leitura?
Quando a CPU primária > 60% sustentada e a carga de trabalho pesada em leitura estiver isolada.
Branch Neon para produção?
Não - branches para CI/preview; produção em endpoint estável com política de suspensão revisada.
Função de serviço Supabase?
Apenas servidor; nunca no bundle do navegador.
Performance Insights é suficiente?
Complementa pg_stat_statements; não substitui a disciplina de EXPLAIN.
DR entre nuvens?
Caro; documente o RPO da latência de replicação assíncrona realisticamente.
Atualizar versão principal?
Migração blue/green ou replicação lógica; teste a compatibilidade da extensão primeiro.
Quem é o proprietário das alterações de parâmetros?
A plataforma aplica; a equipe de serviço solicita com evidências de teste de carga.
Monitoramento mínimo?
Métricas do provedor + pg_stat_statements + p95 do aplicativo + lag + alertas de disco.
Relacionado
- Noções Básicas de PostgreSQL Gerenciado - responsabilidade
- AWS RDS & Aurora Postgres - AWS
- Melhores Práticas de Monitoramento - observabilidade
- Cálculo de Conexões - dimensionamento de pool
- Verificação de Backup - prova de restauração
Versões de Stack: Esta página foi escrita para PostgreSQL 18.4 (estável 18, manutenção 17), pgvector 0.8+, PgBouncer 1.x, Patroni 3.x e PostGIS 3.5+.