SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Feature Toggle
Deploy e release são a
mesma coisa?
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
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
DEPLOY == RELEASE
Permitir uma frequência alta
de deploys, que gerasse
uma experiência positiva
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
"Deployment need not expose
customers to a new version of your
service"
Art Gillespie, blog.turbinelabs.io
Desenvolvimento e deploy
● Manter uma única branch e todos os PRs
referenciarem ela
● Trabalhar com PRs pequenos
● Branches abertas por pouco tempo
Desenvolvimento e deploy
Desenvolvimento e deploy
Release
● Poder fazer deploy a qualquer momento
● Ter controle dos releases, podendo fazer eles
faseados
Release
● Poder fazer deploy a qualquer momento
● Ter controle dos releases, podendo fazer eles
faseados
Feature Toggle
Desafios
● Mudança de mindset de desenvolvimento
Desafios
● Mudança de mindset de desenvolvimento
● Planejamento do release ser um critério de
aceite
Desafios
● Mudança de mindset de desenvolvimento
● Planejamento do release ser um critério de
aceite
● Métricas e acompanhamento da fase de release
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
Opções de ferramentas
● Flipper ● Rollout
Flipper
● Gates:
○ Grupos, porcentagem(tempo e atores), on/off
geral, atores individuais
● Adapters
○ Redis, activerecord, mongodb, cassandra, ...
● Interface web para controle
Instalação
Gates - Individual e porcentagem de atores
Gates: Grupos
Como verificar se um ator tem acesso?
Como verificar se um ator tem acesso?
Como verificar se um ator tem acesso?
Como verificar se um ator tem acesso?
Interface Web
Interface Web
Interface Web
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
Aprendizados
● Remover toggles do código logo após o
release terminar
● Controlar a quantidade de toggles
simultâneos
Perguntas?
zygotecnologia.com - pagseguro.uol.com.br
jobs.kenoby.com/zygo
Links
https://www.amazon.com.br/Accelerate-Software-Performing-Technology-Or
ganizations/dp/1942788339
https://medium.com/sumone-technical-blog/deploy-vs-release-7bacb2e206b7
https://github.com/jnunemaker/flipper
https://github.com/fetlife/rollout
https://blog.turbinelabs.io/deploy-not-equal-release-part-one-4724bc1e726b
https://medium.com/code-thoughts/deployment-vs-release-543fe9f26272

Mais conteúdo relacionado

Mais procurados

Protractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endProtractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endDaniel Amorim
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e gridElias Nogueira
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
Protractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endProtractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endDaniel Amorim
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horasSamanta Cicilia
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeKamilla Queiroz Xavier
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsAndré Paulovich
 
Testes para Android de ponta a ponta
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a pontaElias Nogueira
 
Como ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresComo ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresElias Nogueira
 
Integrando ux à metodologia ágil
Integrando ux à metodologia ágilIntegrando ux à metodologia ágil
Integrando ux à metodologia ágilSimone Beltrame
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
 
Memorias das trincheiras
Memorias das trincheirasMemorias das trincheiras
Memorias das trincheirasElton Minetto
 
Apresentação tdc 2016 - trilha de testes
Apresentação tdc   2016 - trilha de testesApresentação tdc   2016 - trilha de testes
Apresentação tdc 2016 - trilha de testesSamuel Lucas
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testarElias Nogueira
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilElias Nogueira
 
WTM - Workshop Agile Testing
WTM - Workshop Agile TestingWTM - Workshop Agile Testing
WTM - Workshop Agile TestingSamanta Cicilia
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Mariana Elisa Moisés , CTFL-AT,MBA
 

Mais procurados (20)

Protractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endProtractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to end
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e grid
 
Happiness app
Happiness appHappiness app
Happiness app
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Protractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endProtractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to end
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature Flags
 
Testes para Android de ponta a ponta
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a ponta
 
Como ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresComo ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadores
 
Integrando ux à metodologia ágil
Integrando ux à metodologia ágilIntegrando ux à metodologia ágil
Integrando ux à metodologia ágil
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
Memorias das trincheiras
Memorias das trincheirasMemorias das trincheiras
Memorias das trincheiras
 
Apresentação tdc 2016 - trilha de testes
Apresentação tdc   2016 - trilha de testesApresentação tdc   2016 - trilha de testes
Apresentação tdc 2016 - trilha de testes
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testar
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
 
WTM - Workshop Agile Testing
WTM - Workshop Agile TestingWTM - Workshop Agile Testing
WTM - Workshop Agile Testing
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!
 

Semelhante a Deploy vs release

Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumRafael Souza
 
Android DevConference - Develop on Android and find success on Google Play
Android DevConference - Develop on Android and find success on Google PlayAndroid DevConference - Develop on Android and find success on Google Play
Android DevConference - Develop on Android and find success on Google PlayiMasters
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsRafael Salerno de Oliveira
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous DeliverySamanta Cicilia
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralRuan Carvalho
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
O Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidadeO Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidadeAntônio Carlos
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous DeliverySamanta Cicilia
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppCloves da Rocha
 
Metodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreMetodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreGeoLivre Conference
 

Semelhante a Deploy vs release (20)

Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
E so mais um campinho na tela
E so mais um campinho na telaE so mais um campinho na tela
E so mais um campinho na tela
 
Android DevConference - Develop on Android and find success on Google Play
Android DevConference - Develop on Android and find success on Google PlayAndroid DevConference - Develop on Android and find success on Google Play
Android DevConference - Develop on Android and find success on Google Play
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Método Ágil Scrum
Método Ágil ScrumMétodo Ágil Scrum
Método Ágil Scrum
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão Geral
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
O Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidadeO Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidade
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Introdução ao scrum
Introdução ao scrumIntrodução ao scrum
Introdução ao scrum
 
Vamos falar de DevOps?
Vamos falar de DevOps?Vamos falar de DevOps?
Vamos falar de DevOps?
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
 
2PHP_Metodologia
2PHP_Metodologia2PHP_Metodologia
2PHP_Metodologia
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Metodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreMetodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura Livre
 
Feature Driven Development - FDD
Feature Driven Development - FDDFeature Driven Development - FDD
Feature Driven Development - FDD
 

Deploy vs release