How do you do safe rollouts of new features?
Looking to discuss and have everyone share their opinions on the topic. I mostly have used feature flags for toggling features in production. However, Vercel’s instant rollback feature looks very promising for smaller projects. Instead of having to flag something, I can just revert if something goes wrong.
How does everyone else perform their feature rollouts in a safe manner?
5 Replies
"feature flag" is pretty broad and covers a lot of things
A lot of depends how quickly you want to roll things out, and who to.
1. need to be able to virtually instantly toggle on and off -> hit a service or db to check (can also be per user)
2. I can have a bit of latency -> just toggle it on or off in code (vercel instant rollback might make this better as well)
3. I want to do x% of customers to feautre -> can assign people as they log in and they do solution 1, or just pick randomly
the nice thing about feature 2 is that it is
sync
rather than async
. (In js you want as much of your core stuff to be sync
as possibleThere are also tools available that allow you to do this in a much better way like https://devcycle.com/
Feature Flags without the Tech Debt | DevCycle
DevCycle is a Feature Flag Management platform that lets you deploy faster, reduce release complexity, and build maintainable code at scale.
whenever I looked into feature flag tools I always thought they added more overhead than was required, the main use case for them (imo) was for product rather than devs (ie performing experiments or toggling on things based on a rule engine)
(thats given you have a backend, if you dont then yeah the services have bigger value)
True I guess. Makes it easier without troubling developers or triggerring re-deploys. Usually an admin panel is enough.
Oh interesting I hadn’t considered using the database for storing feature flag values
I’ve mostly used LaunchDarkly for things such as percentage rollouts
And ability to toggle without redeploys