Ever wanted to roll out new features in your web app to only select users, bit by bit, testing performance as you go? James Golick has harnessed the power of Redis to do just that with Rollout.

Rollout is a gem, so just install from the command line:

gem install rollout

To get started, create your Rollout

$redis   = Redis.new
$rollout = Rollout.new($redis)

You can then activate/deactivate features in a number of ways

by group,

$rollout.activate_group(:chat, :all)
$rollout.deactivate_group(:chat, :all)

by user,

$rollout.activate_user(:chat, @user)
$rollout.deactivate_user(:chat, @user)

or even for a percentage of users

$rollout.activate_percentage(:chat, 20)
$rollout.deactivate_percentage(:chat)

As a failsafe, you can back out a broken feature with the nuclear option:

$rollout.deactivate_all

[Source on GitHub]


Have comments? Send a tweet to @TheChangelog on Twitter.

Subscribe to The Changelog Weekly – our weekly email covering everything that hits our open source radar.