Slide 1

Slide 1 text

© 2023 Wantedly, Inc. 推薦によるプロダクト改善と マイクロサービスが噛み合った話 みんなの経験から学ぶ、マイクロサービスへの挑戦と課題 LT大会 Jun. 7 2023 - Hazumi Ichijo

Slide 2

Slide 2 text

自己紹介 © 2023 Wantedly, Inc. 一條 端澄 @hazumirr/@rerost 略歴: 2018~ : ウォンテッドリー株式会社 ● 2018/04~ 推薦基盤チーム Eng ○ 2019/10 推薦ロジックのマイクロサービス化 ● 2021/09~ 推薦チーム PjM ● 2022/06~ 推薦チーム Leader 趣味: テトリス・旅行

Slide 3

Slide 3 text

自己紹介 © 2023 Wantedly, Inc. 一條 端澄 @hazumirr/@rerost 略歴: 2018~ : ウォンテッドリー株式会社 ● 2018/04~ 推薦基盤チーム Eng ○ 2019/10 推薦ロジックのマイクロサービス化 ● 2021/09~ 推薦チーム PjM ● 2022/06~ 推薦チーム Leader 趣味: テトリス・旅行

Slide 4

Slide 4 text

© 2023 Wantedly, Inc. https://www.wantedly.com/projects

Slide 5

Slide 5 text

目次 1. チーム構成の説明 2. 問題点 3. 直後に得られた効果 4. 3,4年経っても継続して得られた効果 5. なぜ噛み合ったか © 2023 Wantedly, Inc.

Slide 6

Slide 6 text

チーム構成 © 2023 Wantedly, Inc. データサイエンティスト (以降 DS) 推薦基盤 (Backend, MLOps) 推薦チーム

Slide 7

Slide 7 text

チーム構成 DS: 推薦アルゴリズムを構築する 推薦基盤: 安定したデリバリーをする © 2023 Wantedly, Inc. ユーザー 推薦基盤 DS

Slide 8

Slide 8 text

チーム構成 © 2023 Wantedly, Inc. 募集のスコア ユーザの入 力に合わせ て募集推薦 iOS Android Web 募集一覧 API Push通知 発見タブ API etc.. DS 推薦基盤

Slide 9

Slide 9 text

チーム構成 © 2023 Wantedly, Inc. 募集のスコア ユーザの入 力に合わせ て募集推薦 iOS Android Web 募集一覧 API Push通知 発見タブ API etc.. Python Ruby on Rails

Slide 10

Slide 10 text

チーム構成 © 2023 Wantedly, Inc. 募集のスコア ユーザの入 力に合わせ て募集推薦 iOS Android Web 募集一覧 API Push通知 発見タブ API etc.. 依存関係が思ったより複雑

Slide 11

Slide 11 text

問題点 1. 依存関係が複雑 ● 不必要な認知負荷 ● スコアを改善したくても複雑で大変 2. 障害時の影響範囲を狭められない ● RDBやElasticsearchが相乗りしている状態 ● 依存関係が複雑なので、思わぬところも壊れてしまう 3. 並列処理を行えない ● レスポンスタイムによりプロダクト改善に制約がかかる © 2023 Wantedly, Inc.

Slide 12

Slide 12 text

マイクロサービス化 © 2023 Wantedly, Inc. 募集のスコア ユーザの入 力に合わせ て募集推薦 iOS Android Web 募集一覧 API Push通知 発見タブ API etc..

Slide 13

Slide 13 text

マイクロサービス化 © 2023 Wantedly, Inc. 募集のスコア ユーザの入 力に合わせ て募集推薦 iOS Android Web 募集一覧 API Push通知 発見タブ API etc.. ここをマイクロサービス化 & 依存の整理

Slide 14

Slide 14 text

マイクロサービス化 © 2023 Wantedly, Inc. 募集のスコア ユーザの入 力に合わせ て募集推薦 iOS Android Web 募集一覧 API Push通知 発見タブ API etc..

Slide 15

Slide 15 text

マイクロサービス化 © 2023 Wantedly, Inc. 募集のスコア iOS Android Web DS 他のチーム 推薦基盤 ユーザの入 力に合わせ て募集推薦 募集一覧 API Push通知 発見タブ API etc..

Slide 16

Slide 16 text

マイクロサービス化 © 2023 Wantedly, Inc. 募集のスコア iOS Android Web Python Ruby on Rails Go ユーザの入 力に合わせ て募集推薦 募集一覧 API Push通知 発見タブ API etc..

Slide 17

Slide 17 text

マイクロサービス化の結果 1. デリバリーのリードタイムが短縮 ● 1週間 -> 2,3日 2. 障害時の影響範囲が局所化 ● 全体に波及する障害はごく僅かに 3. レスポンスタイムが向上 ● 2000ms -> 200ms © 2023 Wantedly, Inc.

Slide 18

Slide 18 text

マイクロサービス化して3,4年経過後 1. DSだけでリリース可能に ● 2,3日 -> 30分 ● https://www.wantedly.com/companies/wantedly/post_articl es/309759 2. スケーラビリティが向上 ● データ量が10倍に ● https://www.wantedly.com/companies/wantedly/post_articl es/300907 => これらの変更もあり、施策数が増えプロダクトのコア指標が継続的に向上 © 2023 Wantedly, Inc.

Slide 19

Slide 19 text

なぜ噛み合ったか 1. チームが出すユーザーへの価値や能力と切り方がマッチ ● 認知負荷を下げる ● チームの境界と一致 => 単独で改善ができる 2. 責務が明確 ● ユーザーとユーザーの入力に応じ適切な募集を出す 3. ユーザー価値が高い箇所 © 2023 Wantedly, Inc.

Slide 20

Slide 20 text

© 2023 Wantedly, Inc.