kakakakakku blog

Weekly Tech Blog: Keep on Learning!

高機能な Feature Flag サービス「Unleash」のデモを試した

コードを書き換えず,フラグを使って機能を有効化するプラクティスを「Feature Flag(もしくは Feature Toggle)」と言う.Feature Flag を実現するサービスとして「Unleash」があり,単純に機能を有効化するだけではなく,有効化する条件を設定したり,カナリアリリースもできる.多くの機能が揃っていて,管理画面もある.今まで使ったことがなく「Unleash」を試していく!数記事に分割する予定!

www.getunleash.io

Unleash Demo

まずは「Unleash」の挙動を確認するため,公開されているデモ「Interactive demo」を試す.「Unleash」を導入したフロントエンドアプリケーション(React で実装された SPA)と管理画面を操作できる.管理画面にログインするためにメールアドレスを入力必要があるけど,特に認証は求められず,また管理画面の操作ログにも表示されるため,ダミーアドレスにしておくと良さそう.

f:id:kakku22:20220112131522p:plain

Step 1: Enable/disable feature toggle

Step 1 では,フラグを使って機能を有効化する.管理画面でフラグ demoApp.step1 を開いて enabled in default に変更をすると,フロントエンドアプリケーション上に画像が表示された.コードを書き換えずに機能を有効化できている.

f:id:kakku22:20220112132036p:plain

f:id:kakku22:20220112132048p:plain

Step 2: Enable for a specific user

Step 2 では,特定のユーザーに限定して機能を有効化する.管理画面でフラグ demoApp.step2 を開いて「Strategies(戦略)」「UserIDs」を設定すると,フロントエンドアプリケーション上に画像が表示された.

f:id:kakku22:20220112132344p:plain

f:id:kakku22:20220112132353p:plain

Step 3: Gradual rollout

Step 3 では,割合を指定して一部のユーザーに限定して機能を有効化する.管理画面でフラグ demoApp.step3 を開いて「Strategies(戦略)」「Rollout 25%を設定すると,フロントエンドアプリケーション上に画像が表示された.

f:id:kakku22:20220112132703p:plain

f:id:kakku22:20220112132710p:plain

Step 4: Variants

Step 4 では,全ユーザーに機能を有効化しつつ「Variants(バリアント)」を使って挙動を変更する.「Variants(バリアント)」は機能の中に複数の実験項目を含めることができる仕組みで,A/B テストとしても使える.

docs.getunleash.io

管理画面でフラグ demoApp.step4 を開いて「Variants」「BlueButton 50%「GreenButton 50%を設定すると,フロントエンドアプリケーション上に異なるボタンが表示された(右画面は Chrome のシークレットウィンドウを使っている).ユーザーによって異なる挙動を有効化できている.

f:id:kakku22:20220112132718p:plain

f:id:kakku22:20220112132726p:plain

まとめ

今回は Feature Flag を実現するサービス「Unleash」を試した.まずは挙動を確認するため,デモを使って「計4種類」の仕組みを試すことができた.次回は実際に Unleash SDKs を使ってコードを書いていく!続く〜