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

Canary Release at ContaAzul

Canary Release at ContaAzul

A plataforma ContaAzul está crescendo constantemente e enfrentamos desafios constantes de como liberar nosso monólito de maneira confiável, frequente e sem impactar nossos usuários.

Nesta apresentação é apresentado os problemas que enfrentávamos, porque e como adotamos e implantamos Canary Release no nosso deployment pipeline, quais ferramentas utilizamos e como isso ajudou a tornar nossas liberações mais confiáveis e seguras impactando menos nossos usuários e melhorando nossas métricas de MTTR e MTTD e quais os próximos passos que iremos seguir.

Diogo Nicoleti

April 19, 2018
Tweet

More Decks by Diogo Nicoleti

Other Decks in Technology

Transcript

  1. 2 Diogo Nicoleti SRE @ ContaAzul SRE Core Team Luiz

    Muller SRE @ ContaAzul SRE Core Team
  2. 3 O ContaAzul é a plataforma online que conecta tudo

    que o dono de um negócio precisa para a gestão. Um pouco sobre a ContaAzul
  3. Canary Release Deployment pattern para reduzir o risco da introdução

    de uma nova versão em produção, fazendo o lançamento da mesma para um pequeno conjunto de usuários antes de implantá-la 100% em produção.
  4. 5 • 1 monólito (ContaAzul) ◦ ~43k RPM ◦ ~630

    GB dados • 42 microsserviços • 52 bancos de dados Um pouco sobre a plataforma ContaAzul • ~65 engenheiros • ~17 squads
  5. 7 Problemas que afetam a disponibilidade do ContaAzul oriundos de

    liberações: • Liberação de uma nova funcionalidade "problemática": ◦ Bugs ◦ Problemas de performance • Alterações estruturais que não foram possíveis de testar em ambientes de sandbox O Problema
  6. Canary Release Deployment pattern para reduzir o risco da introdução

    de uma nova versão em produção, fazendo o lançamento da mesma para um pequeno conjunto de usuários antes de implantá-la 100% em produção.
  7. 9 • Liberações mais confiáveis e seguras • Impacto em

    um conjunto de usuários menor em liberações problemáticas • Melhora no MTTR pois não será necessário realizar um rollback de versão, sendo apenas necessário abortar o novo release • Melhora no MTTD conseguimos identificar de maneira mais rápida um possível problema Porque adotar a canary release?
  8. 10 • Processo de liberação mais demorado devido ao tempo

    necessário na etapa de Canary/ACA Tradeoff
  9. 19 Utilizar o Kayenta, plataforma de Automated Canary Analysis do

    Spinnaker liberado pela Netflix/Google recentemente. Reduzir a necessidade de intervenção humana no processo de análise do canary. Implantar Automated Canary Analysis (ACA)
  10. 20 Hoje utilizamos apenas as métricas fundamentais (Four Golden Signals)

    para avaliar a canary release. Instrumentar a aplicação e adotar também métricas de negócio e user-centric além de evoluir o New Relic Exporter para coletar métricas avançadas. Melhorar o conjunto de métricas utilizadas para avaliar a canary release
  11. 21 Atualmente para o processo de deploy dos microsserviços contamos

    apenas com a estratégia RollingUpdate do Kubernetes. Queremos estender e realizar canary release + ACA também no deploy dos microsserviços. Estender para a stack de microsserviços
  12. A ContaAzul está crescendo Cresça com a gente! • Software

    Engineer • Data Engineer • SRE / Cloud Engineer • Security Engineer Mais infos em: https://contaazul.com/carreiras/