Melhores Práticas de Entrega
Um resumo condensado das 25 práticas mais importantes de entrega corporativa para equipes de engenharia Rust - extraído 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.
-
Marque imagens com git SHA: Nunca implante tags flutuantes em produção.
-
Expanda-contrata migrações: Passos de schema retrocompatíveis permitem rollback - Estratégias de Rollback.
-
Migração antes da mudança de tráfego: Execute
sqlx migrateno job de release antes do aumento do peso do canary. -
Documente a ordem de deploy de API para worker: Por serviço no
docs/deploy-order.mddo repositório. -
Pause workers em passos de schema incompatíveis: Evite mensagens de fila venenosas.
-
Staging espelha tamanhos de pool de produção: Capture o esgotamento do pool
sqlxpré-produção - Ambientes e Promoção de Configuração. -
Teste de fumaça no 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: Desative a flag antes do rollback da imagem quando o caminho estiver isolado.
-
Desative flags após 30 dias estáveis: Flags obsoletas são dívida de regressão.
-
Canary em 5-10% primeiro: Deixe em observação por 10+ minutos com guardrails de p95.
-
Monitore a profundidade da fila e o tempo de espera do pool: Não apenas a taxa de HTTP 5xx.
-
Aborte automaticamente o canary em caso de queima de SLO: Conecte a análise ao controlador de rollout.
-
Blue-green mantém rollback aquecido: Troca rápida quando o canary é pulado.
-
Anote dashboards com o SHA do deploy: Correlacione incidentes em minutos.
-
Rastreie DORA por serviço: Frequência, tempo de liderança, CFR, MTTR - Métricas DORA.
-
Marque incidentes com o SHA do deploy: Taxa de falha de mudança precisa.
-
Vincule a velocidade de deploy ao orçamento de erro: Congele recursos quando o orçamento estiver baixo.
-
Notas de release incluem migração e rollback: O suporte lê o Slack
#releases. -
Índices CONCURRENTLY em tabelas Postgres grandes: Evite locks de migração.
-
Retenha 10 tags de imagem de produção:
rollout undorequer histórico. -
Mesmo hash
Cargo.lockpara API e worker: Desalinhamento em tempo de execução causa bugs sutis. -
Pré-registre experimentos A/B: Guardrails abortam variantes prejudiciais - Testes A/B e Experimentação.
-
Game day de rollback trimestral: DORA MTTR é uma habilidade praticada.
FAQs
Quão rápido as equipes Rust devem implantar?
Equipes de elite implantam diariamente com CI forte; semanal é aceitável se CFR e MTTR estiverem saudáveis.
CI Mínimo antes da produção?
cargo test, clippy -D warnings, cargo audit, testes de integração, dry-run de migração em staging.
Um workspace, muitos binários?
Um único trem de release coordena o SHA da API + worker; documente no README do monorepo.
Quando pular o canary?
Hotfix com artefato idêntico testado em staging + kill switch de flag pronto; documente a exceção.
Tempo de compilação bloqueia tempo de liderança?
sccache, divisão de crates e paralelismo de CI são investimentos de entrega.
CLI via cargo-dist?
Pipeline separado do servidor; mesma disciplina semver e anexo de SBOM.
Banco de dados por ambiente?
Nunca aponte staging para o DB de produção; apenas snapshots anonimizados.
Quem é dono do documento de ordem de deploy?
Tech lead do serviço; revise a cada épico de schema.
Política de congelamento?
Picos de comércio + final de ano; exceções de CVE de segurança com aprovação do EM.
Medir melhoria na entrega?
Escolha uma métrica DORA por trimestre; vincule a uma prática concreta desta lista.
Relacionados
- Gerenciamento de Releases - versionamento
- Estratégias de Rollback - política de reversão
- Métricas DORA - medição
- Playbooks de Resposta a Incidentes - quando o deploy falha
- Melhores Práticas de Governança - consistência de frota
Versões de Stack: Esta página foi escrita para Rust 1.97.0 (edição 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, e Polars 0.46+.