I'm building an application with 2 week sprint cycles. We currently test feature rollouts all at once and then hot patch if something messes up. Our stack is node with angular and mongo.
Anyone worked with any SAAS solutions for feature flagging or anything else to help with continuous delivery?
Edit: Trialing LaunchDarkly - will post updates
Edit2: Update from Trial - Ok, it seemed to work smoothly in my stack - will still need to test for a few more weeks. Launchdarkly feature flags setup was pretty easy so I'll outline it here.
Installing the SDK
ld_client = LaunchDarkly.init("YOUR_API_KEY");
Passing Custom Parameters
var config = {"connect_timeout": 3, "socket_timeout": 3};
ld_client = LaunchDarkly.init("YOUR_API_KEY", config);
Pass User Attributes as JSON Objects
var user = {
"key": "aa0ceb",
"firstName": "Ernestina",
"lastName": "Evans",
"email": "ernestina@example.com",
"custom": {
"groups": ["Google", "Microsoft"]
}
};
All quite straightforward documentation.
Edit3: Been using for a 3 weeks now and have some initial thoughts. Feature flagging driving development has been useful, though it's difficult to retroactively integrate some of our more robust functions. Was able to use launchdarkly api for A/B testing metrics using our optimizely goals.
{
"items":[
{
"name":"Staging sandbox - Engagement",
"kind":"click",
"isDeleteable":false,
"_attachedFeatureCount":0,
"_links":{
"parent":{
"href":"/api/goals",
"type":"application/json"
},
"self":{
"href":"/api/goals/54f7538f643d2ef1c6426443",
"type":"application/json"
}
},
"_site":{
"href":"/goals/54f7538f643d2ef1c6426443",
"type":"text/html"
},
"_source":{
"name":"optimizely",
"identifier":"2353921003"
}
},
{
"name":"Sandbox - Hover",
"kind":"custom",
"isDeleteable":false,
"_attachedFeatureCount":1,
"_links":{
"parent":{
"href":"/api/goals",
"type":"application/json"
},
"self":{
"href":"/api/goals/54f75390643d2ef1c6426447",
"type":"application/json"
}
},
"_site":{
"href":"/goals/54f75390643d2ef1c6426447",
"type":"text/html"
},
"_source":{
"name":"optimizely",
"identifier":"2222571744"
}
}
],
"_links":{
"self":{
"href":"/api/goals",
"type":"application/json"
}
}
}