Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Construindo releases confiáveis com o uso de Canary Release.

Construindo releases confiáveis com o uso de Canary Release.

O canary release é uma abordagem para disponibilizar uma funcionalidade de maneira gradual e reduzir riscos de possíveis problemas em produção.Esta abordagem pode ser uma grande aliada para disponibilizar versões de software sem causar grandes impactos e ainda assim manter a disponibilidade. Nesta palestra vamos compartilhar como realizamos testes mais confiáveis e como tivemos um feedback mais rápido de que as funcionalidades vão funcionar integradas.Além disso, vamos compartilhar aprendizados do time de como foi realizada a estratégia de monitoramento e rollback que mitigou possíveis bugs ao utilizar Canary Release.

Juliana Fernandes

August 20, 2018
Tweet

More Decks by Juliana Fernandes

Other Decks in Technology

Transcript

  1. "Oferecer as melhores opções de pagamento a nossos passageiros em

    múltiplos canais de vendas, através de uma plataforma de pagamentos, escalável, evolutiva e robusta."
  2. • Abordagem para disponibilizar uma funcionalidade de maneira gradual •

    Lançamento gradual para uma pequena parte do conjunto de usuários antes de implantá-la em toda a infraestrutura e torná-la acessível a todos. • É também conhecida como lançamento em fases (phased rollout) ou lançamento incremental (incremental rollout).
  3. • Utilizar ambas versões em paralelo • Direcionar porcentagem do

    novo fluxo por Toggle de maneira gradual • Monitoramento • Testar com 100% novo fluxo por um tempo • Inativar o serviço anterior (KCC) • Apagar código da implementação anterior(simplificar lógica)
  4. Solução proposta Frontend Plataforma de pagamento Provedor 1 Provedor 2

    Provedor 3 Provedor KCC Provedor TLS (Novo serviço) Provedor TLS (Novo serviço) Externos
  5. Monitoramento • Feedback rápido sobre a nova integração • Obter

    métricas sobre qual o impacto da nova versão no ambiente de produção • Testar com 100% novo fluxo por um tempo • Inativar o serviço V1
  6. Solução final Frontend Plataforma de pagamento Provedor 1 Provedor 2

    Provedor 3 Provedor TLS (Novo serviço) Provedor TLS (Novo serviço) Externos
  7. Benefícios a abordagem trouxe ao time • Confiança do time

    para habilitar nova versão em produção • Possibilidade de voltar a utilizar a versão antiga do software • Rápido feedback sem muito impacto à versão que está em produção