Pular para o conteúdo

apps/scalability/canary-deployment

140 · Escalabilidade & Infraestrutura · ≈ 5 min de estudo

Canary Deployment

A versão nova recebe primeiro uma fração pequena dos clientes — 1%, depois 5%, 20% e 100% — e cada fase só avança se as métricas dela, medidas separadamente das da versão estável, ficarem dentro dos limites. Se piorar, todo o tráfego volta para a versão estável sozinho. Use para liberar mudanças de risco moderado observando o comportamento com tráfego real.

Veja também: scalability/blue-green-deployment — corte de 100% de uma vez.

passos
5
arquivos
3
testes
0
tecnologias
3
Lógica puraTypeScriptBunElysia
Baixar cartão

Cenário

O banco publica um modelo novo de limite de crédito. A 2.0.0 é saudável e percorre as quatro fases até 100%. A 2.0.1 falha uma em cada doze requisições: com 1% do tráfego, esse erro sumiria numa média geral, mas medida sozinha ela passa do limite e o roteador a desliga na primeira fase — 99% dos clientes nunca a encontram.

Planta

Estados
10/10
Fase1Fase5Fase20Fase100ConcluidoRollback1% dos clienteserros e p99 docandidato okokokokerro acima de 2% ou p99muito acima do estavel100% na versao estavel
10

10 passos — reproduza para seguir o fluxo

  • chamada
  • resposta ou assíncrono
  • falha
  • passo
  • toque num nó para focar
  • repouso ou sucesso
  • transição
  • falha ou recusa
  • Outras plantas de estados

Como funciona

5 passos

Nova versão recebe tráfego aos poucos.

Esconde cada passo: lembre antes de tocar para revelar.

  1. 01

    O cliente é atribuído por hash do seu id: fica na mesma versão durante a fase e continua no candidato quando o percentual cresce

  2. 02

    Cada versão tem sua contagem de chamadas, erros e latências; as métricas zeram a cada fase

  3. 03

    Com 10 chamadas no candidato, erro acima de 2% já faz rollback, sem esperar a amostra completa

  4. 04

    Com 20 chamadas, p99 do candidato acima de 3× o do estável — e acima dele por pelo menos a margem configurada — também faz rollback; tudo limpo, a fase avança

  5. 05

    Rollback leva o percentual a 0Todo cliente volta para a versão estável

Trade-offs

O que se ganha, o que se paga

4 vantagenscada ganho tem um preço4 custos

Vantagens

  • Problema aparece com poucos clientes afetados

  • Métrica por versão revela o que a média esconde

  • Rollback automático, sem decisão manual

  • Uma infraestrutura só

Custos

  • Rollout leva o tempo de todas as fases

  • Fase com pouco tráfego demora a juntar amostra

  • As duas versões precisam conviver com o mesmo banco

  • Afinidade por cliente é necessária quando há estado de sessão

apps/scalability/canary-deployment

3 arquivos

src/

  • router_canary.tsRoteador: divisão por cliente, métricas por versão, fases e rollback
  • verdict_canary.tsRegras puras: hash do cliente, p99 e veredito da fase
  • model_credit.tsVersões do modelo de limite de crédito como serviços HTTP

Executar · só Bun

  1. bun install# dependências
  2. bun run demo# roda o cenário
  3. bun run test# testes unitários
Requisitos
Bun

Por que se relacionam

Teste rápido

Qual é o próximo passo depois de Canary Deployment?

Próximo projeto · Escalabilidade & InfraestruturaFeature Toggle
Esc

↑ ↓ navegarEnter abrir191 resultados