今後のhacci――さらなる進化に向けて
hacciはデータパイプラインとして非常に安定しており、運用の手間がかかりません。とは言え、さらに使いやすい基盤に進化させていきたいと考えています。具体的には、データパイプラインの入力・出力のパターンを増やすための機能を実装し、利用者がよりメリットをイメージしやすく、導入しやすいと感じられるシステムを目指しています。
上図の「データ蓄積」「分析/活用」について、hacciの新機能として現在開発中の内容を3つ紹介します。
【1】取得データのリッチ化
hacciでは、データパイプラインに流すデータを生成・送信するためのSDKを提供しています。SDKには、Webページに埋め込むためのJavaScriptコードと、アプリに埋め込むためのライブラリがあります。現在hacciでは、このSDKを改良し、よりリッチなデータを取得できるようにしています。
例えば、Webページやアプリ画面上の、利用者のマウスやスクロールなど細かなデータを即時に取得することができれば、読み飛ばしや迷いなど利用者のページ上の動向を捉えることができ、その動向に対してリアルタイムにリアクションを取ることができます。また、最近のハードウェアデバイスはさまざまなセンサを搭載しているので、ユーザーの現在の身体の向きや利き腕の判定も可能になるでしょう。そうした判定に基づいてページのレイアウトを変更すると、利用者はより利便性を感じるのではないでしょうか。ただし、出し方によってはユーザー側に違和感を与えかねないことから、UI/UXの設計は大変重要となります。
【2】外部サービスとの連携
自社サービスのデータの活用だけでは、利用者に提供できる体験に限りがあります。そこで、外部サービスのデータをhacciに投入、あるいは、hacciを通過したデータを外部サービスに転送することで、よりリッチなデータを獲得、高度な利用を実現できるようになります。ここで言う外部サービスとは、リクルート内でhacciとは別に作られたシステムからなるサービスと、リクルート外のサービスの両方を指しています。
このようなhacciを用いた入力・出力での外部サービスとの連携のために、hacciの前後で動かすCloud Dataflowジョブを都度追加開発しています。
【3】CI/CD環境の整備
プラットフォームの改善手法についても紹介します。hacciの開発フローは「Git-flow」を採用しています。そしてCI/CD環境を現在「Argo/Argo CD」で実装しています。Argo自体がまだ若いOSSで、頻繁な更新があり、便利な機能が次々に追加されています。Argo導入以前には「Concourse CI」を使っていました。
また、似たようなツールとしてクラウド界隈で流行っている「Spinnaker」や「Tekton」といった最新ツールの動向を踏まえ、よりhacciを開発しやすい環境作りを進めています。
ちなみに、このあたりをツールとしてクラウドマネージドシステムに採用する考えはチームにあまりなく、機能が豊富で自由なことができやすいOSSを見ることが多いのが現状です。
【最後に】施策を進める上で大切にしていること
これまで基盤のお話をしてきましたが、ユーザー体験を良くして価値を提供するためには、実は基盤を用意するだけでは不十分です。リアルタイムに何かをすることは、技術面で比較的新しく、時に魅力的に見えるでしょう。hacciを使うことで、リアルタイムで施策を容易に実現できます。しかし、端的に言えば「リアルタイム化≠正義」です。全ての処理をリアルタイム化して、価値ある施策を創り出し実現するには、マーケティング、UX、サイエンス、エンジニアリングといった全ての力を結集し、ユーザー体験をとことんまで考え、そこから生まれた施策により初めて価値が生み出されます。
私たちもhacciを作るだけで終わることなく、データをどのように発生元から利用先に届け、活用してもらえるか――そこまで踏み込んで、継続的な施策の実施、プラットフォームの改善を繰り返しています。
まとめ
2回にわたって、リアルタイムデータ基盤「hacci」が誕生した背景、それを支える基盤技術や事例、今後の展望について紹介しました。内容を簡単に振り返ります。
- 世の中のユーザー行動が変化し、リアルタイムな行動を捉えた「おもてなし」が求められている。
- ユーザーのデータをリアルタイムに収集・分析・活用するためのプラットフォーム「hacci」を社内で開発。
- hacciはGCP上で実装されており、入力部・処理部・出力部に分かれる。それぞれの機能を単純化しつなぐことで、運用負荷低減、継続的な改善を実現。
-
hacciのビジネス活用シーンの一例
- 「迷いユーザー」に対するリアルタイムな条件レコメンド。
- 強化学習のような「教師なし学習」との組み合わせ。
- ミドルウェア・ライブラリ情報の把握のためのデータを流すなど、サービスの安定提供を目的とした施策支援。
-
基盤だけでは価値を生み出せない
- 異なる専門領域を持つメンバーが集まり、一枚岩となって取り組むことが必要。
- 基盤を作って終わりではなく、ユースケースに対して、どのようにデータを発生元から利用先に届け、活用してもらえるかを考え、改善し続けることが重要。そのためには、改善しやすいアーキテクチャ設計が大切になる。
「施策を進める上で大切にしていること」でも述べた通り、リアルタイムデータ基盤はユーザーのマイクロモーメントに対するアプローチのひとつの手段でしかありません。世の中の動きに合わせて、その時々にあった基盤やUXを整えていくことが肝要と考えています。この記事が、リアルタイムデータの活用を考えている方々の参考になれば幸いです。
