Pular para o conteúdo

Arquitetura real · Sênior

Netflix Kayenta (canary automatizado)

Arquitetura real em produção. Pontos centrais: comparação estatística entre baseline e canário.

17 min de leitura · Fonte: Netflix · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Arquitetura real em produção. Pontos centrais: comparação estatística entre baseline e canário. O Kayenta é uma plataforma de análise automática de canário (ACA), aberta ao público pela Netflix em parceria com o Google. O post de lançamento o descreve como componente crucial da entrega na empresa, porque reduz o risco de mudanças no ambiente de produção.

01 · CONTEXTO

Reduzir o risco de uma mudança em produção

O Kayenta é uma plataforma de análise automática de canário (ACA), aberta ao público pela Netflix em parceria com o Google. O post de lançamento o descreve como componente crucial da entrega na empresa, porque reduz o risco de mudanças no ambiente de produção.

Um canário é uma nova versão do software implantada para um pequeno subconjunto de usuários, ao lado da versão estável. O tráfego é dividido de modo que parte das requisições vá ao canário, o que permite descobrir problemas rapidamente sem afetar a maioria dos usuários.

A qualidade do canário é avaliada comparando métricas-chave das versões antiga e nova. Havendo degradação significativa, o canário é abortado e todo o tráfego volta à versão estável.

  1. Ponto de partida: os usuários chegam ao balanceador, que encaminha as requisições ao serviço em produção.

    Diagrama da arquitetura: Serviço em produção com uma única versão
    CLUsuários
    NWBalanceador
    CPServiço em produção
    NWArmazenamento de métricas
    CPEntrega contínua
  2. O serviço publica métricas, e a entrega contínua implanta novas versões. Falta decidir como uma versão nova seria comparada com a atual.

    Diagrama da arquitetura: Serviço em produção com uma única versão
    CLUsuários
    NWBalanceador
    CPServiço em produção
    NWArmazenamento de métricas
    CPEntrega contínua

O restante do caso mostra como a Netflix responde a essa pergunta: quais clusters ela cria, o que compara e quem decide.

02 · O PROBLEMA

Quando o canário era uma análise manual

A análise de canário começou como um processo manual. Um desenvolvedor ou engenheiro de release olhava gráficos e logs dos servidores de baseline e canário para ver quão próximas estavam as métricas, como códigos de status HTTP, tempos de resposta e contagem de exceções. Se os dados pareciam razoáveis, a pessoa decidia manualmente avançar ou reverter.

A Netflix escreve que a abordagem não escalava e não era confiável. Cada canário significava várias horas olhando gráficos e vasculhando logs, o que dificultava implantar mais de uma ou duas vezes por semana, e comparar gráficos visualmente dificultava ver diferenças sutis entre canário e baseline.

A primeira tentativa de automação foi um script específico para a aplicação medida. A empresa tentou então generalizar o processo e criou a primeira versão de análise automática de canário, da qual o Kayenta é uma evolução.

03 · TRÊS CLUSTERS

Produção, baseline e canário

No processo da Netflix, três clusters atendem ao mesmo tráfego em quantidades diferentes. Uma configuração típica usa um balanceador de carga para incluir as instâncias de baseline e canário no pool regular de instâncias.

  1. Os usuários chegam ao balanceador, que reparte o tráfego entre os clusters.

    Diagrama da arquitetura: Produção, baseline e canário
    CLUsuários
    NWBalanceador
    CPCluster de produção
    CPCluster baseline
    CPCluster canário
    CPSpinnaker
    NWBanco de séries temporais
  2. A produção recebe a maior parte do tráfego e roda a versão atual, sem mudanças.

    Diagrama da arquitetura: Produção, baseline e canário
    CLUsuários
    NWBalanceador
    CPCluster de produçãoversão atual
    CPCluster baseline
    CPCluster canário
    CPSpinnaker
    NWBanco de séries temporais
  3. O baseline roda a mesma versão de código e configuração da produção e recebe uma pequena parte do tráfego.

    Diagrama da arquitetura: Produção, baseline e canário
    CLUsuários
    NWBalanceador
    CPCluster de produção
    CPCluster baselinemesma versão
    CPCluster canário
    CPSpinnaker
    NWBanco de séries temporais
  4. O canário roda as mudanças propostas e recebe uma pequena parte do tráfego.

    Diagrama da arquitetura: Produção, baseline e canário
    CLUsuários
    NWBalanceador
    CPCluster de produção
    CPCluster baseline
    CPCluster canárioversão proposta
    CPSpinnaker
    NWBanco de séries temporais
  5. O Spinnaker cuida do ciclo de vida dos clusters de baseline e canário.

    Diagrama da arquitetura: Produção, baseline e canário
    CLUsuários
    NWBalanceador
    CPCluster de produção
    CPCluster baseline
    CPCluster canário
    CPSpinnaker
    NWBanco de séries temporais
  6. As métricas ficam num banco de séries temporais, com tags que identificam se o dado veio do canário ou do baseline.

    Diagrama da arquitetura: Produção, baseline e canário
    CLUsuários
    NWBalanceador
    CPCluster de produção
    CPCluster baseline
    CPCluster canário
    CPSpinnaker
    NWBanco de séries temporais
ClusterO que rodaInstâncias
ProduçãoVersão atual, sem mudançasQualquer número de instâncias
BaselineMesma versão de código e configuração da produçãoTipicamente 3
CanárioMudanças propostas de código ou configuraçãoTipicamente 3

Também seria possível usar o cluster de produção em vez de criar um baseline, mas comparar um canário recém-criado com uma produção de longa duração poderia dar resultados pouco confiáveis. Criar um baseline novo garante métricas livres de efeitos de processos de longa execução.

O Spinnaker, plataforma de entrega contínua da empresa, roda uma ou mais iterações da análise e decide continuar, reverter ou, em alguns casos, pedir intervenção manual. Se a versão é considerada segura, o deploy segue; se não, o Spinnaker aborta o canário e todo o tráfego vai à produção.

04 · KAYENTA

Recuperação de métricas e julgamento

O Kayenta é responsável por avaliar o risco de um canário e verificar se há degradação significativa entre baseline e canário. Ele se divide em duas etapas principais: recuperação de métricas e julgamento.

  1. O pipeline do Spinnaker aciona a análise pelo endpoint REST do Kayenta.

    Diagrama da arquitetura: Análise automática de canário com o Kayenta
    CPPipeline do Spinnaker
    CPKayenta
    NWFontes de métricas
    CPJuiz
    DBArmazenamento de resultados
  2. O Kayenta lê a configuração das consultas e as combina com um escopo para consultar uma fonte de métricas.

    Diagrama da arquitetura: Análise automática de canário com o Kayenta
    CPPipeline do Spinnaker
    CPKayenta
    NWFontes de métricas
    CPJuiz
    DBArmazenamento de resultados
  3. Os resultados da recuperação são passados ao juiz para análise.

    Diagrama da arquitetura: Análise automática de canário com o Kayenta
    CPPipeline do Spinnaker
    CPKayenta
    NWFontes de métricas
    CPJuiz
    DBArmazenamento de resultados
  4. O juiz produz uma decisão: o canário passou ou falhou.

    Diagrama da arquitetura: Análise automática de canário com o Kayenta
    CPPipeline do Spinnaker
    CPKayenta
    NWFontes de métricas
    CPJuizdecisão
    DBArmazenamento de resultados
  5. O Spinnaker usa a pontuação para decidir se o canário continua ou reverte.

    Diagrama da arquitetura: Análise automática de canário com o Kayenta
    CPPipeline do Spinnaker
    CPKayenta
    NWFontes de métricas
    CPJuiz
    DBArmazenamento de resultados
  6. A saída da recuperação e do julgamento é arquivada, permitindo rodar novos juízes sobre dados já coletados.

    Diagrama da arquitetura: Análise automática de canário com o Kayenta
    CPPipeline do Spinnaker
    CPKayenta
    NWFontes de métricas
    CPJuiz
    DBArmazenamento de resultados

Na recuperação, o Kayenta lê um arquivo de configuração que define as consultas de métricas e combina cada uma com um escopo, ou seja, cluster e intervalo de tempo. As métricas ficam tipicamente num banco de séries temporais, com tags que identificam se o dado veio do canário ou do baseline. Entre as fontes suportadas à época do post estavam Prometheus, Stackdriver, Datadog e o Atlas da Netflix, e fontes diferentes podem ser combinadas numa mesma análise.

Etapa do julgamentoO que faz
Validação de dadosGarante que há dados de baseline e canário antes da análise
Limpeza de dadosTrata valores ausentes conforme o tipo de métrica
Comparação de métricasClassifica cada métrica como Pass, High ou Low
Cálculo da pontuaçãoIndica quão parecido o canário é do baseline

O algoritmo principal de comparação usa intervalos de confiança, calculados pelo teste U de Mann-Whitney, para classificar se existe diferença significativa. A classificação High indica que a métrica do canário é significativamente maior que a do baseline.

A pontuação final é a razão entre as métricas classificadas como Pass e o total de métricas: por exemplo, 9 de 10 métricas em Pass resultam em pontuação de 90%. A Netflix diz que existem metodologias mais complexas, mas que prefere técnicas simples de entender.

O relatório de canário detalha o resultado por métrica e mostra os dados de entrada. Num exemplo do post, a pontuação é 58%, com várias métricas classificadas como High. Para a Netflix, ter visão detalhada de por que um canário falhou é crucial para dar confiança no sistema.

05 · RESULTADOS

Flexibilidade, adoção e o que levar para a entrevista

Como a saída da recuperação e do julgamento é arquivada, é possível rodar novos algoritmos de comparação e novos juízes sobre dados já coletados. Fontes de métricas, juízes, armazenamento de configuração e armazenamento de resultados são plugáveis.

O Kayenta oferece um endpoint REST para operações de CRUD sobre configurações e para obter resultados. Apesar da integração forte com o Spinnaker, ele consegue rodar sem os demais componentes dele, tendo apenas o Redis como dependência.

Segundo a Netflix, o Kayenta é bem mais flexível que a solução anterior e mais fácil de configurar. A empresa removeu boa parte da complexidade de definir limiares e ajustes manuais, apoiando-se em algoritmos melhores. À época do post, a migração do sistema legado estava em andamento, e o Kayenta rodava cerca de 30% dos julgamentos de canário em produção, em média 200 por dia.

Perguntas frequentes

O que é Netflix Kayenta (canary automatizado)?

Arquitetura real em produção. Pontos centrais: comparação estatística entre baseline e canário.

O que o design de Netflix Kayenta (canary automatizado) cobre?

Ele está organizado nestas seções: Reduzir o risco de uma mudança em produção, Quando o canário era uma análise manual, Produção, baseline e canário, Recuperação de métricas e julgamento e Flexibilidade, adoção e o que levar para a entrevista.

Quanto tempo leva Netflix Kayenta (canary automatizado) e qual é o nível?

Leva cerca de 17 minutos para ler e tem nível Sênior.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.