SlideShare uma empresa Scribd logo
Feature Toggle
Trabalhando com Feature-Toggle em Microserviços
Quem sou eu?
Brunno dos Santos
- Locaweb
- Dev a mais de 7 anos
Onde me encontrar
- @squiter
- github.com/squiter
"Feature Toggles are a powerful technique, allowing
teams to modify system behavior without changing code."
Martin Fowler
https://martinfowler.com/articles/feature-toggles.html
Categorias
- Tempo de duração
- Quão dinâmica é a decisão
- Release Toggles
- Experiment Toggles
- Ops Toggles
- Permissioning Toggles
Release Toggles
Release Toggles permitem códigos incompletos e não testados
serem entregues em produção como códigos que podem nunca ser
ligados.
- Separam o Release do Deploy;
- Não vivem por muito tempo em produção;
- A decisão de Toggle normalmente é estática.
Experiment Toggles
Toggles utilizados para testes A/B onde cada usuário do
sistema é separado em grupos e cada grupo é enviado para um
caminho diferente.
- Permanecem ligados até colhermos estatisticamente todo o
resultado dos testes.
Ops Toggles
Usados para controlar aspectos operacionais do sistema.
- Features que não temos certeza do impacto na performance;
- Podem ser usados para desligar funcionalidades não vitais
para o sistema em algum caso não usual de sobrecarga.
Permissioning Toggles
Permitem mudar as features ou a experiência do produto para
certos usuários.
- Similar a Canary Release;
- Acesso a conteúdo Premium;
- Acesso a algum alfa/beta release;
- Testes em produção com clientes internos.
Feature Toggle @ Provisionamento Locaweb
Estratégia de implementação
Estratégia de implementação
Arquitetura Básica
Toggle ServerApp
Gem
Toggle Server
- Aplicação Ruby on Rails centralizada
- Postgres
- API HTTP com uma única rota: "feature/:name/available"
- Alteração auditadas
Parâmetros necessários para validar disponibilidade:
- Nome da Feature;
- Credencial;
NÃONÃO
SIMSIM
Como funciona o fluxo de decisão?
Request
Está aberto
para todos?
Está aberto para o
filtro x?
Exemplos de filtros
Com login do cliente:
- ^[a-mA-M]
- teste1|testeqa|teste_locaweb
- (?!login|outro_login)
Com probabilidade de acesso:
- ^[0-2][0-5]$
Uso do Cache
App1
Gem
Toggle
Server
App2
Gem
Como funciona o fluxo de releases?
1. Deploy do roteamento;
2. Deploy da nova feature;
3. Testes com usuários internos;
4. Abertura para 10% dos clientes;
5. Abertura para 50% dos clientes;
6. Abertura total da feature;
7. (em caso de refatoração) Remove código legado;
8. Remoção do roteamento.
Benefícios
- Código integrado em prod sem impacto para o cliente;
- Release suave de forma parcial;
- Releases desacoplados de deploys;
- Correções de bugs sem rollback;
- Facilidade de teste em produção com cliente interno;
- Flexibilidade de escolha para o critério do toggle;
Obrigado
Dúvidas?
@squiter | @locaweb

Mais conteúdo relacionado

Mais procurados

Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
Elias Nogueira
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Samanta 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
 
Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2
Danilo Pinotti
 
Git conceitos
Git conceitosGit conceitos
Git conceitos
viniciusban
 
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
Samanta Cicilia
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
Elias Nogueira
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
Samanta Cicilia
 
QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de software
Sandy Maciel
 
Cultura de testes em times mobile
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobile
Ramon Ribeiro Rabello
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
Samanta Cicilia
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
Samanta Cicilia
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Renato Groff
 
Workshop React Hooks
Workshop React HooksWorkshop React Hooks
Workshop React Hooks
Dan Vitoriano
 
Alcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaAlcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínua
Samanta Cicilia
 
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
Samanta Cicilia
 
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Renato Groff
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Elias Nogueira
 

Mais procurados (20)

Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
 
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!
 
Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Git conceitos
Git conceitosGit conceitos
Git conceitos
 
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
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de software
 
Cultura de testes em times mobile
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobile
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 
JMeter
JMeterJMeter
JMeter
 
Workshop React Hooks
Workshop React HooksWorkshop React Hooks
Workshop React Hooks
 
Alcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaAlcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínua
 
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
 
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
Dicas para simplificar o desenvolvimento de APIs REST em ASP.NET Core - .NET ...
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 

Semelhante a Feature toggle

ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
André Abe Vicente
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
Fabrício Campos
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
Samanta Cicilia
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
Samanta Cicilia
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
minastestingconference
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
Samanta Cicilia
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
Carlos Wagner Costa
 
Workshop - Plano de Testes End to End com o Microsoft Test Manager
Workshop   - Plano de Testes End to End com o Microsoft Test ManagerWorkshop   - Plano de Testes End to End com o Microsoft Test Manager
Workshop - Plano de Testes End to End com o Microsoft Test Manager
Alan Carlos
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
RodolphoCesar2
 
PDC - Testes - Usando o Testlink
PDC - Testes - Usando o TestlinkPDC - Testes - Usando o Testlink
PDC - Testes - Usando o Testlinkslides_teltools
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Vinicius Pulgatti
 
Automação Web Utilizando Keywords - Gustavo Moreira
Automação Web Utilizando Keywords - Gustavo MoreiraAutomação Web Utilizando Keywords - Gustavo Moreira
Automação Web Utilizando Keywords - Gustavo Moreira
gutssc
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
Elias Nogueira
 
Arquitetura Funcional em Microservices
Arquitetura Funcional em MicroservicesArquitetura Funcional em Microservices
Arquitetura Funcional em Microservices
Nubank
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
cejug
 
Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
Samanta Cicilia
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 
Do regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobileDo regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobile
Lucas Carvalho
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
Samanta Cicilia
 

Semelhante a Feature toggle (20)

ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Workshop - Plano de Testes End to End com o Microsoft Test Manager
Workshop   - Plano de Testes End to End com o Microsoft Test ManagerWorkshop   - Plano de Testes End to End com o Microsoft Test Manager
Workshop - Plano de Testes End to End com o Microsoft Test Manager
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
PDC - Testes - Usando o Testlink
PDC - Testes - Usando o TestlinkPDC - Testes - Usando o Testlink
PDC - Testes - Usando o Testlink
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
 
Automação Web Utilizando Keywords - Gustavo Moreira
Automação Web Utilizando Keywords - Gustavo MoreiraAutomação Web Utilizando Keywords - Gustavo Moreira
Automação Web Utilizando Keywords - Gustavo Moreira
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
 
Arquitetura Funcional em Microservices
Arquitetura Funcional em MicroservicesArquitetura Funcional em Microservices
Arquitetura Funcional em Microservices
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Do regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobileDo regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobile
 
Migracao gae-openshift
Migracao gae-openshiftMigracao gae-openshift
Migracao gae-openshift
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
 

Último

AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
Consultoria Acadêmica
 
CONCEITOS DE MANUTENÇÃO MECÂNICAS AUTOMOTIVA
CONCEITOS DE MANUTENÇÃO MECÂNICAS AUTOMOTIVACONCEITOS DE MANUTENÇÃO MECÂNICAS AUTOMOTIVA
CONCEITOS DE MANUTENÇÃO MECÂNICAS AUTOMOTIVA
JairGaldino4
 
Manual de Instalação para Placa Proteco Q60A
Manual de Instalação para Placa Proteco Q60AManual de Instalação para Placa Proteco Q60A
Manual de Instalação para Placa Proteco Q60A
Tronicline Automatismos
 
Experiência da EDP na monitorização de vibrações de grupos hídricos
Experiência da EDP na monitorização de vibrações de grupos  hídricosExperiência da EDP na monitorização de vibrações de grupos  hídricos
Experiência da EDP na monitorização de vibrações de grupos hídricos
CarlosAroeira1
 
ENEM 2023 - Prova Azul (1º dia).PDF. questoes
ENEM 2023 - Prova Azul (1º dia).PDF. questoesENEM 2023 - Prova Azul (1º dia).PDF. questoes
ENEM 2023 - Prova Azul (1º dia).PDF. questoes
liviafernandesft0807
 
AULA - ELEMENTOS DE VEDAÇÃO MECÂNICA....
AULA - ELEMENTOS DE VEDAÇÃO MECÂNICA....AULA - ELEMENTOS DE VEDAÇÃO MECÂNICA....
AULA - ELEMENTOS DE VEDAÇÃO MECÂNICA....
JairGaldino4
 
Concreto II - Dimensionamento Lajes.pptx
Concreto II - Dimensionamento Lajes.pptxConcreto II - Dimensionamento Lajes.pptx
Concreto II - Dimensionamento Lajes.pptx
LucasPereiraVieira2
 
Circuitos Elétricos I. Excitação Senoidal, fasores, impedância e admitância.pdf
Circuitos Elétricos I. Excitação Senoidal, fasores, impedância e admitância.pdfCircuitos Elétricos I. Excitação Senoidal, fasores, impedância e admitância.pdf
Circuitos Elétricos I. Excitação Senoidal, fasores, impedância e admitância.pdf
JrBennitoBennito
 

Último (8)

AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
 
CONCEITOS DE MANUTENÇÃO MECÂNICAS AUTOMOTIVA
CONCEITOS DE MANUTENÇÃO MECÂNICAS AUTOMOTIVACONCEITOS DE MANUTENÇÃO MECÂNICAS AUTOMOTIVA
CONCEITOS DE MANUTENÇÃO MECÂNICAS AUTOMOTIVA
 
Manual de Instalação para Placa Proteco Q60A
Manual de Instalação para Placa Proteco Q60AManual de Instalação para Placa Proteco Q60A
Manual de Instalação para Placa Proteco Q60A
 
Experiência da EDP na monitorização de vibrações de grupos hídricos
Experiência da EDP na monitorização de vibrações de grupos  hídricosExperiência da EDP na monitorização de vibrações de grupos  hídricos
Experiência da EDP na monitorização de vibrações de grupos hídricos
 
ENEM 2023 - Prova Azul (1º dia).PDF. questoes
ENEM 2023 - Prova Azul (1º dia).PDF. questoesENEM 2023 - Prova Azul (1º dia).PDF. questoes
ENEM 2023 - Prova Azul (1º dia).PDF. questoes
 
AULA - ELEMENTOS DE VEDAÇÃO MECÂNICA....
AULA - ELEMENTOS DE VEDAÇÃO MECÂNICA....AULA - ELEMENTOS DE VEDAÇÃO MECÂNICA....
AULA - ELEMENTOS DE VEDAÇÃO MECÂNICA....
 
Concreto II - Dimensionamento Lajes.pptx
Concreto II - Dimensionamento Lajes.pptxConcreto II - Dimensionamento Lajes.pptx
Concreto II - Dimensionamento Lajes.pptx
 
Circuitos Elétricos I. Excitação Senoidal, fasores, impedância e admitância.pdf
Circuitos Elétricos I. Excitação Senoidal, fasores, impedância e admitância.pdfCircuitos Elétricos I. Excitação Senoidal, fasores, impedância e admitância.pdf
Circuitos Elétricos I. Excitação Senoidal, fasores, impedância e admitância.pdf
 

Feature toggle

  • 1. Feature Toggle Trabalhando com Feature-Toggle em Microserviços
  • 2. Quem sou eu? Brunno dos Santos - Locaweb - Dev a mais de 7 anos Onde me encontrar - @squiter - github.com/squiter
  • 3. "Feature Toggles are a powerful technique, allowing teams to modify system behavior without changing code." Martin Fowler https://martinfowler.com/articles/feature-toggles.html
  • 4. Categorias - Tempo de duração - Quão dinâmica é a decisão - Release Toggles - Experiment Toggles - Ops Toggles - Permissioning Toggles
  • 5. Release Toggles Release Toggles permitem códigos incompletos e não testados serem entregues em produção como códigos que podem nunca ser ligados. - Separam o Release do Deploy; - Não vivem por muito tempo em produção; - A decisão de Toggle normalmente é estática.
  • 6. Experiment Toggles Toggles utilizados para testes A/B onde cada usuário do sistema é separado em grupos e cada grupo é enviado para um caminho diferente. - Permanecem ligados até colhermos estatisticamente todo o resultado dos testes.
  • 7. Ops Toggles Usados para controlar aspectos operacionais do sistema. - Features que não temos certeza do impacto na performance; - Podem ser usados para desligar funcionalidades não vitais para o sistema em algum caso não usual de sobrecarga.
  • 8. Permissioning Toggles Permitem mudar as features ou a experiência do produto para certos usuários. - Similar a Canary Release; - Acesso a conteúdo Premium; - Acesso a algum alfa/beta release; - Testes em produção com clientes internos.
  • 9. Feature Toggle @ Provisionamento Locaweb
  • 13. Toggle Server - Aplicação Ruby on Rails centralizada - Postgres - API HTTP com uma única rota: "feature/:name/available" - Alteração auditadas Parâmetros necessários para validar disponibilidade: - Nome da Feature; - Credencial;
  • 14.
  • 15. NÃONÃO SIMSIM Como funciona o fluxo de decisão? Request Está aberto para todos? Está aberto para o filtro x?
  • 16. Exemplos de filtros Com login do cliente: - ^[a-mA-M] - teste1|testeqa|teste_locaweb - (?!login|outro_login) Com probabilidade de acesso: - ^[0-2][0-5]$
  • 18. Como funciona o fluxo de releases? 1. Deploy do roteamento; 2. Deploy da nova feature; 3. Testes com usuários internos; 4. Abertura para 10% dos clientes; 5. Abertura para 50% dos clientes; 6. Abertura total da feature; 7. (em caso de refatoração) Remove código legado; 8. Remoção do roteamento.
  • 19. Benefícios - Código integrado em prod sem impacto para o cliente; - Release suave de forma parcial; - Releases desacoplados de deploys; - Correções de bugs sem rollback; - Facilidade de teste em produção com cliente interno; - Flexibilidade de escolha para o critério do toggle;

Notas do Editor

  1. Dark Lauch - Faz o deploy e roda o código dos dois caminhos para capturar metricas
  2. Diferença entre Permissioning Toggles e Canary Release Permissioning Toggles expõe a feature a usuários específicos Canary Release expõe a feature a um grupo randômico de usuários E o foco do Canary Release é liberar a feature completamente. "This tecnique is similar in many ways to a Canary Release. The distinction between the two is that a Canary Released feature is exposed to a randomly selected cohort of users while a Permissioning Toggle feature is exposed to a specific set of users."
  3. Quando temos várias aplicações independentes podemos usar um arquivo de configuração por app; Mas e quando dependemos da mesma decisão em várias apps?
  4. ^[0-2][0-5]$ - Aceita números de 0 a 25