Feature Flags: управление функциональностью
💡Теория
Feature Flags (или Feature Toggles) — это механизм, который позволяет включать и выключать
функции приложения без деплоя. Флаги дают контроль над тем, какие пользователи видят новые
возможности.
Применения:
⭕️A/B тестирование: показываем разные версии разным группам,
⭕️Canary releases: новая функция только для 5% пользователей,
⭕️Kill switch: быстрое отключение проблемной фичи,
⭕️Разработка: код в продакшне, но скрыт от пользователей.
Это ключевой инструмент DevOps и CI/CD. Вместо веток в Git используются флаги, что упрощает
интеграцию и снижает риск.
💚Пример на Python
FEATURE_FLAGS = {
"new_dashboard": {"enabled": True, "rollout": 0.1},
"dark_mode": {"enabled": False}
def is_feature_enabled(feature, user_id):
flag = FEATURE_FLAGS.get(feature)
if not flag["enabled"]:
return False
if hash(user_id) % 100 < flag["rollout"] * 100:
return True
return False
if is_feature_enabled("new_dashboard", user.id):
return render_new_dashboard()
⬇️На подумать: как Feature Flags меняют подход к релизам и делают деплой менее рискованным?
#Prom
💡Теория
Feature Flags (или Feature Toggles) — это механизм, который позволяет включать и выключать
функции приложения без деплоя. Флаги дают контроль над тем, какие пользователи видят новые
возможности.
Применения:
⭕️A/B тестирование: показываем разные версии разным группам,
⭕️Canary releases: новая функция только для 5% пользователей,
⭕️Kill switch: быстрое отключение проблемной фичи,
⭕️Разработка: код в продакшне, но скрыт от пользователей.
Это ключевой инструмент DevOps и CI/CD. Вместо веток в Git используются флаги, что упрощает
интеграцию и снижает риск.
💚Пример на Python
FEATURE_FLAGS = {
"new_dashboard": {"enabled": True, "rollout": 0.1},
"dark_mode": {"enabled": False}
def is_feature_enabled(feature, user_id):
flag = FEATURE_FLAGS.get(feature)
if not flag["enabled"]:
return False
if hash(user_id) % 100 < flag["rollout"] * 100:
return True
return False
if is_feature_enabled("new_dashboard", user.id):
return render_new_dashboard()
⬇️На подумать: как Feature Flags меняют подход к релизам и делают деплой менее рискованным?
#Prom