0

我在一个项目中,我正在构建一个网站模拟器。我正在测试功能切换如何提供一些缺点,这些缺点可以帮助团队比现在更频繁地发布。

我喜欢模拟的一件事是 Canary 版本是如何工作的。假设我刚刚完成了一个新功能的构建,我需要在生产中对其进行测试。Canary 发布只是为了将此功能推送给少数用户。

你如何用代码模拟这个?我正在使用带有 typescript 的 angular2 anad 构建应用程序。为我可以使用的功能创建了配置文件。

你如何,假设只选择 5% 的随机访问该网站的人来测试特定功能?是否全部通过服务器配置完成(在不同的服务器上运行另一个构建)。

如果有人可以制作一个代码示例来说明我如何在应用程序启动时模拟它,我会很高兴。

自己制作了这段代码:

var switchKey: string = localStorage.getItem('featureSwitch');

    if (this.featureSwitch != null) {
        if (switchKey == "11") {
            this.featureSwitch = 1;
            localStorage.setItem('featureSwitch', this.featureSwitch.toString());
        }

    }
    else {
        if (switchKey != null) {
            if (switchKey == "11") {
                this.featureSwitch = 1;
                localStorage.setItem('featureSwitch', this.featureSwitch.toString());
            }
            else {
                this.featureSwitch = Number(switchKey) + 1;
                localStorage.setItem('featureSwitch', this.featureSwitch.toString());
            }
        }
        else {
            this.featureSwitch = 1;
            localStorage.setItem('featureSwitch', this.featureSwitch.toString());
        }

    }

这可能是一个不好的例子,因为我认为它不会在实时站点(在互联网上)上运行,这仅在 localhost 服务器上进行了测试。基本上,我将一个 1-11 的数字保存在本地存储中,我可以在其中显示基于一个或多个数字的功能。

任何人有一些想法我可以如何轻松地做到这一点?

4

1 回答 1

0

基本上,我将一个 1-11 的数字保存在本地存储中,我可以在其中显示基于一个或多个数字的功能。

您应该根据用户(而不是浏览器会话)进行金丝雀发布。否则用户在切换浏览器/设备/位置时会感到惊讶。而且您将不知道哪些用户正在参与测试(如果用户使用两台设备,他们可以也不能参与测试)。

这需要服务器端支持,交换机属于服务器。

于 2016-05-23T01:03:36.153 回答