

Forrst Blog: How we deploy new features on Forrst - schapman623
http://blog.forrst.com/post/782356699/how-we-deploy-new-features-on-forrst

======
godel
I really don't see Flickr's (or Forrst's) approach a "trick" or feature. I
think most deployment techniques come out of a desire NOT to deploy like
Flickr(or Forrst).

------
zalew
This idea is also well explained here:
<http://news.ycombinator.com/item?id=1463751>

------
justin
Where can I get an invite? I applied on the site but haven't heard anything
and I can't wait any more!!!!!

~~~
mhunter
e-mail me mjhunter [at] gmail

------
technoweenie
How do you modify the buckets? Do you have to tweak a config file and push it
out to your servers?

~~~
kylebragger
Right now, yes. Deploys happen frequently enough and are sufficiently fast
that I can get something disabled globally in under 30 seconds. The next
iteration of this stuff I'm building now; goals are standalone library, more
DRY, and some kind of simple web UI where I can do the global enable/disable
actions. I'll likely stick to manipulating buckets in config files for the
foreseeable future; it's being able to mass-enable/disable that I need to
refine.

~~~
technoweenie
I've started using Redis key/set operations for things like this at GitHub.
The nice thing is that these techniques are all simple, and it's easy to
modify to fit your evolving needs.

~~~
kylebragger
Yeah, I definitely considered using Redis too; I'd be able to leverage web UI
for even stuff like adding/removing users from buckets. How are you handling
with persistence? I presume backing up the dump.rdb file frequently? I'd be a
shame to lose any of the data (though I'm probably being overly paranoid)

~~~
kneath
Using a combo of the append-only file[1] and a redis slave[2] you'll get about
the best durability one can ask for in today's world (assuming you're aware of
the gotchas with regard to expiring keys — an edge case).

[1] <http://code.google.com/p/redis/wiki/AppendOnlyFileHowto> [2]
<http://code.google.com/p/redis/wiki/ReplicationHowto>

------
sync
Wouldn't this make debugging and (manual) testing so much more difficult?

~~~
patio11
Feature flags are essentially identical to operating A/B tests in this
respect, right? I have a magic button which logs me in as a target user, and
it reproduces _exactly_ what they would see, including the results of A/B
tests. This helps to reproduce unanticipated interactions between tests. (This
has only happened maybe twice, but they were doozies.)

