Melhores Práticas de Entrega
Um resumo condensado das 25 práticas mais importantes de entrega empresarial para equipes Python - extraídas de todas as páginas desta seção.
-
Pipelines de PR e release separados: PR prova o código; release promove o SHA da imagem imutável - Gerenciamento de Releases.
-
Marcar imagens com SHA do git: Nunca implante tags flutuantes em produção.
-
Migrações expandir-contrair: Passos de schema retrocompatíveis permitem rollback - Estratégias de Rollback.
-
Migração antes do shift de tráfego: Execute migrações Alembic/Django no job de release antes do aumento do peso do canary.
-
Documentar ordem de deploy de API para worker: Por serviço no
docs/deploy-order.mddo repositório. -
Pausar workers em passos de schema incompatíveis: Evite mensagens Celery venenosas.
-
Staging espelha tamanhos de pool de produção: Capture exaustão de pool SQLAlchemy pré-produção - Ambientes e Promoção de Configuração.
-
Smoke test do caminho de escrita e leitura:
/health/readysozinho é insuficiente. -
Feature flags desativadas por padrão: Avaliação do lado do servidor - Feature Flags e Entrega Progressiva.
-
Kill switches em runbooks: Desativar flag antes do rollback da imagem quando o caminho é isolado.
-
Desativar flags após 30 dias estáveis: Flags obsoletas são dívida de regressão.
-
Canary em 5-10% primeiro: Deixe "soaking" por 10+ minutos com guardrails p95.
-
Profundidade de fila e espera de pool como guardrail: Não apenas taxa de HTTP 5xx.
-
Auto-abortar canary em queima de SLO: Conecte análise ao controlador de rollout.
-
Blue-green mantém rollback aquecido: Troca rápida quando o canary é pulado.
-
Anotar dashboards com SHA do deploy: Correlacione incidentes em minutos.
-
Rastrear DORA por serviço: Frequência, tempo de liderança, CFR, MTTR - Métricas DORA.
-
Marcar incidentes com SHA do deploy: Taxa de falha de mudança precisa.
-
Vincular velocidade de deploy ao orçamento de erro: Congelar recursos quando o orçamento está baixo.
-
Notas de release incluem migração e rollback: Suporte lê o Slack
#releases. -
Índices CONCURRENTLY em tabelas Postgres grandes: Evite locks de migração.
-
Manter 10 tags de imagem de produção:
rollout undorequer histórico. -
Mesmo Python e hash de lock para API e worker: Desvios de runtime causam bugs sutis.
-
Pré-registrar experimentos A/B: Guardrails abortam variantes prejudiciais - Testes A/B e Experimentação.
-
Game day de rollback trimestral: MTTR DORA é uma habilidade praticada.
FAQs
Com que rapidez as equipes Python devem fazer deploy?
Tão rápido quanto as migrações e CFR permitirem. Diário com flags é comum; schema destrutivo semanal é normal.
Precisamos de Argo Rollouts?
Qualquer canary com análise de métricas funciona: Flagger, Spinnaker, pesos ALB personalizados.
Quando pular o trem de release?
Quando o orçamento de erro estiver esgotado, SEV1 aberto, ou o teste de carga do staging falhou.
Como lidar com releases de bibliotecas vs serviços?
Bibliotecas semver sob demanda; serviços fixam o lockfile por trem.
Qual é o soak mínimo do canary?
10 minutos para alto tráfego; mais tempo para baixo tráfego até que amostras estatísticas existam.
Notebooks devem usar o mesmo trem?
Não - jobs em lote promovem separadamente com a aprovação do proprietário dos dados.
Como documentar a ordem de deploy?
Markdown no repositório com seções de pausa de API, pausa de worker, migração e rollback.
O uv substitui a disciplina de release?
uv acelera CI; portões em testes, migrações e canary permanecem obrigatórios.
Quem é o dono da rotação do release captain?
O gerente de engenharia agenda; cada membro da squad serve trimestralmente.
Como vincular a entrega ao produto?
Compartilhe tendências DORA e temas de incidentes em revisões de roadmap - Contribuições para o Roadmap.
Relacionado
- Gerenciamento de Releases - versionamento e trens
- Feature Flags e Entrega Progressiva - exposição segura
- Estratégias de Rollback - escolhas de mitigação
- Métricas DORA - medição
- Pipelines CI/CD - profundidade do pipeline
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.