O que é um 'Alternador de sinalizador de recurso' e quando usá-lo (ou não)?

17

Existem algumas perguntas sobre feature flag toggles, como:

Minhas perguntas :

  • O que é realmente uma "alternância de sinalizador de recurso" (no contexto do DevOps)?
  • Por que eles são usados?
Pierre.Vriens
fonte
3
Informações de referência, e não uma resposta direta - martinfowler.com/articles/feature-toggles.html
Ken Mugrage
1
Eu sei que "perguntar" sobre explicações de voto negativo não é comumente aceito. Mas quem votou anonimamente nesta pergunta, apenas sabe que para mim tais votos negativos são inúteis, uma vez que esses votos negativos são baratos (o voto negativo não perde -1 por fazê-lo). Downvotes anônimas de respostas é diferente no entanto ... como downvoter deixa um rastro ...
Pierre.Vriens
2
E eu adoraria saber por que alguém achou que essa pergunta deveria ser encerrada por causa de "muito ampla", quando essa é de fato uma ótima pergunta que merece boas respostas.
precisa
Merci @Evgeny, parece que estamos na mesma página ... mas você notou que uma votação apertada foi retirada? Possivelmente por causa da minha edição mais recente.
Pierre.Vriens

Respostas:

13

Sem repetir o conteúdo de https://martinfowler.com/articles/feature-toggles.html , pois é uma explicação detalhada incrível sobre quais são as alternâncias de sinalizador de recurso. Vou focar apenas nos aspectos do DevOps.

De acordo com o relatório State of DevOps de 2014, preparado pelo PuppetLabs, existem quatro principais métricas para medir o desempenho de TI:

  • Prazo de entrega para alterações
  • Freqüência de liberação
  • Hora de restaurar o serviço
  • Alterar taxa de falhas

Isso também contribui para o desempenho organizacional em geral. Portanto, isso significa que, se sua TI está indo muito bem nessas métricas, seu resultado final ganha mais $$$.

A Entrega contínua é ativada por essas métricas e foi descrita detalhadamente no livro Entrega contínua: versões confiáveis ​​de software por meio de automação de compilação, teste e implantação por Jez Humble.

No contexto da Entrega Contínua , há uma distinção importante que a diferencia da Implantação Contínua . E essa é a decisão quando fazer um lançamento de recursos (para clientes).

Manter as alterações menores em tamanho e implantar recursos incompletos (sistemas de cópia) nos sistemas de produção com um sinalizador de recurso desativado permite reduzir o tempo de espera para alterações .

Quando os recursos finalmente terminam, fazer uma liberação é uma decisão deixada para os negócios. Talvez o lançamento de um novo recurso precise estar alinhado com algum marketing ou em outra parte do negócio, como um recurso no aplicativo para dispositivos móveis.

Os recursos podem ser liberados usando experiências A / B para apenas uma parte da base de clientes, ou para pessoas específicas, ou mesmo direto para a disponibilidade geral (GA). Embora a liberação para o GA geralmente seja feita somente depois de haver certeza suficiente de que o recurso funcione conforme o esperado. Pode-se argumentar que isso efetivamente afeta a frequência de liberação para ser maior.

Esse desacoplamento de liberação e implantação é quase impossível de alcançar sem as alternâncias de sinalizador de recurso.

Naturalmente, quando não implantação é necessária para activar uma característica fora , então o tempo para restabelecer o serviço é reduzido substancialmente.

E usando sinalizadores de recursos que liberam recursos para uma pequena fatia da base de clientes, a métrica da taxa de falha na alteração também pode ser significativamente aprimorada.


Portanto, um mecanismo simples chamado alternância de sinalizador de recursos permite um desempenho de TI muito melhor e, por sua vez, melhora o desempenho organizacional em geral.

Um ótimo exemplo de como isso é feito em empresas reais pode ser encontrado no Flickr (um dos primeiros posts públicos sobre o assunto) e no Etsy . Mas muitos outros adotaram a prática e falaram bastante sobre ela, por exemplo, a famosa cultura de engenharia dos vídeos do Spotify .

O Etsy está exibindo sua ferramenta interna para gerenciar sinalizadores de recursos , chamados Catapult, em várias apresentações encontradas na web. E a Intuit lança uma ferramenta de código aberto chamada Wasabi que ajuda a gerenciar sinalizadores de recursos.

Evgeny
fonte
Procure esta resposta interessante / elaborada ... Apenas duas coisas: o artigo vinculado é sobre "Alternar entre recursos", não "Alternar entre sinalizadores de recursos" (como você escreveu em seu primeiro parágrafo). Você concorda que eles são sinônimos? Se não, qual é a diferença? Além disso: o que são "experimentos A / B" (A = Depois e B = Antes? Provavelmente não ...).
Pierre.Vriens
1
Eu concordo que estes são sinônimos. Eu apenas prefiro tentar ser claro sobre o nome, para que não haja ambiguidade. Penso que "o que são experimentos a / b" é uma questão própria ... mas a resposta curta é que são duas variações medidas entre si, como no link "Etsy exibindo". Ou explicado em en.wikipedia.org/wiki/A/B_testing
Evgeny 5/17
OK, esse é o toque final que eu estava esperando / esperando, então "aceite".
Pierre.Vriens
@ Pierre.Vriens "Também: o que são" experimentos A / B "(A = Depois e B = Antes?" - você provavelmente pode perguntar isso neste site super legal do DevOps SE;)
Dan Cornilescu
1

Ken Mugrage postou um comentário interessante abaixo da minha pergunta, com um link para uma explicação esclarecedora de " Feature toggles ", com um resumo da seguinte forma:

As alternâncias de recursos são uma técnica poderosa, permitindo que as equipes modifiquem o comportamento do sistema sem alterar o código. Eles se enquadram em várias categorias de uso, e é importante levar essa categorização em consideração ao implementar e gerenciar alternâncias. Alterna introduzir complexidade. Podemos manter essa complexidade sob controle usando práticas de implementação de alternância inteligente e ferramentas apropriadas para gerenciar nossa configuração de alternância, mas também devemos tentar restringir o número de alternâncias em nosso sistema.

O resumo acima não apenas ajuda a entender do que se trata, mas também contém alguns exemplos que explicam por que eles são usados . E depois de digeri-lo um pouco mais, parece que "Alterna entre recursos" e "Alterna entre sinalizadores de recursos" são praticamente sinônimo um do outro.

Porém, a solução (resposta) para o problema (pergunta) muda o problema ... pode-se fazer perguntas relacionadas, como:

  • Quais são os prós / contras em usá-los? É um conceito poderoso, mas também assustador, se não for usado com sabedoria (e protegido adequadamente) ...
  • Quais poderiam ser alguns exemplos (bons e ruins) em que são usados? Eu posso pensar em alguns deles, alguns deles eu me usei há algum tempo atrás (de antes do DevOps ser uma coisa).
Pierre.Vriens
fonte