Доставить обновление и начать использовать новый расчёт можно в разное время. Объясняем переключатели функций, условия возврата и ограничения такого подхода.
Обновление готово, но рабочий результат пока прежний
Представим условную службу доставки. Команда подготовила новое правило расчёта стоимости, но бухгалтерия ещё проверяет пограничные случаи. Программу можно обновить заранее, оставив для рабочих отчётов прежнее поведение. Отдельное решение определит, когда новая ветка расчёта начнёт использоваться. Для участников процесса это два события с разной ответственностью: техническая доставка и разрешение применять изменение.
Такой механизм называют переключателем функции, или feature flag. В документации Unleash он позволяет управлять доступностью поведения во время работы программы без повторной доставки самого обновления. Это возможность, которую необходимо заранее предусмотреть в системе. Сам по себе пункт в плане работ не делает любой расчёт переключаемым.
У переключателя должен быть понятный смысл
Для нашего примера предложим сформулировать правило словами: какое поведение остаётся прежним, что меняется после включения и где виден результат. Название «новая логика» слишком расплывчато. Команде полезнее знать, относится ли решение ко всей стоимости доставки, отдельной надбавке или только отображению числа. Иначе два участника могут по-разному понять одно действие. Полезно также заранее определить, кому разрешено менять состояние и где фиксируется принятое решение: само наличие переключателя не заменяет согласование ответственности.
Стоит заранее назначить владельца решения и человека, который наблюдает за результатом. Если включение согласовано на утро, а данные ещё не готовы, ожидание календарной даты не является достаточным основанием. Для условного запуска договоримся о проверенном наборе примеров, подтверждении ответственного и понятном способе определить, какая версия сформировала отчёт.
Ограниченное включение требует сопоставимых правил
Допустим, новое правило сначала применяют к одному согласованному учебному набору. Читателю отчёта должно быть видно, что это пробный результат, а не окончательная сумма для всей компании. Затем можно рассмотреть расширение области применения. Такой порядок — наш организационный пример, а не утверждение о том, что конкретный инструмент автоматически проверяет правильность финансового расчёта.
Особенно важно определить единицу переключения. Если часть строк одного отчёта рассчитана по старому правилу, а часть по новому, общий итог может оказаться трудно объяснить. Для нашей проверки предложим сохранять один согласованный вариант в пределах выбранного отчётного периода. Иначе разбор различий начнётся с выяснения того, какие правила вообще участвовали.
Выключение не отменяет уже сделанного
Переключатель управляет дальнейшим поведением. Если новая обработка уже отправила письмо, изменила запись или передала сумму в другой процесс, возврат старого режима сам по себе не отменяет этих действий. Поэтому для нашего сценария отдельно составим план исправления последствий: какие результаты нужно пометить, пересчитать или проверить у получателя.
Перед запуском полезно пройти мысленный сбой: обнаружено неверное округление, ответственный выключает новое правило, затем команда выясняет, какие отчёты успели измениться. Если определить их невозможно, проблема не решается одной кнопкой. Порядок реакции можно связать с инструкцией дежурного и оценкой критичности сбоя.
Временный механизм нужно завершать
В рекомендациях Unleash переключатели выпуска предлагают убирать после завершения перехода. Для нашего расчёта назначим дату повторного решения: оставить новую версию, доработать её или отказаться от изменения. Бесконечное хранение двух вариантов усложняет понимание того, какое правило считается рабочим.
Это отличается от теневого расчёта, где новая версия ещё не отдаёт пользователям рабочий результат. Здесь вопрос именно в управляемом включении поведения. Изучать надёжность обработки и взаимодействие команды можно на программе DataOPS инженер. Начать обсуждение достаточно с одной формулировки: что изменится после включения и как мы это заметим.


