Что верно про feature flags?
- Зачем нужны фичефлаги?
- Чем опасны фичефлаги?
Флаги отделяют выкатку кода от включения функции: код едет в прод выключенным, включение и откат — за секунды, без деплоя.
- Позволяют короткие ветки (trunk-based), постепенное включение по процентам и сегментам, A/B-тесты
- Цена: комбинации флагов, которые никто не тестировал, и мёртвый код забытых флагов
- Релизные флаги временные — удаление после раската входит в задачу; операционные рубильники живут осознанно
А ещё Canary и флаги дополняют друг друга: canary — по экземплярам, флаг — по пользователям
Подробно
Что дают:
- деплой ≠ релиз — незаконченная функция в основной ветке, но выключена; не нужны долгоживущие ветки и болезненные слияния;
- мгновенный откат поведения без отката деплоя;
- постепенное включение — сотрудникам, 1% пользователей, одному региону;
- эксперименты — A/B-тесты по флагу;
- рубильники (kill switch) — аварийно отключить тяжёлую функцию под нагрузкой.
Цена:
- комбинаторика — 10 флагов дают 1024 сочетания; тестируются единицы. Флаги не должны зависеть друг от друга;
- долг — забытые флаги с мёртвыми ветками кода; нужны владелец, срок жизни и задача на удаление;
- сложность кода — ветвления по всему коду; лучше проверять флаг в одном месте на границе;
- зависимость от сервиса флагов — должен быть локальный кэш и разумные значения по умолчанию при его недоступности.
Типы: релизные (дни–недели, удаляются), экспериментальные (на время теста), операционные (постоянные рубильники), разрешения (доступ по тарифу).
Что хотят услышать
- Отделение деплоя от релиза, быстрый откат, постепенное включение.
- Цена: комбинации и долг.
- Разные типы флагов и дисциплина удаления.
- Связь с canary.
Частые ошибки
- Не удалять релизные флаги после раската.
- Строить флаги, зависящие друг от друга.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Отделяют деплой кода от релиза функциональности
- ✓Выключение флага — самый быстрый откат, без выкатки
- ✓Каждый флаг удваивает пути исполнения, поэтому нужны владелец и срок жизни
- ✗Флаги полностью заменяют canary и другие стратегии выкатки, так что от них можно отказаться
Что спросят дальше
- Чем релизный флаг отличается от операционного рубильника?
- Как флаги сочетаются с trunk-based разработкой?
Разбор темы
- Выкатка без простоя и миграции схемы
Rolling, blue-green и canary с их ценой, отделение деплоя от релиза через feature flags, expand–contract для схемы БД, совместимость соседних версий и стратегия отката.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.