我正在构建一个具有2周冲刺周期的应用程序。我们目前一次测试功能推出,然后如果出现问题则测试热补丁。我们的堆栈是带有角度和mongo的节点。
有人使用任何SAAS解决方案进行功能标记或其他任何事情来帮助持续交付吗?
编辑:试用LaunchDarkly - 将发布更新
编辑2:从试用版更新 - 好吧,它似乎在我的堆栈中顺利运行 - 仍然需要再测试几周。 Launchdarkly功能标志设置非常简单,所以我将在这里概述。
安装SDK
ld_client = LaunchDarkly.init("YOUR_API_KEY");
传递自定义参数
var config = {"connect_timeout": 3, "socket_timeout": 3};
ld_client = LaunchDarkly.init("YOUR_API_KEY", config);
将用户属性作为JSON对象传递
var user = {
"key": "aa0ceb",
"firstName": "Ernestina",
"lastName": "Evans",
"email": "[email protected]",
"custom": {
"groups": ["Google", "Microsoft"]
}
};
所有相当简单的documentation。
编辑3:现在已经使用了3个星期,并有一些初步想法。特征标记驱动开发一直很有用,尽管很难追溯集成一些更强大的功能。能够使用launchdarkly api使用我们的优化目标进行A / B测试指标。
{
"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"
}
}
}
angular-feature-flags适用于Angular v1.2及更高版本。
基本前提是您编写功能并将其包装在指令中,然后在标记中实现该指令,将feature-flag指令添加到同一元素。然后,您可以将标志的密钥传递给此指令,以解决是否应启用此功能。
如果您正在寻找SAAS解决方案,我知道launchdarkly是一个功能标志/持续交付平台。
在我的公司,我们使用Launch Darkly和Rollout.io为企业级客户。
我们还使用了免费的Firebase Remote config,但不太适合特征标记。
我们最终开发了一个开源版本,它结合了Feature Flags和Remote配置这两个概念,称为Bullet Train。