O documento discute a diferença entre deploy e release e como usar feature toggles para permitir deploys frequentes sem expor os usuários a novas funcionalidades. Isso permite testes e feedback antes de uma funcionalidade ser liberada para todos. O documento também apresenta desafios e lições aprendidas com o uso de feature toggles e ferramentas como Flipper para gerenciar releases faseados.
2. Quem sou eu?
João Paulo Lethier
● Jogador aposentado de
basquete
● Pai de um cachorro, dois
gatos e do Danilo
● Desenvolvedor desde 2009
● Líder do time de
desenvolvimento da Zygo
3.
4.
5. Contexto
● Cenários não previstos gerando bugs após
deploys
● Deploys causavam mudanças inesperadas no
sistema
● Novas funcionalidades sendo liberadas para
todos os usuários sem o devido entendimento
por parte das outras áreas da empresa
15. Deploy
● Colocar código novo em produção
● Habilitar o release
Release
● Liberar melhorias e novas funcionalidades para os
usuários
● Entregar valor para o usuário
16. "Deployment need not expose
customers to a new version of your
service"
Art Gillespie, blog.turbinelabs.io
17. Desenvolvimento e deploy
● Manter uma única branch e todos os PRs
referenciarem ela
● Trabalhar com PRs pequenos
● Branches abertas por pouco tempo
23. Desafios
● Mudança de mindset de desenvolvimento
● Planejamento do release ser um critério de
aceite
24. Desafios
● Mudança de mindset de desenvolvimento
● Planejamento do release ser um critério de
aceite
● Métricas e acompanhamento da fase de release
25. Desafios
● Mudança de mindset de desenvolvimento
● Planejamento do release ser um critério de
aceite
● Métricas e acompanhamento da fase de release
● Ferramenta que permitisse um release faseado
de forma fácil e controlada
38. Resultados
● Coleta de feedback e ajuste de funcionalidades antes
de ser liberada para 100% da base
● Aumento do número de deploys
● Descoberta de edge cases e cenários não pensados
com poucos usuários acessando as funcionalidades
● Release interno difundindo o entendimento e
conhecimento sobre as mudanças, melhorias e
funcionalidades novas