SHOEISHA iD

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

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

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

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

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

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

フィーチャーフラグの導入(1)どのような方法があるか?

 ここまでの説明でフィーチャーフラグシステムのイメージは掴んでいただけたでしょうか? 次はプロダクト開発へフィーチャーフラグを導入する場合に、どのような実現方法があるかについて説明します。フィーチャーフラグの仕組みの実現方法にも、簡易的なものから本格的なものまでさまざまなものがあります。

環境変数や設定ファイルによるフィーチャーフラグの管理

 多くのプロダクトでは、アプリの設定を行うために環境変数や設定ファイルを使用しているかと思います。これらをアプリの起動時に読み込んで、振る舞いを切り替えたい箇所で参照することで、簡易的なフィーチャーフラグとして使用することができます。

 この方法のメリットは、特別な仕組みを導入することなくすぐに使用できることです。注意点としては、フィーチャーフラグの値の変更にはアプリケーションの再起動が必要であることや、動的なフィーチャーフラグとして使用するのが難しいことが挙げられます。また、複数のクライアントアプリやマイクロサービスがある場合に、フィーチャーフラグの設定の一元管理もできません[注2]

フィーチャーフラグシステムを内製

 システムを内製する場合にもいくつかの方法があります。

データベースによるフィーチャーフラグの管理

 RDBやKVSなどのデータベースを使用してフィーチャーフラグを管理する方法です。フィーチャーフラグの設定を保存するデータベースに加え、フィーチャーフラグを編集するためのWebコンソール、アプリからフィーチャーフラグを取得するためのAPIを実装する必要があります。

 この方法のメリットは、チーム内で必要な機能を柔軟に提供できることです。また、複数のクライアントアプリやマイクロサービスからフィーチャーフラグを使用する場合でも、フィーチャーフラグの設定はデータベースで一元管理することができます。注意点としては、簡易的なフィーチャーフラグシステムであれば比較的容易に実装・運用できますが、本格的なものを構築するためには考慮すべき事柄が多く難易度が高いという点です。また、システムの構築や運用のためのコストもかかります[注3]

OSSの使用

 データベースを使用して一からシステムを実装する代わりに、既存のOSSを使用する方法もあります。FF4Jのような単一プログラミング言語・プラットフォーム対応のもの、Unleashのような複数のプラットフォーム用のSDKを提供しているもの、また、機能が少ないものから高機能なものまでさまざまなものがあります。

 この方法のメリットは、既存のOSSを使用するため、システムの実装が不要となることです。注意点としては、一般的なOSSの導入時と同様、必要な機能が提供されているか、アクティブに開発・保守されているかといった点を確認する必要があります。また、実装は不要となりますが、運用コストがかかる点も考慮すべきです[注3]

社内共通システムとして構築

 他の方法はチーム内でフィーチャーフラグシステムを構築して使用する場合の説明でしたが、こちらは社内の複数のシステムから使用する場合の方法です。巨大テック企業では、社内共通システムとしてフィーチャーフラグシステムやABテストシステムを構築していると前回の記事で説明しましたが、複数のチームで大規模にフィーチャーフラグを使用する場合は検討する価値があります。

 この方法のメリットは、社内共通システムの使用する側のチームの時間や料金を削減できることや、社内データ基盤との連携といったサードパーティー製サービスでは実現が難しい機能を提供できる可能性があることです。注意点としては、フィーチャーフラグシステムの開発・運用のために専用のチームが必要になることなど、大規模な投資が必要になる点です。

サードパーティー製サービスを導入

 最後にサードパーティー製サービスの導入について説明します。デモで説明したFirebase Remote ConfigLaunchDarklyなど、こちらも機能が少ないものから高機能なものまで、また、月々の料金が比較的安いのものから高いものまでさまざまなものがあります。

 この方法のメリットは、代表的なフィーチャーフラグシステムでは豊富な使用実績があるため安心して使用できることや、導入や運用にかかる時間的なコストが内製よりも少なくなることです。注意点としては、それなりの料金がかかる可能性がある点や、自社プロダクトのニーズに完璧に応えることができない可能性がある点が挙げられます。

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

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング