【问题标题】:How to do user specific deployment of web application?如何进行用户特定的 Web 应用程序部署?
【发布时间】:2021-05-04 20:48:36
【问题描述】:

我有一个 Web 应用程序,我遇到了这样一种情况:我即将发布我的应用程序的新版本,但我希望该版本首先只对特定的一组用户可用?

例如,我的应用有用户(a、b、c、d、e、f g、h)。我正在发布我的应用程序的 v2,这些用户不需要知道我已经发布了我的应用程序的新版本。每当用户 (a,b,c) 尝试访问应用程序时,他们应该被重定向到 v2,而当其他用户尝试访问应用程序时,他们应该被重定向到 v1。

从部署和系统设计的角度如何实现?

【问题讨论】:

    标签: web architecture load-balancing web-deployment system-design


    【解决方案1】:

    您可以做到这一点的最简单方法是通过功能标志。您使用 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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 2020-02-06
      相关资源
      最近更新 更多