Upgrade to Pro — share decks privately, control downloads, hide ads and more …

推薦によるプロダクト改善とマイクロサービスが噛み合った話

 推薦によるプロダクト改善とマイクロサービスが噛み合った話

Hazumi Ichijo

June 07, 2023
Tweet

More Decks by Hazumi Ichijo

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. マイクロサービス化して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.

    View Slide

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

    View Slide

  20. © 2023 Wantedly, Inc.

    View Slide