SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

高速な開発サイクルを実現するフィーチャーフラグ入門

フィーチャーフラグ(Feature Flag)導入と運用のベストプラクティス

高速な開発サイクルを実現するフィーチャーフラグ入門 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

フィーチャーフラグの導入(2)どの方法を選ぶか?

 ここまでで、フィーチャーフラグの導入方法とそれぞれのメリットや注意点を説明しました。次は、実際に導入する際の参考となるように、各方法の比較やよくあるパターンの説明をします。

各方法の比較

 各方法について、3つの観点から比較します。このような観点を踏まえ、現在求める要件や将来的に変化しそうな要件に照らし合わせて、フィーチャーフラグの導入戦略を決定する必要があります。

チームの規模

 数人程度の少人数で開発している場合は、実現したい要件にマッチしている限り、環境変数や設定ファイルの使用で十分な場合も多いです。チームの規模が大きくなってくると、フィーチャーフラグの管理が難しくなったり、要件が増えたりすることで、データベースやOSSによるフィーチャーフラグシステムの構築や、サードパーティー製サービスの導入の検討が必要となります。さらに、複数のチームで大規模にフィーチャーフラグを使用する場合は、時間や料金といったコストの削減や独自機能の提供を目的として、社内共通システムとして構築を検討する価値があります。

実現したい要件

 ThoughtWorks社のTechnology Radarでも言われているように[注4][注5]、例えば実現したい要件がトランクベース開発による開発フローの改善のみの場合に、高機能なフィーチャーフラグシステムは必要ありません。このような場合は、環境変数や設定ファイルの使用、シンプルなフィーチャーフラグシステムの構築、シンプルなサードパーティー製サービスの導入などで十分だと考えられます。一方で、ABテストやカナリアリリースなどを実現したい場合は、フィーチャーフラグシステムの一般的な機能を一通り備えたシステムが必要になります。さらに、社内データ基盤との連携といったサードパーティー製サービスでは実現が難しい機能が必要な場合には、社内共通システムとして構築を検討する必要があります。

導入のためのコスト

 フィーチャーフラグシステムの構築や運用に人や時間を投資することが難しい場合は、サードパーティー製サービスの導入によって、導入までの時間的なコストを削減することができます。また、OSSを使用することでシステムの運用コストはかかりますが、実装コストは削減できるため、何らかの理由でサードパーティー製サービスの導入が難しい場合は検討する価値があります。

 各方法ごとに使用状況に応じて料金も変わってくるため、料金についても事前によく検討する必要があります。一般的には、使用規模が小さいうちはサードパーティー製サービスの方が料金が安くなりやすく、使用規模が大規模になると内製の方が料金が安くなりやすいと考えられます。

よくあるパターン

 プロダクト開発チームがフィーチャーフラグシステムを導入する際、次のような流れを辿ることが多いと言われています[注6]

  1. 初めは、環境変数や設定ファイルを使用した簡易的なフィーチャーフラグの仕組みを導入します。
  2. チームの規模の拡大や実現したい要件の増加に伴い、データベースを使用したフィーチャーフラグシステムを構築します。
  3. チームや会社でのフィーチャーフラグの重要性が高まると、サードパーティー製サービスを導入する、もしくは社内共通システムとして構築するといったことが行われます。

 もちろん2を飛ばして1から3に移行するケースなどもありますが、筆者の経験からもよくある流れだと感じます。フィーチャーフラグをチームで試してみたい場合は、まず1から始めてみると良いかもしれません。

次のページ
フィーチャーフラグの運用に関するベストプラクティス

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
高速な開発サイクルを実現するフィーチャーフラグ入門連載記事一覧

もっと読む

この記事の著者

村松 聖也(株式会社サイバーエージェント)(ムラマツ セイヤ)

 メーカーを経てサイバーエージェントに中途入社。複数のアドテクプロダクトでバックエンドエンジニアやテックリードを務めた後、現在は社内基盤であるフィーチャーフラグ・ABテストシステムの開発チームに所属。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/14442 2021/07/06 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング