Case06

複数領域の様々な横断プロジェクトで

活用される状態を目指した、

マルチテナント展開方式の確立

機械学習エンジニア×事業領域横断

Case06

複数領域の様々な横断プロジェクトで

活用される状態を目指した、

マルチテナント展開方式の確立

機械学習エンジニア×事業領域横断

01Outline
事例のアウトライン
データ推進室では、複数領域で利用可能なプラットフォームを開発しており、事業領域やプロジェクトを越えて活用可能なシステムを「横断プロダクト」と認定した上で、各領域への展開を図っています。
本案件では、活用フェーズによって領域展開方式を切り替える手法とその方式の設計に取り組みました。
結果、パイロットフェーズでは複数領域で共通環境を共同利用するASP方式、本格導入フェーズでは領域単独の利用環境をセルフで構築・運用するセルフホスティング方式に切り替える手法を確立することができました。また、サービスレベル要求の高い住まい領域『SUUMO』のレコメンド基盤に、横断プロダクト Crois(社内のシステム名称) を導入し、適用することができました。
02Issue
直面していた課題
データ推進室では、複数の領域に機能提供する横断プロダクトを導入・推進し、これまでは、複数領域において共同環境・共同利用するASP方式のみ提供していました。しかし、事業の要求レベルが高まるにつれ「要求するサービスレベルを満たせない」「障害時の即時対応が担保できない」「事業単独での必要リソースを保証できない」など、ASP方式が各事業が求める要件に応えられないという課題に直面していました。 「各事業のサービスレベルを上げたい」「より安定的に運用したい」「障害時の即時対応を担保したい」といった運用要求水準が比較的高い領域でも、横断プロダクトの導入ができるのではないかと考え、その確立にチャレンジしたのが、本プロジェクトのテーマです。
03Solution
実現した解決策
これまでのASP方式に加え、各事業領域における専用の環境を「セルフで構築・運用」するセルフホスティング方式を取り入れました。
パイロットフェーズでは複数領域で共同環境を共同利用するASP方式を採用し、本格導入フェーズでは領域単独の利用環境をセルフで構築・運用するセルフホスティング方式への切り替えを行いました。その際、運用要求水準の高い領域にも横断プロダクトが導入可能となる方式をCroisにより確立しました。
Croisとは、バッチ処理を効率的に開発・運用するためのバッチワークフロー機能を提供するプロダクトです。あらかじめ複数の領域での利用が想定される機能が共通モジュール化されており、それらのモジュールを利用して効率的にバッチ開発ができます。開発者が独自にモジュールを開発して利用したり、そのモジュールを公開できることはもちろん、コードベースでのバッチワークフロー開発や実行、実行結果や実行ログをWeb上で参照できるなど、様々な機能を備えています。
ソリューション 図
ソリューション 図
ソリューション 図
ソリューション 図
04Technical Background
技術的な背景
1つ目のポイントは開発と運用の分離です。従来はデータ推進室のCrois担当チームが一元的にプロダクトの開発と運用を担っていました。しかし、セルフホスティング方式では、レコメンドシステムの担当がCrois環境を運用できるようにしました。それにより、インフラからアプリまで一元的なバッチ運用を可能にしました。
技術的背景 図技術的背景 図


2つ目のポイントはセルフホスティング方式による自律的構築・運用の実現です。Croisのインフラ環境構築手順を汎用化したインフラ構築プログラムを開発するとともに、事前設定や実行手順も整備しました。これを、『SUUMO』のレコメンド基盤に導入することで、レコメンドシステムの担当がプログラムや公開ドキュメントを参照しながら、自身でCroisの環境構築をできるよう仕組みを整えました。
技術的背景 図技術的背景 図


3つ目のポイントは兼務体制によるナレッジの習得です。レコメンドシステムの担当メンバーがCroisチームも兼務し、一部の開発タスクを担う体制にすることで、Croisの仕様把握が必然的に進む構造を生み出しました。その結果、自律的なトラブルシューティングの実施など、質の高い運用の実現が可能になりました。
技術的背景 図技術的背景 図
05Outcome
得られた成果
リクルートには、複数の事業領域に導入できる横断プロダクトがCrois以外にも存在します。本プロジェクトの取組は、他の横断プロダクトを導入する際にも活用可能であり、リクルート内での「型」を創出することができました。
事例紹介Case Study

飲食店の調理順序を最適化し

料理の提供遅れを防止

Case02 データサイエンティスト × 業務・経営支援

dbt™CLIデータ開発に

自動テストを導入

Case04 アナリティクスエンジニア × 自動車