🙆

OpenFeatureとは何なのか

2022/12/12に公開

Developer Productivity Advent Calendar 2022 の12日目の記事です。

この記事の目的

2022年5月にプレスリリースが公開され、世に現れたOpenFeatureの現況を書きます。
この記事では2022年12月時点での情報を記載しています。

フィーチャーフラグがDeveloper ProductivityやDeveloper Experienceに大きく貢献することを前日の記事で書きました。
OpenFeatureはフィーチャーフラグの発展を支えようとしている取り組みです。

OpenFeatureの目指すもの

フィーチャーフラグマネジメントのオープンスタンダードを確立すること。
一貫性のある、統一されたAPIを提供すること。
それにより、頑健なエコシステムをサポートすること。

これが、公式サイトに記載されているOpenFeatureの目指しているものです。

https://openfeature.dev/

その目的通り、OpenFeatureのGithubオーガニゼーションにはフィーチャーフラグマネジメントに関する公開仕様と、それに従ったSDKのソースコードなどが含まれています。これらはすべてOSSとなっています。

フィーチャーフラグマネジメントシステムはどのように動くか

OpenFeatureを語る前に、フィーチャーフラグマネジメントがどのように行われるか理解する必要があります。

フィーチャーフラグマネジメントは一般的にクライアントサイド(SDKの形で提供されることが多い)と、サーバーサイドのサービスによって提供されるものです。

数多くのベンダーがフィーチャーフラグマネジメントの領域に参入し、SDKの実装を提供しています。ユーザーはこのSDKを自分たちのクライアントアプリケーションに組み込みます。組み込まれたSDKはアプリのバックグラウンドでサーバーサイドのフィーチャーフラグマネジメントサービスと通信し、フィーチャーフラグの値を取得してきます。


OpenFeature公式サイトより引用

フィーチャーフラグの値は様々な戦略・メタデータにより決定されます。(これをフィーチャーフラグを評価する:Evaluationすると呼んでいます)

たとえば以下のような戦略が考えられます。

  • 常にtrueを返す。
  • ランダムに選択した50%にはtrueを返す。残り50%にはfalseを返す。
  • 年齢が20歳以下のエンドユーザーには2割引の価格値を返す。
  • 指定したIPアドレスレンジのエンドユーザーにはtrueを返す。

OpenFeatureがカバーする範囲

OpenFeatureがカバーする範囲は、クライアントサイドのみです。

ユーザーのアプリケーションのうち、フィーチャーフラグマネジメントシステムと直接やり取りをするのは、クライアントアプリケーション部分です。
各ベンダーが好き放題に自分勝手なAPI・SDKを作っていけばクライアントアプリケーションはベンダーロックインされてしまいますが、OpenFeatureはまさにその部分に秩序を確立しようとしているわけです。

下の図ではオレンジ色の実線部分がOpenFeatureのSDK,つまり統合されたインタフェースです。
緑色の実線部分は各ベンダーが提供するSDKとサーバーサイドのシステムとなります。

ユーザーのクライアントアプリケーションはOpenFeature SDKを通して、ベンダーのシステムとやり取りすることになるので、自分たちのコードを大きく変更することなく他のベンダーのシステムに切り替えることが可能となります。

ベンダー側にとっても、OpenFeature準拠のSDKを提供することでユーザーが他ベンダーから自分たちのシステムに乗り換えてくれる可能性が高まるので、今後は準拠SDKを提供するプレイヤーが増えると思われます。


OpenFeature公式サイトより引用

OpenFeatureのステークホルダー

OpenFeatureの運営や実装はフィーチャーフラグマネジメント領域に関心のある企業・個人のグループにより行われています。

このグループを主導しているのがDynatraceという企業で、コミュニティのガバナンスを担当するボードメンバー6名のうち、2名がDynatraceの方です。
また、技術的な取り決めを行うメンバー3名のうち、1名がDynatraceの方です。
(これらのボードメンバーは一時的に取り決められたもので、後に変更される予定だそうです。)


OpenFeature Community Membersより

DynatraceはOpenFeatureの推進にかなり気合が入っているようですね。
同社はOpenTelemetryのコミュニティ運営・実装にも関わっているらしく、OpenFeatureとの連携も進めているようです。

Dynatraceの他にボードメンバーやミーティングに参加している主なメンバーの企業は以下に列挙したものになります。(順不同)

すでにOpenFeature準拠のSDK Providerを提供している企業もあります。
以下のリンクからSDKの言語ごとに対応企業のソースコードが見れますので確認してみてください。
https://docs.openfeature.dev/docs/reference/technologies/

オープンスタンダードが作られていく様子をウォッチする

OpenFeatureは2022年5月に公開された、まだまだ若い取り組みです。
仕様の範囲も現在のコード量も多くはありません。今ならOpenFeatureの多くの部分を自分の目で読み込み、理解することが現実的に可能です。
オープンスタンダードが作られていく様を見るのは面白い体験になるはずです。私もウォッチを続けていくつもりでいます。

最後にopen-featureオーガニゼーションで特に見ておくべき箇所をまとめて終わりにします。

  • meeting note
    • 隔週で行われているミーティングの議事録。これを見るだけでも十分面白いです。
  • spec
    • 仕様をまとめているレポジトリ。
    • まだ公式サイトの内容とあまり差分がないが、詳細はこちらに書いてある。
  • community
    • OpenFeatureのコミュニティ運営についてまとめているレポジトリ。
    • オープンスタンダードを作ろうとする取り組みが何に気をつけているか読み取れる。
  • ofep
    • 新規機能の提案や議論が行われているレポジトリ。
    • KubernetesでいうとKEPに相当するもの。

Discussion