Що таке "Перемикати прапор функції" та коли їх використовувати (чи ні)?


17

Є деякі питання щодо feature flag toggles:

Запитання :

  • Що насправді є "перемиканням прапора функції" (у контексті DevOps)?
  • Для чого вони використовуються?

3
Довідкова інформація, а не пряма відповідь - martinfowler.com/articles/feature-toggles.html
Ken Mugrage

1
Я знаю, що "просити" про пояснення-пояснення не прийнято. Але хто анонімно відповів на це запитання, просто знайте, що для мене такі голоси непридатні, оскільки ці голосові записи є дешевими (для цього не використовує -1). Проте анонімні відповіді відрізняються, однак ... такий потік залишає слід ...
Pierre.Vriens

2
І я дуже хотів би дізнатися, чому хтось вважав, що це питання слід закрити через "занадто широкий", коли це насправді велике питання, яке заслуговує на гарні відповіді.
Євгеній

Merci @Evgeny, схоже, ми на одній сторінці ... але ви помітили, що 1 закритий голос знято? Можливо, через мою останню редакцію.
Pierre.Vriens

Відповіді:


13

Не повторюючи вміст https://martinfowler.com/articles/feature-toggles.html , оскільки це дивовижне глибоке пояснення щодо того, що таке перемикачі прапорців. Я зупинюсь лише на аспектах DevOps.

Відповідно до звіту про стан DevOps за 2014 рік, підготовленого PuppetLabs, є чотири основні показники для вимірювання ефективності ІТ:

  • Час проведення змін
  • Частота випуску
  • Час відновлення послуги
  • Зміна швидкості відмов

Вони також сприяють загальній ефективності діяльності організації. Тож це означає, що якщо ваш ІТ чудово працює в цих показниках, ваш нижній рядок отримує більше $$$.

Безперервна доставка забезпечується цими показниками, і це було глибоко описано в книзі Безперервна доставка: Надійне випуск програмного забезпечення за допомогою автоматизації побудови, тестування та розгортання Jez Humble.

У контексті безперервної доставки існує важлива відмінність, яка відрізняє її від безперервної розгортання . І це рішення, коли робити випуск функцій (для клієнтів).

Збереження змін менших розмірів, а розгортання (копіювання коду) напівфабрикованих функцій у виробничих системах із відключеним прапором функції дозволяє скоротити час виконання змін .

Коли функції остаточно закінчені, випуск релізу залишається за рішенням бізнесу. Можливо, випуск нової функції потрібно узгодити з певним маркетингом або випуском в іншій частині бізнесу, наприклад, функцією в мобільному додатку.

Особливості можна випустити за допомогою A / B досвіду лише для частини клієнтської бази, або для конкретних людей, або навіть направити на загальну доступність (GA). Хоча випуск у GA часто робиться лише після того, як буде достатньо впевненості, що функція працює так, як очікувалося. Можна стверджувати, що це фактично впливає на високу частоту випуску .

Цю розв'язку випуску та розгортання майже неможливо досягти без перемикань прапорців функції.

Звичайно, коли для вимкнення функції не потрібно розгортання , час на відновлення послуги значно скорочується.

І за допомогою використання прапорців функції, які випускають функції на невеликий фрагмент клієнтської бази, також можна значно покращити показник швидкості відмов .


Тож простий механізм, який називається перемиканням функціональних прапорів, дозволяє значно покращити ефективність роботи ІТ, а в свою чергу покращує загальну ефективність роботи організації.

Чудовий приклад того, як це робиться в реальних компаніях, можна знайти як у Flickr (на найдавніших публічних публікаціях з цього приводу), так і в Etsy . Але багато інших прийняли цю практику і довго розмовляли про неї, наприклад, про відому інженерну культуру у відео Spotify .

Etsy демонструють свій внутрішній інструмент управління прапорами функцій , який називається Catapult, у кількох презентаціях, знайдених у мережі Інтернет. І Intuit випускає інструмент з відкритим кодом під назвою Wasabi, який допомагає керувати прапорами функцій.


Мерсі за цю цікаву / розроблену відповідь ... Хоча лише 2 речі: пов’язана стаття про "Перемикання функцій", а не про "Перемикання функцій" (як ви писали у своєму першому абзаці). Чи погоджуєтесь ви, що вони є синонімами? Якщо ні, в чому різниця? Також: що таке "експерименти A / B" (A = Після і B = раніше? Напевно, ні ...).
Pierre.Vriens

1
Я згоден, це синоніми. Я просто віддаю перевагу спробувати і бути зрозумілим щодо назви, так що двозначності немає. Я думаю, що "що таке експерименти" є питанням власним ... але коротка відповідь полягає в тому, що це два варіанти, які вимірюються одна проти одної, як у посиланні "Etsy show off". Або пояснили на en.wikipedia.org/wiki/A/B_testing
Євген

Гаразд, це завершальний штрих, якого я чекав / сподівався, тому "прийміть".
Pierre.Vriens

@ Pierre.Vriens "Також: що таке" експерименти A / B "(A = Після і B = раніше?" - ви, напевно, можете запитати, що на цьому супер крутому сайті DevOps SE;)
Ден Корнілеску

1

Кен Муграге розмістив цікавий коментар під моїм запитанням із посиланням на освітлювальне пояснення " Функціональні перемикачі ", з таким підсумком:

Перемикачі функцій - це потужна техніка, яка дозволяє командам змінювати поведінку системи без зміни коду. Вони підпадають під різні категорії використання, і важливо враховувати цю категоризацію при впровадженні та керуванні перемикачами. Килимки вводять складність. Ми можемо контролювати цю складність, використовуючи розумні практики впровадження перемикачів та відповідні інструменти для управління нашою конфігурацією перемикання, але ми також повинні прагнути обмежити кількість перемикань у нашій системі.

Наведене вище резюме не тільки допомагає зрозуміти, про що йдеться, але воно також містить кілька прикладів, що пояснюють, для чого вони використовуються . А після перетравлення його трохи далі, здається, що "Feature Toggles" та "Feature Toggles" є синонімом один одного.

Але рішення (відповідь) на проблему (питання) змінює проблему ... можна задати відповідні питання, такі як:

  • Які плюси та мінуси їх використання? Це потужна концепція, але також страшна, якщо її не використовувати розумно (і забезпечити належним чином) ...
  • Які можуть бути приклади (хороші та прихильні), де вони використовуються? Я можу придумати їх досить багато, деякі з них я використовував досить давно (раніше, ніж DevOps був навіть річчю).
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.