Ответ 1
Отметьте rollout, если вы уже используете Redis.
Я был вдохновлен как Flickr и Disqus используйте переключатели функций. Они оба писали о них в блогах и как они работают над обоими блогами разработки.
Мне просто интересно, есть ли у Ruby gem я пропал без вести или кто-нибудь знает, как это сделать в Ruby? Если ничего не случится, я надеюсь сделать свою собственную и выпустить ее в дикой природе. Но я просто хотел спросить здесь сначала, потому что я не смог найти ничего отдаленно похожего на то, что достигли как Flickr, так и Disqus.
Отметьте rollout, если вы уже используете Redis.
Недавно (9 октября 14) взглянул на доступные драгоценные камни - 9+ в различных состояниях обслуживания - и решил пойти с Flipper. Rollout также стоит посмотреть.
Если вы хотите перевернуть свой собственный исходный код для Rollout, это всего 200 строк и хорошее место для начала. https://github.com/FetLife/rollout/blob/master/lib/rollout.rb
В этом railscast также есть пример с баребонами http://railscasts.com/episodes/315-rollout-and-degrade
Вот еще несколько:
Также настоятельно рекомендуем шаблон. Нет драгоценных камней, о которых я знаю, но это довольно легко сделать. Один совет: включить автоматическое задание начального состояния на включение или выключение:
feature_flag('third_party_tool', :default => true) do
... # this is on by default
end
Это избавит вас от головных болей во время развертывания.
Я попробовал все драгоценные камни, доступные сейчас (март 2015 г.), и выбрал ruby_flipper
Да, он старше других, но он позволяет использовать блоки и аргументы для вычисления состояния функции, и это просто прост.
Не требуется redis, любая база данных или что-то еще.
Для настройки нескольких серверов я использую переменные ENV. Фактически можно использовать что-либо, поскольку оно не ограничивает вас (как и другие варианты здесь).
Единственное, что мне не нравится, это то, что ruby_flipper
загрязняет объект своими методами, но это легко решить.
Подводя итог: если вам нужно легкое, настраиваемое и не ограниченное решение, я голосую за этот простой камень.
Другие хороши в какой-то определенной области, с которой хорошо начать.
Другим хорошим кандидатом является rollout, упомянутый в принятом ответе.