Выпуск канарейки, как смоделировать его с помощью кодирования, если это вообще возможно

Я нахожусь в проекте, где я строю симулятор веб-сайта. Я тестирую, как переключение функций может предоставить некоторые минусы, которые могут помочь команде выпускать чаще, чем сейчас.

Одна вещь, которую я люблю имитировать, — это то, как работает релиз Canary. Скажем, я только что закончил создание новой функции, и мне нужно протестировать ее в производстве. Canary release просто для того, чтобы вытолкнуть эту функцию на небольшое количество пользователей.

Как смоделировать это с помощью кода? Я строю аппликацию с angular2 anad с typescript. Создали файлы конфигураций для объектов, которые я могу использовать.

Как вы, скажем, выбираете только 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 в localstorage, где я могу показать функцию, основанную на одном или нескольких числах.

Есть какие-то идеи, как я мог бы сделать это легко?

1 ответ

  1. В основном я сохраняю номер из 1-11 в localstorage, где я могу показать функцию, основанную на одном или нескольких числах.

    Вы должны сделать выпуски canary на основе пользователей (не сеансов браузера). В противном случае пользователь будет удивлен, как они переключаются браузеры / устройства / местоположения. И вы не будете знать, какие пользователи участвуют в тесте (пользователь может и не может быть в тесте, если они используют два устройства).

    Это требует поддержки на стороне сервера, коммутатор принадлежит серверу.