Indeedのオープンソース A/B テスト・フレームワーク

今この瞬間にも、Indeed では 100 件以上の A/B テストを実行しています。

これらのテストは、 Proctor と呼ばれる自社開発したシステムによって管理されていますが、この Proctor がオープンソース化されました。

何年にも渡りA/Bテストを行ってきた私たち の経験を活かして、Proctor は開発されました。

そんなProctorのデザインおよび機能は、以下をまず目標に掲げています。

  • 簡単、高速、そして安全にテストを調整できること
  • トラフィックを詳細に絞り込んでセグメント化できること
  • テストの挙動から A/B テストの管理を切り離せること
  • 私たちの使用する様々なアプリケーション、サービス、ツール全てにおいて、対応可能であること
  • 複数のアプリケーション間でテストを同期できること

Proctor は多くの Indeed のプロダクトと統合されており、 Indeed のシステム全体の能力をパワフルにしました。さらに、 Proctor の本来の用途であったテスト以外に、動的な「フィーチャー・トグル(実装のオンオフ機能)」を介して、システム全体の挙動の入念な管理を可能にしました。これにより、安全かつ段階的に開発システムへの変更を適用できるようになったのです。

Proctor は Java で書かれており、 Java 仮想マシン上でホストされているどんな言語からでも使用が可能です。

Proctor のソースコードは GitHub (github.com/indeedeng/proctor) にホストされており、皆さんご自身のアプリケーション上での Proctor をご活用いただく方法を解説したドキュメンテーションリファレンス実装もご覧いただけます。そして、 Google Group では、Proctorについてディスカッション・質問を受け付けております。

また、定期開催している @IndeedEng テックトークの一環として Managing Experiments and Behavior Dynamically with Proctor (Proctorを使用したテスト管理と挙動の動的な管理) というテックトークも行いました。
Indeed だけでなく、 Proctor が皆さんのお役に立てば幸いです。

indeed_proctor_github