2016-05-22 6 views
0

私はプロジェクトのウェブサイトのシミュレータを構築しています。機能トグルがチームのリリースを今よりももっと手助けできるいくつかの短所を提供する方法をテストしています。カナリアンのリリース、可能な限り、コーディングでそれをシミュレートする方法

私がシミュレートしたいことの1つは、Canaryのリリースがどのように機能しているかです。私はちょうど新しいフィーチャーの構築を終え、プロダクションでテストする必要があると言います。 Canaryのリリースは、この機能を少数のユーザーに提供することです。

これをコードでどのようにシミュレートしますか?私は、typescriptでangular2 anadとapplikationを構築しています。私が使用できる機能のための構成ファイルを作成しました。

どのようにして、特定の機能をテストするためにサイトを訪れるランダムな人の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()); 
     } 

    } 

は、このコードを自分で作りましたサーバ。基本的には、localstorageに1〜11の番号を保存しています。ここでは、1つ以上の数字に基づいて機能を表示できます。

どのように私はこれを簡単に行うことができるいくつかのアイデアを持っていますか?

答えて

0

基本的には、ローカルストレージに1〜11の番号を保存しています。ここでは、1つ以上の番号に基づいて機能を表示できます。

(ブラウザセッションではなく)ユーザーに基づいてカナリアンリリースを行う必要があります。そうしないと、ユーザーはブラウザ/デバイス/ロケーションを切り替えると驚くでしょう。また、どのユーザーがテストに参加しているのかも分かりません(ユーザーは2つのデバイスを使用している場合、ユーザーはテストに参加できません)。

これはサーバー側のサポートを必要とし、スイッチはサーバーに属します。

関連する問題