Не повторяя содержание https://martinfowler.com/articles/feature-toggles.html , поскольку это удивительное подробное объяснение того, что такое переключатели флагов функций. Я просто сосредоточусь на аспектах DevOps.
Согласно отчету о состоянии DevOps за 2014 год, подготовленному PuppetLabs, существует четыре основных показателя для измерения производительности ИТ:
- Время для изменений
- Частота выпуска
- Время на восстановление сервиса
- Изменить частоту отказов
Это также способствует общей эффективности организации. Таким образом, это означает, что если у ваших ИТ-специалистов все в порядке с этими показателями, итоговая прибыль вырастет еще больше.
Непрерывная доставка включается этими показателями и подробно описана в книге « Непрерывная доставка: надежные выпуски программного обеспечения посредством автоматизации сборки, тестирования и развертывания » Джеза Хамбла.
В контексте непрерывной доставки существует важное отличие, которое отличает его от непрерывного развертывания . И это решение, когда делать релиз функций (для клиентов).
Сохранение изменений меньшего размера, а развертывание (копирование кода) полуобработанных функций в производственных системах с выключенным флагом функций позволяет сократить время выполнения изменений .
Когда функции наконец-то завершены, выпуск релиза остается за бизнесом. Возможно, выпуск новой функции должен быть согласован с каким-либо маркетингом, или выпуск в другой части бизнеса, такой как функция в мобильном приложении.
Функции могут быть выпущены с помощью экспериментов A / B только для части клиентской базы, или для конкретных людей, или даже напрямую для общей доступности (GA). Хотя выпуск в GA часто делается только после того, как есть достаточная уверенность, что функция работает, как ожидалось. Можно утверждать, что это влияет на частоту высвобождения, чтобы быть выше.
Такое разделение выпуска и развертывания практически невозможно достичь без переключения флагов функций.
Естественно, когда для выключения функции развертывание не требуется , время восстановления службы существенно сокращается.
А благодаря использованию флагов функций, которые предоставляют функции небольшому сегменту клиентской базы, показатель частоты отказов может также быть значительно улучшен.
Таким образом, простой механизм, называемый переключением флагов функций, обеспечивает гораздо лучшую производительность ИТ и, в свою очередь, повышает общую производительность организации.
Отличный пример того, как это делается в реальных компаниях, можно найти на Flickr (на одной из первых публичных публикаций на эту тему) и на Etsy . Но многие другие приняли практику и подробно об этом говорили, например, о знаменитой инженерной культуре на видео Spotify .
Etsy демонстрирует свой внутренний инструмент для управления флагами функций , называемый Catapult, в нескольких презентациях, которые можно найти в Интернете. И Intuit выпускает инструмент с открытым исходным кодом под названием Wasabi, который помогает управлять флагами функций.