web - 如何进行用户特定的 Web 应用程序部署?
问题描述
我有一个 Web 应用程序,我遇到了一个场景,我即将发布我的应用程序的新版本,但我希望该版本首先只对特定的一组用户可用?
例如,我的应用有用户(a、b、c、d、e、fg、h)。我正在发布我的应用程序的 v2,这些用户不需要知道我已经发布了我的应用程序的新版本。每当用户 (a,b,c) 尝试访问应用程序时,他们应该被重定向到 v2,而每当其他用户尝试访问应用程序时,他们应该被重定向到 v1。
从部署和系统设计的角度来看,如何实现这一点?
解决方案
最简单的方法是通过功能标志。您使用 V2 的代码部署应用程序,但它仅适用于特定的一组用户。为此,您需要一个功能标记系统。
Launch Darkly将功能标记作为一项服务提供,我使用过它,但我不能推荐它。
就像它如何工作的一个小预览一样,首先您需要使用 SDK(您从平台获得)创建一个客户端对象:
LDClient ldClient = new LDClient("YOUR_SDK_KEY");
然后您需要构建一个LDUser
对象,这只是您的用户的抽象:
LDUser user = new LDUser("user@test.com");
然后,您只需使用这些对象来检查功能标志的状态。您在平台上配置功能,您可以在其中看到漂亮的图表和报告(何时使用或不使用功能等)
boolean showFeature = ldClient.boolVariation("your.feature.key", user, false);
if (showFeature) {
// application code to show the feature (the V2 functionality, in your case)
}
else {
// the code to run if the feature is off (the V1 functionality)
}
如果您不想使用它,您可以构建自己的系统,这取决于您的用例是否真的值得努力(对于简单的场景,您可以将此系统视为带有 API 的数据库)前面)
推荐阅读
- django - select_related 字段的调用管理器
- c# - 如果笔记本电脑连接到外接显示器,则不显示徽章通知
- python - 错误:没有注册错误处理程序,记录异常
- java - FATAL EXCEPTION: main, java.lang.NullPointerException: throw with null exception 在发布模式下出现这些错误,
- angular - 无法覆盖我的剪贴板指令代码覆盖率 100%
- android - 为什么 Row 小部件不接受列表?
- python - NameError:未定义全局名称“Anything” ODOO 10
- c# - WPF - 将面板切换到编辑模式,但使用样式排除特定部分
- optimization - 经过llvm opt优化后,函数中的所有代码都被删除了
- angular - (mouseenter) 事件上 e.currentTarget 的打字稿类型