case study of devops for hadoop in recruit

48
Recruit Technologies Co.,Ltd. Kensuke Soeda Case study of DevOps for Hadoop in Recruit.

Upload: recruit-technologies

Post on 08-Jan-2017

127 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Case study of DevOps for Hadoop in Recruit

Recruit Technologies Co.,Ltd.Kensuke Soeda

Case study of DevOps for Hadoop in Recruit.

Page 2: Case study of DevOps for Hadoop in Recruit

今⽇話すこと

2(C) Recruit Technologies Co.,Ltd. All rights reserved.

DevOps for Hadoopの事例共有1. ツールの紹介2. 実際の成果3. DevOps for Hadoopの成功要因

Page 3: Case study of DevOps for Hadoop in Recruit

⾃⼰紹介

3(C) Recruit Technologies Co.,Ltd. All rights reserved.

2012年:リクルートテクノロジーズにジョイン

〜2014年: elasticsearch次世代検索システムインフラ設計、構築、運⽤インフラの⾃動化に注⼒し、 Infra as Codeを普及。

〜2015年:ビッグデータ新サービス企画、開発LeanStartupの考え⽅を元に、顧客開拓モデルの開発に従事

〜2016年:次世代Hadoop基盤の検証、構築、運⽤SREチームを⽴ち上げ、データ解析基盤の信頼性の向上に取り組み中

Kensuke Soeda(添⽥ 健輔)Big Data Infrastructure GroupBig Data DepartmentIT Solution Division

Recruit Technologies Co.,Ltd.

Page 4: Case study of DevOps for Hadoop in Recruit

アジェンダ

1. 会社紹介2. Hadoop基盤とそれを⽀える体制紹介3. DevOps for Hadoop事例紹介

1. ツールの紹介2. 実際の成果3. DevOps for Hadoopの成功要因

4. 今後の展望

4(C) Recruit Technologies Co.,Ltd. All rights reserved.

Page 5: Case study of DevOps for Hadoop in Recruit

リクルートグループについて

Page 6: Case study of DevOps for Hadoop in Recruit

ビジネスモデル

Page 7: Case study of DevOps for Hadoop in Recruit

リクルートの事業領域

Life Event Area

Education

Job Hunt

Marriage

Job Change

Home Purchase

Car Purchase

Child Burth

Travel

IT / Trend

Life Style

Health & Beauty

Life Style Area

選択・意思決定 を⽀援する情報サービスの提供「まだ、ここにない、出会い。」を実現する

Page 8: Case study of DevOps for Hadoop in Recruit

リクルートグループの⽇本国内の体制

UXD / SEO Internet Marketing

Bigdata

Infrastructure

In-house Infrastructure

Security

System Development

Technology R&D Project Management

リクルートとは、事業会社と機能会社

で構成されるグループ企業群

私が所属する会社はリクルートテクノロジーズ

Page 9: Case study of DevOps for Hadoop in Recruit

リクルートテクノロジーズの事業内容

http://recruit-tech.co.jp/company/description.html

Page 10: Case study of DevOps for Hadoop in Recruit

ソリューション開拓〜運⽤までの流れ

広範囲のビジネスに装着し、効果を最⼤化させるための改善を⾏い、事業貢献利益を追究

ØRグループのビジネスに短・中期的に実活⽤の可能性がある技術をリサーチ

Ø対象技術における事業化への検証を⾏い、評価・選定する

開拓(実活⽤研究)

実際に事業へ適⽤し、より広範囲に利⽤するための型化やスキームを構築

実装・展開 運⽤

実施内容

リクルートテクノロジーズ(短・中期的視野)

利益を⽬的としない中⻑期的な視点に⽴ち、新技術や新⼿法の研究/発明を⾏い、論⽂発表することを⽬指す

要素基礎技術の研究

社外(中・⻑期的視野)

技術数の推移イメージ

年間約200の技術をリサーチし、約30の技術を評価・選定

年間数個〜10個の技術を展開

運⽤フェーズまで移⾏された技術が蓄積

無数の新技術を研究/発明

Page 11: Case study of DevOps for Hadoop in Recruit

Hadoop活⽤事例

11(C) Recruit Technologies Co.,Ltd. All rights reserved.

最近のHadoop活⽤事例

Page 12: Case study of DevOps for Hadoop in Recruit

リアルタイムユーザ属性推定

12(C) Recruit Technologies Co.,Ltd. All rights reserved.

リクルート データセンター

リアルタイムにログ送付

リアルタイム⼤量データ受付

リアルタイムセグメント推定

推定されたセグメントに合わせたコンテンツ表⽰

初回訪問者

コールドスタート問題に対応し、初回訪問時(=サービスにも最も期待しているタイミング)に最適な情報を提供

⾃分に合った情報が⾒つからない

⾃分が欲しい情報が出てくる!

CVR向上

Page 13: Case study of DevOps for Hadoop in Recruit

リアルタイムユーザ属性推定の裏側

13(C) Recruit Technologies Co.,Ltd. All rights reserved.

Page 14: Case study of DevOps for Hadoop in Recruit

アジェンダ

1. 会社紹介2. Hadoop基盤とそれを⽀える体制紹介3. DevOps for Hadoop事例紹介

1. ツールの紹介2. 実際の成果3. DevOps for Hadoopの成功要因

4. 今後の展望

14(C) Recruit Technologies Co.,Ltd. All rights reserved.

Page 15: Case study of DevOps for Hadoop in Recruit

リクルートにおけるHadoopの歴史

15(C) Recruit Technologies Co.,Ltd. All rights reserved.

2010 2011 2012 2013 2014 2015 2016

⾼速集計基盤の研究

Hadoopの本格展開

Hadoop活⽤拡⼤

全社BI・全社データ集約環境の推進

Hadoopを中⼼としたDataLake構想の模索

を開始

ケースドリブンでのインフラ体制整備

次世代ビッグデータ基盤の企画・検討

Page 16: Case study of DevOps for Hadoop in Recruit

課題感 データ解析従事者の増加

16(C) Recruit Technologies Co.,Ltd. All rights reserved.

・2012年Bigdataグループ創設期

66名

・2013年全社データ基盤推進期

119名

・2015年DataLake構想模索期

212名

2016年10⽉現在

231名

社内のデータ活⽤ニーズの⾼まりに応じて、データ解析従事者の数が年々増加。単純に⼈員増加のほか、⼈員⼊れ替えや業務の分割化も進み、

Hadoopならびにエコシステムの知⾒、チューニングナレッジなどが希薄化していく傾向が⾒られていた。

Page 17: Case study of DevOps for Hadoop in Recruit

DataLake構想の模索2015年よりHadoopの強み⽣かしたDataLake構想の実現を模索してきた。

l ローデータから⾃在に定義を作り、Schema on readで施策を推進できる⾃由さとスピードの速さ

l 「すべてのデータはここにある」という絶対的安⼼感とすぐ隣にあるデータとの連結容易性

l ここにあるデータを⼀元でマネジメントできればそこから発⽣するデータに⼀様な正確さが出る。

※ただし、ここでいうローデータとはリクルートでいうRDBMSに格納されているような綺麗な整形済みデータを表すのではなく、アプリケーションの⽣ログやテキスト⽂そのもの、画像、動画、⾳声、マシンログなどありとあらゆるデータを定義するものである。

Page 18: Case study of DevOps for Hadoop in Recruit

事業データ

データソース データ格納 プレゼンテーション 利⽤者

Hadoopエコシステム

オンプレミス

レポート/モニタリング

Hadoop基盤構成概要

18(C) Recruit Technologies Co.,Ltd. All rights reserved.

クラウド外部データIPアドレスデータ

ツールバーデータ

⾏動データ⾏動履歴情報

Push配信ログ

経営データ経営データ

エンドユーザ(エグゼ/営業/マネージャ)

ビジネスインサイトマーケター(プロデューサ/プランナー)

⾼度分析やモデル作成データサイエンティスト(分析者)

機械学習やモデル実装データサイエンティスト(エンジニア)

サービスからデータを収集

サイトのアクセスログ収集

アプリのログ収集

クエリ発⾏/⽉

Page 19: Case study of DevOps for Hadoop in Recruit

ビッグデータ部における体制と役割(これまで)

人材領域

インフラ部門

販促・バイト領域

IDポイント領域

役割が明確に分かれ、部署ごとの責任範囲が明確化されている⼀⽅で、多様化する領域ごとの個別ニーズに、インフラ部⾨が対応しきれない。インフラがボトルネックとなり施策リリースにリードタイムが掛かる。などの課題があった。

Dev Dev Dev

Ops

Page 20: Case study of DevOps for Hadoop in Recruit

ビッグデータ部における体制と役割(これから)

人材領域

インフラ部門

販促・バイト領域

IDポイント領域

インフラ担当がケースドリブンに各領域の施策推進に関与し、サービスに対して責任を持つべく、今年の04⽉より、ケースドリブンインフラ体制に移⾏。

※インフラ部⾨内での情報共有は常時実施して、ベストプラクティスの共有などを積極的に図る。

Dev Dev Dev

OpsOps Ops

Page 21: Case study of DevOps for Hadoop in Recruit

ビッグデータ部における体制と役割(これから)

ProductData

Ideas

リーンスタートアップの考え⽅を元に、事業領域ごとの仮説検証を⾏うことで、各領域におけるニーズに合わせたきめ細やかな対応が可能に!

Learn Build

Measure

Page 22: Case study of DevOps for Hadoop in Recruit

フィードバック具体例

組織間の距離が近くなったことによる効果の⼀例。

• ⼀部のMapreduceのジョブをOpsが実装し、Devがレビューすることで、品質が上がった。

• SQL構⽂解析器をOpsが調査し、Devが実装、運⽤したことで、トラブルシュートが容易になった。

• リリース前のレビューで、SQLのクエリチューニングをOpsが⾏い、ボトルネックを瞬時に解決。

Page 23: Case study of DevOps for Hadoop in Recruit

アジェンダ

1. 会社紹介2. Hadoop基盤とそれを⽀える体制紹介3. DevOps for Hadoop事例紹介

1. ツールの紹介2. 実際の成果3. DevOps for Hadoopの成功要因

4. 今後の展望

23(C) Recruit Technologies Co.,Ltd. All rights reserved.

Page 24: Case study of DevOps for Hadoop in Recruit

DevOpsとは

24(C) Recruit Technologies Co.,Ltd. All rights reserved.

https://ja.wikipedia.org/wiki/DevOps

Page 25: Case study of DevOps for Hadoop in Recruit

25(C) Recruit Technologies Co.,Ltd. All rights reserved.

ツールの紹介

Page 26: Case study of DevOps for Hadoop in Recruit

DevOpsツール全体概要

(C) Recruit Technologies Co.,Ltd. All rights reserved.バージョン管理

チケット管理 メトリクス可視化

開発環境

プログラムはもちろん、コード化された構築・運⽤⼿順や、設定ファイルをバージョン管理

アプリのビルド、アプリ・ミドルウェアのデプロイ、インフラを含めたテストを⾃動で継続的に実⾏

リアルタイムにリソース、ログ、KPIを可視化Biz

必要に応じて相互に開発協⼒。

Ops

Dev

発⽣する問題や、タスク、情報を共有・管理し、コミュニケーションを円滑に!

26本番環境構成管理

CI / CDサンドボックス環境

各環境ごとにパラメータを動的に変えて構成管理

Page 27: Case study of DevOps for Hadoop in Recruit

n Jenkinsによるパイプライン可視化/コード化

DevOps事例紹介(1)

27(C) Recruit Technologies Co.,Ltd. All rights reserved.

Jenkins2.0より採⽤されたStage Viewにより、パイプライン全体の進捗が簡単に可視化されるようになった。

Stage View Pipeline as Code

Pipeline as Codeにより、GroovyのDSLで、パイプラインをコードとしてモデリング

Page 28: Case study of DevOps for Hadoop in Recruit

DevOps事例紹介(2)

28(C) Recruit Technologies Co.,Ltd. All rights reserved.

n ベンダー製ジョブ管理ツールの可視化

ジョブ可視化ツール データフロー可視化ツール

ジョブおよびデータフローがリアルタイムに可視化されたことで、障害検知および対応が⾼速化に寄与

内製開発ツール

Page 29: Case study of DevOps for Hadoop in Recruit

DevOps事例紹介(2)

29(C) Recruit Technologies Co.,Ltd. All rights reserved.

n ベンダー製ジョブ管理ツールの可視化の裏側

アサインJSON

業務情報JSON

チームメンバJSON

定義読み込み

データフロー可視化ツール

バッチサーバ

ジョブ管理ツール インシデント登録

ジョブエージェントジョブエージェントジョブエージェントジョブエージェント障害情報取り込み

RESTで随時登録

Bot

Opsジョブ可視化ツール

ジョブ実⾏情報取り込み

Page 30: Case study of DevOps for Hadoop in Recruit

DevOps事例紹介(3)

30(C) Recruit Technologies Co.,Ltd. All rights reserved.

n Hadoopに特化した内製ログ集計可視化ツール

ログ集計可視化ツール

多数のノードに対してのログの⼀元集約、集計を⾏い、発⽣事象の根本原因解析で活⽤。

Ambari Log Search

順次移⾏予定

内製開発ツール

Page 31: Case study of DevOps for Hadoop in Recruit

31(C) Recruit Technologies Co.,Ltd. All rights reserved.

実際の成果

Page 32: Case study of DevOps for Hadoop in Recruit

リクルートID

Page 33: Case study of DevOps for Hadoop in Recruit

アイテムレコメンド

Page 34: Case study of DevOps for Hadoop in Recruit

(C) Recruit Technologies Co.,Ltd. All rights reserved.

APIs

リクルートIDにおけるユースケース

34

Hadoop

HBase

行動ログ

モニタリングAPI

行動ログ(蓄積)

DWH(Exadata)Hadoopクラスタ

事業データ

事業データ

レコメンドデータ作成バッチ

ログ蓄積バッチ

事業データ

ディスプレイAPI

レコメンドAPI

レコメンドデータ

ログ蓄積 API

アイテムAPI(アイテム情報取得)

<script src... …</script>

最適なレコメンドロジックを採⽤するために、多いときには⼀⽇に10回程度リリースすることも

Page 35: Case study of DevOps for Hadoop in Recruit

n 現状の業務分析、改善スコープの検討現状業務の分析を⾏い、ボトルネックがドコにあり、何をどのように改善することで、どれ位の効果が得られるかを事前に徹底調査し、改善スコープを決定。リードタイム/プロセス数の半減に成功した。

35(C) Recruit Technolog1zies Co.,Ltd. All rights reserved.

1⽇10回リリースできるまでに⾏ったこと

⼀つの業務において、ボトルネックをカイゼンした結果、リードタイム

/プロセス数の半減に成功。

50%down

Page 36: Case study of DevOps for Hadoop in Recruit

⽬指す世界観

36

開発要求定義

DevOpsにより実現したい施策の流れDevOpsの実現により、施策アイデアをより確実かつ迅速にユーザーに対して継続的に届けること。

Dev

(C) Recruit Technologies Co.,Ltd. All rights reserved.

実装 Ops

運⽤要求定義

運⽤

Page 37: Case study of DevOps for Hadoop in Recruit

n カイゼントレーニング組織メンバー全員参加での集合研修n ⽬的

⾃分たちの提供しているサービスの価値をあげるために、1. 改善のやり⽅を学ぶ2. コミュニケーションの仕⽅を学ぶ3. 実際にいまのプロセスを⾒える化し、全員で現状の共通

認識や課題を明らかにする

37(C) Recruit Technologies Co.,Ltd. All rights reserved.

バリューストリームマップを作成し、業務におけるボトルネックを全員で切り分けている様⼦

⽂化⾯での取り組み1

Page 38: Case study of DevOps for Hadoop in Recruit

n バリューストリーミングマップ⾃分たちの業務におけるプロセスとフローを可視化し、ドコにボトルネックがあるかを調査し、カイゼンの対象あぶり出す。

38(C) Recruit Technolog1zies Co.,Ltd. All rights reserved.

⽂化⾯での取り組み2

Page 39: Case study of DevOps for Hadoop in Recruit

n かんばん開発者に負荷なく、何を、いつ、どれ位のコストをかけて開発するかを発信、可視化する

39(C) Recruit Technologies Co.,Ltd. All rights reserved.

Todo Doing Waiting Done

割込タスク

計画タスク

改善タスク

⽂化⾯での取り組み3

Page 40: Case study of DevOps for Hadoop in Recruit

n Mob Programmingチーム全体が同じことを、同じ時に、同じ場所で、同じコンピュータ上で作業するソフトウェア開発アプローチn ⽬的

全員が同⼀作業を⾏うことによるコンフリクトの解消と、⿊魔術的な個⼈ナレッジの共有を図る。

40(C) Recruit Technologies Co.,Ltd. All rights reserved.

毎週⾦曜に2時間、全員で同⼀作業を⾏う時間を設定し、ワイガヤをあえて演出

⽂化⾯での取り組み4

Page 41: Case study of DevOps for Hadoop in Recruit

41(C) Recruit Technologies Co.,Ltd. All rights reserved.

DevOps for Hadoopの成功要因

Page 42: Case study of DevOps for Hadoop in Recruit

42(C) Recruit Technologies Co.,Ltd. All rights reserved.

ツールの整備 ⽂化⾯での取り組み1. バージョン管理

Git等を活⽤したコードの管理によるDevとOpsの情報共有

2. 継続的インテグレーションコードのビルド、テストの⼀気通貫での連携および実施

3. 継続的デプロイメント成果物の本番環境へのリリースの⾃動化

4. 継続的デリバリー1. 2. 3. を継続的に繰り返し、価値を創出していく全体の流れを確⽴

1. 組織の壁を超えて協⼒ができる⾵⼟作り

2. ⾃分の仕事、他⼈の仕事、と割り切らない

3. 情報、ナレッジを共有する

4. 現状に満⾜せず、常に改善しつづける

DevOps for Hadoopの成功要因

Page 43: Case study of DevOps for Hadoop in Recruit

アジェンダ

1. 会社紹介2. Hadoop基盤とそれを⽀える体制紹介3. DevOps for Hadoop事例紹介

1. ツールの紹介2. 実際の成果3. DevOps for Hadoopの成功要因

4. 今後の展望

43(C) Recruit Technologies Co.,Ltd. All rights reserved.

Page 44: Case study of DevOps for Hadoop in Recruit

「⽇本におけるテクノロジのハイプ・サイクル:2016年」

44(C) Recruit Technologies Co.,Ltd. All rights reserved.https://www.gartner.co.jp/press/html/pr20161005-01.html

Page 45: Case study of DevOps for Hadoop in Recruit

Homeostasis(恒常性)を持ったOpsの実現へ

45(C) Recruit Technologies Co.,Ltd. All rights reserved.

Knowlegebase

Prediction

CorrelationAnalysis

Auto Recovery

JIRA等の外部コミュニティ情報含むこれまでの運⽤知⾒をナレッジベース化

→ サジェスト活⽤

クラスタ・ノードのリソースや、データ容量の変動予測

複数コンポーネントにまたがるログ、リソースを元にした相関分析

障害を⾃動的に検知し、⾃動的に復旧する

恒常性を持ったAIOpsの実現へ

Page 46: Case study of DevOps for Hadoop in Recruit

Homeostasis(恒常性)を持ったOpsの実現へ

46(C) Recruit Technologies Co.,Ltd. All rights reserved.

絶賛開発中!

Page 47: Case study of DevOps for Hadoop in Recruit

47(C) Recruit Technologies Co.,Ltd. All rights reserved.

最後に

積極採⽤中!

×

リクルートテクノロジーズ

Page 48: Case study of DevOps for Hadoop in Recruit

48(C) Recruit Technologies Co.,Ltd. All rights reserved.

ご清聴ありがとうございました。

リクルートテクノロジーズ