SlideShare une entreprise Scribd logo
1  sur  33
リクルートテクノロジーズ 宮川 
リクルートにおけるソリューション開拓と実装展開 〜elasticsearchによる検索基盤と新ソリューションの開拓
2 
宮川 典久 リクルートテクノロジーズ APソリューショングループ 
自己紹介 
Twitter 
@m_nori 
出身地 
東京 
趣味 
ロードバイク 
ゲーム(最近はMH4G) 
折り紙
3 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
アジェンダ 
1.はじめに 
2.次世代検索基盤について 
3.サイト展開へ向けての取り組み 
4.まとめ
1.はじめに 
4
旅行 
IT/トレンド 
生活/地域情報 
グルメ・美容 
ライフスタイル領域 
ライフイベント領域 
進学 
就職 
結婚 
転職 
住宅購入 
車購入 
出産/育児 
「選択・意思決定」を支援する情報サービスの提供 
→「まだ、ここにない、出会い。」の実現へ 
リクルートとは 
5
リクルートキャリア 
リクルートジョブズ 
リクルートスタッフィング 
リクルート住まいカンパニー 
リクルートライフスタイル 
リクルートマーケティングパートナーズ 
スタッフサービス・ホールディングス 
リクルートアドミニストレーション 
リクルートコミュニケーションズ 
事業会社 
機能会社 
インフラ部門 
大規模プロジェクト推進部門 
UI設計/SEO部門 
ビッグデータ機能部門 
テクノロジーR&D部門 
事業・社内IT推進部門 
リクルート 
ホールディングス 
リクルートとは、 
主要7事業会社+3機能会社 
で構成されるグループ企業群 
6 
リクルートテクノロジーズとは
リクルートテクノロジーズの役割 
7 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
開拓 
実装、展開 
運用 
テクノロジー 
ライフサイクル 
≪テクノロジーへの考え方≫ 
「開拓」「実装・展開」を経た「運用」でリクルートへの利益貢献を行う。
リクルートテクノロジーズの役割 
8 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
広範囲のビジネスに装 着し、効果を最大化さ せるための改善を行い、 事業貢献利益を追究 
Rグループのビジネスに 短・中期的に実活用の可能 性がある技術をリサーチ 
対象技術における事業化 への検証を行い、評価・選 定する 
開拓(実活用研究) 
実際に事業へ適用 し、より広範囲に 利用するための型 化やスキームを構 築 
実装・展開 
運用 
実施内容 
リクルートテクノロジーズ(短・中期的視野) 
利益を目的としない中長期的な 視点に立ち、新技術や新手法の 研究/発明を行い、論文発表す ることを目指す 
要素基礎技術の研究 
社外(中・長期的視野) 
技術数の 
推移イメージ 
年間約200の技術をリサーチし、 約30の技術を評価・選定 
年間数個〜10個の 
技術を展開 
運用フェーズまで 
移行された技術が蓄積 
無数の新技術を研究/発明
•サイト横断でのアーキテクト領域を担当し、 サイトに役立つソリューションを展開する グループ 
•社内フレームワークや性能チューニング等 をソリューション化し運用している。 
•運用だけでなく、技術ベースでサイトに貢 献するため、ソリューションの開拓や実 装・展開も担う 
ASGとATL 
9 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
•新しい技術の開拓や次のトレンドを察知し、 未来のサービスに活かせるソリューション を生み出すグループ 
•先端技術をベースとしたソリューションを 作り、サイト内でフィジビリティを行う。 
どちらもリクルートテクノロジーズ内でアプリケーションの開発を担当する組織
ASGとATL 
10 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
技術数の 推移イメージ 
ATL 
ASG 
開拓(実活用研究) 
実装・展開 
運用 
テーマによっては最初か ら協同する
リクルートにおけるJavaへの取り組み 
11 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
多くのサイトでR2FrameworkというJava製の社内フレームワークを使っているた め、リクルートはJava非常にお世話になっています! 
✖
2.次世代検索基盤について 
12
次世代検索基盤とは 
13 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
Query Analyze Search System 
リクルート内のサイトに対して 
•検索品質 
•フィードバック 
•検索機能追加 
•メトリクス など提供する次世代検索基盤
アーキテクチャ 
14 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
✖ 
殆どの機能をelasticsearchのプラグインとして実装
elasticsearchとは 
15 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
オープンソースの全文検索エンジン 【特徴】 
•Apache Luceneがベース 
•リアルタイム性 
•スキーマレス 
•分散環境 
•RESTful API 
•楽観的バージョン制御 最近はKibanaと組み合わせたログモニタリングによく使われている。 
elasticsearch自体については18時からの@johtaniの セッションで詳細に話してくれると思います
体制と役割 
16 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
Qass 
サイト提供I/F 
検索基本機能 
機械学習 
インフラ 
Qass利用サイト 
Hadoop開発 
インフラ構築 
elasticsearch プラグイン開発 
導入支援 
タスク 
組織 
ASG 
ATL 
BDG 
ISG
提供する機能 
17 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
Qass 
サイト提供I/F 
検索基本機能 
機械学習 
インフラ 
•Suggest 
•Results Blending 
•Query A/B Test 
•Custom Tokenizer 
•Query Boosting 
•Speller 
機能 
•User Feed Back 
•Dictionary
ユーザーフィードバック 
18 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
ビーコンサーバ 
Hadoop基盤
Hadoopによる機械学習の活用 
19 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
機械学習辞書 
ビーコンデータ 
・入力中のキーイベントを収集 
「牛角」の読みが「ぎゅうかく」で あることを学習! 
牛角 
翌日「ぎゅうかく」で検索してみると・・・ 
※入力途中で「牛角」を入力候補に表示! 
検索 
※「牛角」に漢字変換してから検索 
特殊な読み仮名は通常手動で辞書登録しないと仮名検索ができない 例)「ぎゅうかく」と入力 
検索ログ
3.サイト展開へ向けての取り組み 
20
Suggest+Beacon サーバ 
各サイト 
Qassのシステム構成 
21 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
クエリーログ 
ビーコンログ 
コンテンツ データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト 
インデックス 
集計結果 
シノニム 
機械学習辞書 
マッピング 
サジェスト データ
Suggest+Beacon サーバ 
各サイト 
通常の検索 
22 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
クエリーログ 
ビーコンログ 
コンテンツ データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト インデックス 
ユーザ操作は全て Beaconサーバに送信
Suggest+Beacon 
サーバ 
各サイト 
サジェスト 
23 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
クエリーログ 
ビーコンログ 
コンテンツ データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト 
インデックス
Suggest+Beacon サーバ 
各サイト 
サジェスト 
24 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
クエリーログ 
ビーコンログ 
コンテンツ データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト 
インデックス
Suggest+Beacon 
サーバ 
各サイト 
機械学習 
25 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ 
インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
集計結果 
シノニム 
機械学習辞書 
マッピング 
Map/Reduce 
サジェスト データ 
クエリーログ 
ビーコンログ 
コンテンツ 
データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト インデックス
更新面の管理 
26 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
プラットフォームとして提供しているため、サイトによってインデックス更新の方 針やタイミングが異なるのを実現できるようにする必要がある。 
サイトA 
日時で差分更新のみ 
サイトB 
日次の差分更新 
+ 
月次で全件更新→翌日反映 
サイトC 週次で全件更新→月曜朝8時に反映
更新面の管理 
27 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
QassPlugin 
ItemIndex001 
SearchIndex(Alias) 
検索 
更新 
UpdateIndex(Alias) 
インデックスを直接参照するのではなくelasticsearchのAlias機能を活用すること で、検索面と更新面を間接的に参照。 
ItemIndex002
更新面の管理 
28 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
QassPlugin 
ItemIndex001 
SearchIndex(Alias) 
検索 
更新 
UpdateIndex(Alias) 
検索面を表に出すタイミングでAliasの切り替えを実施。 インデックス毎に連番でバージョン番号を付けて管理を行う。 
ItemIndex002 
ItemIndex003 
一定期間経過後に削除
辞書更新への対応 
29 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
シノニム 
機械学習辞書 
マッピング 
Qass Analizer 
途中から異なる辞書を使うと不整合が発生するため、辞書を反映させるのはインデ ックスを作り直したタイミングにする必要がある。 
焼肉→焼き肉 
◯◯焼き肉 
△△焼肉 
◯◯焼き肉 
△△焼き肉 
シノニム 
機械学習辞書 
マッピング 
Qass Analizer 
焼き肉→焼肉 
◯◯焼き肉 
△△焼き肉 
辞書を更 新 
□□焼き肉 
□□焼肉
辞書更新への対応 
30 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
ItemIndex001 
ItemIndex002 
ItemIndex003 
シノニム 
機械学習辞書 
マッピング 
シノニム 
機械学習辞書 
マッピング 
シノニム 
機械学習辞書 
マッピング 
Dictionary001 
Dictionary002 
Dictionary003 
Qass Analizer 
QassPlugin 
SearchIndex(Alias) 
UpdateIndex(Alias) 
検索 
更新 
Indexバージョンごとに辞書セットを作成。 各インデックスを使う際にどの辞書を使うかをプラグインにて管理。
Solrからの移行 
31 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
サイト側アプリケーションサーバ 
検索 (http) 
検索 (http) 
Solr 
検索式 
Solr 検索式 
現状多くのサイトで全文検索エンジンとしてSolrを利用している。 そのため、プラグイン内でSolrクエリーを解釈することでサイト側は手を入れずに 導入を行えるように対応。 
SolrとのA/Bテストにも活用!
4.まとめ 
32
Java8への対応 
33 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
社内フレームワークのJava8化も行い、各サイトのJava8化に向けて推進していま す! ASGでもATLとも連携し、ライブラリのOSS化も積極的に行っていく予定です!

Contenu connexe

Tendances

Tendances (20)

ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所
 
リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
Azure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロAzure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロ
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 

En vedette

実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
心 谷本
 
Возможности сервиса
Возможности сервисаВозможности сервиса
Возможности сервиса
cbwTest
 

En vedette (20)

リクルートテクノロジーズの産学連携への取り組み
リクルートテクノロジーズの産学連携への取り組みリクルートテクノロジーズの産学連携への取り組み
リクルートテクノロジーズの産学連携への取り組み
 
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
 
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
 
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
 
リクルート式AIの活用法
リクルート式AIの活用法リクルート式AIの活用法
リクルート式AIの活用法
 
20151026リファーラル採用について
20151026リファーラル採用について20151026リファーラル採用について
20151026リファーラル採用について
 
外資の採用担当(リクルーター)とは
外資の採用担当(リクルーター)とは外資の採用担当(リクルーター)とは
外資の採用担当(リクルーター)とは
 
Hadoopカンファレンス2013
Hadoopカンファレンス2013Hadoopカンファレンス2013
Hadoopカンファレンス2013
 
Fonética y fonología
Fonética y fonologíaFonética y fonología
Fonética y fonología
 
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
 
JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢JJUG CCC 2014 fall Javaが見るニュータイプの夢
JJUG CCC 2014 fall Javaが見るニュータイプの夢
 
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
 
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
 
変わる!? リクルートグループのデータ解析基盤
変わる!? リクルートグループのデータ解析基盤変わる!? リクルートグループのデータ解析基盤
変わる!? リクルートグループのデータ解析基盤
 
Apache Solr 検索エンジン入門
Apache Solr 検索エンジン入門Apache Solr 検索エンジン入門
Apache Solr 検索エンジン入門
 
RANCHERを使ったDev(Ops)
RANCHERを使ったDev(Ops)RANCHERを使ったDev(Ops)
RANCHERを使ったDev(Ops)
 
Sesión 1 introdución online
Sesión 1 introdución onlineSesión 1 introdución online
Sesión 1 introdución online
 
Возможности сервиса
Возможности сервисаВозможности сервиса
Возможности сервиса
 
พิชิตชัยชาญ วรรณบุตร
พิชิตชัยชาญ  วรรณบุตรพิชิตชัยชาญ  วรรณบุตร
พิชิตชัยชาญ วรรณบุตร
 
Emmelienkneppersefashionv1 3zondernotes-zondertommyh-110624113149-phpapp01 (2)
Emmelienkneppersefashionv1 3zondernotes-zondertommyh-110624113149-phpapp01 (2)Emmelienkneppersefashionv1 3zondernotes-zondertommyh-110624113149-phpapp01 (2)
Emmelienkneppersefashionv1 3zondernotes-zondertommyh-110624113149-phpapp01 (2)
 

Similaire à JJUG CCC リクルートの Java に対する取り組み

クラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へクラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へ
Cybozucommunity
 
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
AINOW
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
Amazon Web Services Japan
 

Similaire à JJUG CCC リクルートの Java に対する取り組み (20)

Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
 
The new LINE Ads Platform
The new LINE Ads PlatformThe new LINE Ads Platform
The new LINE Ads Platform
 
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャシステム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
 
あなたの知っているSAPは古いかもしれません
あなたの知っているSAPは古いかもしれませんあなたの知っているSAPは古いかもしれません
あなたの知っているSAPは古いかもしれません
 
リクルート式Hadoopの使い方
リクルート式Hadoopの使い方リクルート式Hadoopの使い方
リクルート式Hadoopの使い方
 
GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)
 
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Iot algyan jhirono 20190111
Iot algyan jhirono 20190111
 
クラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へクラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へ
 
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
 
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
 
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
 
研究用途でのAWSの利用事例と機械学習について
研究用途でのAWSの利用事例と機械学習について研究用途でのAWSの利用事例と機械学習について
研究用途でのAWSの利用事例と機械学習について
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
 
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
 
AI-first Code Editor 「Cursor」の機能紹介
AI-first Code Editor 「Cursor」の機能紹介AI-first Code Editor 「Cursor」の機能紹介
AI-first Code Editor 「Cursor」の機能紹介
 
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
 
「進化し続けるインフラ」のためのマルチアカウント管理
「進化し続けるインフラ」のためのマルチアカウント管理「進化し続けるインフラ」のためのマルチアカウント管理
「進化し続けるインフラ」のためのマルチアカウント管理
 

Plus de Recruit Technologies

Plus de Recruit Technologies (20)

新卒2年目が鍛えられたコードレビュー道場
新卒2年目が鍛えられたコードレビュー道場新卒2年目が鍛えられたコードレビュー道場
新卒2年目が鍛えられたコードレビュー道場
 
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学びカーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
 
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
 
Tableau活用4年の軌跡
Tableau活用4年の軌跡Tableau活用4年の軌跡
Tableau活用4年の軌跡
 
HadoopをBQにマイグレしようとしてる話
HadoopをBQにマイグレしようとしてる話HadoopをBQにマイグレしようとしてる話
HadoopをBQにマイグレしようとしてる話
 
LT(自由)
LT(自由)LT(自由)
LT(自由)
 
銀行ロビーアシスタント
銀行ロビーアシスタント銀行ロビーアシスタント
銀行ロビーアシスタント
 
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイントユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイント
 
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後
 
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
 
EMRでスポットインスタンスの自動入札ツールを作成する
EMRでスポットインスタンスの自動入札ツールを作成するEMRでスポットインスタンスの自動入札ツールを作成する
EMRでスポットインスタンスの自動入札ツールを作成する
 
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイントリクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
 
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイントユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイント
 
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルリクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
 
「リクルートデータセット」 ~公開までの道のりとこれから~
「リクルートデータセット」 ~公開までの道のりとこれから~「リクルートデータセット」 ~公開までの道のりとこれから~
「リクルートデータセット」 ~公開までの道のりとこれから~
 
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
 
リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介
 
Spring “BigData”
Spring “BigData”Spring “BigData”
Spring “BigData”
 
Struggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit groupStruggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit group
 
Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.
 

JJUG CCC リクルートの Java に対する取り組み

  • 1. リクルートテクノロジーズ 宮川 リクルートにおけるソリューション開拓と実装展開 〜elasticsearchによる検索基盤と新ソリューションの開拓
  • 2. 2 宮川 典久 リクルートテクノロジーズ APソリューショングループ 自己紹介 Twitter @m_nori 出身地 東京 趣味 ロードバイク ゲーム(最近はMH4G) 折り紙
  • 3. 3 (C) Recruit Technologies Co.,Ltd. All rights reserved. アジェンダ 1.はじめに 2.次世代検索基盤について 3.サイト展開へ向けての取り組み 4.まとめ
  • 5. 旅行 IT/トレンド 生活/地域情報 グルメ・美容 ライフスタイル領域 ライフイベント領域 進学 就職 結婚 転職 住宅購入 車購入 出産/育児 「選択・意思決定」を支援する情報サービスの提供 →「まだ、ここにない、出会い。」の実現へ リクルートとは 5
  • 6. リクルートキャリア リクルートジョブズ リクルートスタッフィング リクルート住まいカンパニー リクルートライフスタイル リクルートマーケティングパートナーズ スタッフサービス・ホールディングス リクルートアドミニストレーション リクルートコミュニケーションズ 事業会社 機能会社 インフラ部門 大規模プロジェクト推進部門 UI設計/SEO部門 ビッグデータ機能部門 テクノロジーR&D部門 事業・社内IT推進部門 リクルート ホールディングス リクルートとは、 主要7事業会社+3機能会社 で構成されるグループ企業群 6 リクルートテクノロジーズとは
  • 7. リクルートテクノロジーズの役割 7 (C) Recruit Technologies Co.,Ltd. All rights reserved. 開拓 実装、展開 運用 テクノロジー ライフサイクル ≪テクノロジーへの考え方≫ 「開拓」「実装・展開」を経た「運用」でリクルートへの利益貢献を行う。
  • 8. リクルートテクノロジーズの役割 8 (C) Recruit Technologies Co.,Ltd. All rights reserved. 広範囲のビジネスに装 着し、効果を最大化さ せるための改善を行い、 事業貢献利益を追究 Rグループのビジネスに 短・中期的に実活用の可能 性がある技術をリサーチ 対象技術における事業化 への検証を行い、評価・選 定する 開拓(実活用研究) 実際に事業へ適用 し、より広範囲に 利用するための型 化やスキームを構 築 実装・展開 運用 実施内容 リクルートテクノロジーズ(短・中期的視野) 利益を目的としない中長期的な 視点に立ち、新技術や新手法の 研究/発明を行い、論文発表す ることを目指す 要素基礎技術の研究 社外(中・長期的視野) 技術数の 推移イメージ 年間約200の技術をリサーチし、 約30の技術を評価・選定 年間数個〜10個の 技術を展開 運用フェーズまで 移行された技術が蓄積 無数の新技術を研究/発明
  • 9. •サイト横断でのアーキテクト領域を担当し、 サイトに役立つソリューションを展開する グループ •社内フレームワークや性能チューニング等 をソリューション化し運用している。 •運用だけでなく、技術ベースでサイトに貢 献するため、ソリューションの開拓や実 装・展開も担う ASGとATL 9 (C) Recruit Technologies Co.,Ltd. All rights reserved. •新しい技術の開拓や次のトレンドを察知し、 未来のサービスに活かせるソリューション を生み出すグループ •先端技術をベースとしたソリューションを 作り、サイト内でフィジビリティを行う。 どちらもリクルートテクノロジーズ内でアプリケーションの開発を担当する組織
  • 10. ASGとATL 10 (C) Recruit Technologies Co.,Ltd. All rights reserved. 技術数の 推移イメージ ATL ASG 開拓(実活用研究) 実装・展開 運用 テーマによっては最初か ら協同する
  • 11. リクルートにおけるJavaへの取り組み 11 (C) Recruit Technologies Co.,Ltd. All rights reserved. 多くのサイトでR2FrameworkというJava製の社内フレームワークを使っているた め、リクルートはJava非常にお世話になっています! ✖
  • 13. 次世代検索基盤とは 13 (C) Recruit Technologies Co.,Ltd. All rights reserved. Query Analyze Search System リクルート内のサイトに対して •検索品質 •フィードバック •検索機能追加 •メトリクス など提供する次世代検索基盤
  • 14. アーキテクチャ 14 (C) Recruit Technologies Co.,Ltd. All rights reserved. ✖ 殆どの機能をelasticsearchのプラグインとして実装
  • 15. elasticsearchとは 15 (C) Recruit Technologies Co.,Ltd. All rights reserved. オープンソースの全文検索エンジン 【特徴】 •Apache Luceneがベース •リアルタイム性 •スキーマレス •分散環境 •RESTful API •楽観的バージョン制御 最近はKibanaと組み合わせたログモニタリングによく使われている。 elasticsearch自体については18時からの@johtaniの セッションで詳細に話してくれると思います
  • 16. 体制と役割 16 (C) Recruit Technologies Co.,Ltd. All rights reserved. Qass サイト提供I/F 検索基本機能 機械学習 インフラ Qass利用サイト Hadoop開発 インフラ構築 elasticsearch プラグイン開発 導入支援 タスク 組織 ASG ATL BDG ISG
  • 17. 提供する機能 17 (C) Recruit Technologies Co.,Ltd. All rights reserved. Qass サイト提供I/F 検索基本機能 機械学習 インフラ •Suggest •Results Blending •Query A/B Test •Custom Tokenizer •Query Boosting •Speller 機能 •User Feed Back •Dictionary
  • 18. ユーザーフィードバック 18 (C) Recruit Technologies Co.,Ltd. All rights reserved. ビーコンサーバ Hadoop基盤
  • 19. Hadoopによる機械学習の活用 19 (C) Recruit Technologies Co.,Ltd. All rights reserved. 機械学習辞書 ビーコンデータ ・入力中のキーイベントを収集 「牛角」の読みが「ぎゅうかく」で あることを学習! 牛角 翌日「ぎゅうかく」で検索してみると・・・ ※入力途中で「牛角」を入力候補に表示! 検索 ※「牛角」に漢字変換してから検索 特殊な読み仮名は通常手動で辞書登録しないと仮名検索ができない 例)「ぎゅうかく」と入力 検索ログ
  • 21. Suggest+Beacon サーバ 各サイト Qassのシステム構成 21 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス 集計結果 シノニム 機械学習辞書 マッピング サジェスト データ
  • 22. Suggest+Beacon サーバ 各サイト 通常の検索 22 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス ユーザ操作は全て Beaconサーバに送信
  • 23. Suggest+Beacon サーバ 各サイト サジェスト 23 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス
  • 24. Suggest+Beacon サーバ 各サイト サジェスト 24 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス
  • 25. Suggest+Beacon サーバ 各サイト 機械学習 25 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ 集計結果 シノニム 機械学習辞書 マッピング Map/Reduce サジェスト データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス
  • 26. 更新面の管理 26 (C) Recruit Technologies Co.,Ltd. All rights reserved. プラットフォームとして提供しているため、サイトによってインデックス更新の方 針やタイミングが異なるのを実現できるようにする必要がある。 サイトA 日時で差分更新のみ サイトB 日次の差分更新 + 月次で全件更新→翌日反映 サイトC 週次で全件更新→月曜朝8時に反映
  • 27. 更新面の管理 27 (C) Recruit Technologies Co.,Ltd. All rights reserved. QassPlugin ItemIndex001 SearchIndex(Alias) 検索 更新 UpdateIndex(Alias) インデックスを直接参照するのではなくelasticsearchのAlias機能を活用すること で、検索面と更新面を間接的に参照。 ItemIndex002
  • 28. 更新面の管理 28 (C) Recruit Technologies Co.,Ltd. All rights reserved. QassPlugin ItemIndex001 SearchIndex(Alias) 検索 更新 UpdateIndex(Alias) 検索面を表に出すタイミングでAliasの切り替えを実施。 インデックス毎に連番でバージョン番号を付けて管理を行う。 ItemIndex002 ItemIndex003 一定期間経過後に削除
  • 29. 辞書更新への対応 29 (C) Recruit Technologies Co.,Ltd. All rights reserved. シノニム 機械学習辞書 マッピング Qass Analizer 途中から異なる辞書を使うと不整合が発生するため、辞書を反映させるのはインデ ックスを作り直したタイミングにする必要がある。 焼肉→焼き肉 ◯◯焼き肉 △△焼肉 ◯◯焼き肉 △△焼き肉 シノニム 機械学習辞書 マッピング Qass Analizer 焼き肉→焼肉 ◯◯焼き肉 △△焼き肉 辞書を更 新 □□焼き肉 □□焼肉
  • 30. 辞書更新への対応 30 (C) Recruit Technologies Co.,Ltd. All rights reserved. ItemIndex001 ItemIndex002 ItemIndex003 シノニム 機械学習辞書 マッピング シノニム 機械学習辞書 マッピング シノニム 機械学習辞書 マッピング Dictionary001 Dictionary002 Dictionary003 Qass Analizer QassPlugin SearchIndex(Alias) UpdateIndex(Alias) 検索 更新 Indexバージョンごとに辞書セットを作成。 各インデックスを使う際にどの辞書を使うかをプラグインにて管理。
  • 31. Solrからの移行 31 (C) Recruit Technologies Co.,Ltd. All rights reserved. サイト側アプリケーションサーバ 検索 (http) 検索 (http) Solr 検索式 Solr 検索式 現状多くのサイトで全文検索エンジンとしてSolrを利用している。 そのため、プラグイン内でSolrクエリーを解釈することでサイト側は手を入れずに 導入を行えるように対応。 SolrとのA/Bテストにも活用!
  • 33. Java8への対応 33 (C) Recruit Technologies Co.,Ltd. All rights reserved. 社内フレームワークのJava8化も行い、各サイトのJava8化に向けて推進していま す! ASGでもATLとも連携し、ライブラリのOSS化も積極的に行っていく予定です!