Рабочий процесс Feature Flag с Split.IO и Azure DevOps

Флаги функций (также известные как переключатели функций или переключатели функций) — это метод разработки программного обеспечения, который включает и выключает определенные функции во время выполнения без развертывания нового кода. Это позволяет лучше контролировать и больше экспериментировать в течение всего жизненного цикла функций.

Я лично считаю, что функциональные флаги — это технический долг, и их следует удалять как можно быстрее. По мере роста кодовой базы и добавления дополнительных функций в кодовую базу будет накапливаться технический долг.

Split.io имеет интеграцию с Azure DevOps, которая может помочь сделать этот процесс очистки немного проще.

На изображении ниже вы увидите рабочий процесс создания рабочего элемента и привязки его к флагу функции. Благодаря интеграции мы можем автоматически создавать правила таргетинга для каждой среды и включать или выключать флаг по умолчанию!

Они упростили создание флагов и привязку их к рабочим элементам, но как мне получить флаг из моей кодовой базы, а затем показать, что он удаляется как из Split.IO, так и из нашей кодовой базы?

В наших командных процессах для каждого созданного нами разделения мы также создаем элемент невыполненной работы по очистке продукта и вставляем его в следующий спринт.

Как только наш рабочий элемент достигнет производства (или любой другой среды / радиуса взрыва), мы хотели бы удалить его из нашего кода, а затем навсегда удалить его флаг функции.

Каждые две недели мы развертываем новый код в разных средах и на производстве. С разделенной доской развертывания мы можем отслеживать, какие элементы находятся в производстве, и переводить их в состояние 100 % выпуска в разделении.

После того, как элемент бэклога продукта очистки будет обработан и отправлен в производство, мы увидим на доске развертывания в столбце 100% выпущено, что конкретный сплит больше не получает трафик. Это обозначено желтым значком Prod выше. На этом этапе мы щелкнем флаг функции и проверим, что два связанных рабочих элемента находятся в состоянии «Выполнено», а затем приступим к удалению флага функции из Split.IO.