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

データ戦略を加速させる プラットフォーム エンジニアリングと進化的アーキテクチャ

データ戦略を加速させる プラットフォーム エンジニアリングと進化的アーキテクチャ

2024/3/1に、2024 Google Cloud Modern App Summitで発表した菅沼の資料になります。

Avatar for Recruit

Recruit PRO

April 27, 2026

More Decks by Recruit

Other Decks in Technology

Transcript

  1. Google Cloud 2 2 2 自己紹介   菅沼孝二 社会人歴 8

    年目 所属     株式会社リクルート データ推進室 2 趣味 子育て / 資産形成 好きなサービス Kubernetes Engine, Cloud Logging, IAM 肩書     プロダクト テックリード 2016 年 - 新卒 メディア・ゲーム・広告関連事業会社 広告データ収集基盤開発・広告効果モデリング 2017 年 - 中途 株式会社リクルートライフスタイル データ分析・ML モデリング・実装 / データ プラットフォーム開発・ SRE 2021 年 - (統合) 株式会社リクルート データ プラットフォーム開発・ SRE
  2. Google Cloud 01 Contents 3 02 03 04 What’s Recruit,

    What’s Knile Platform How to solve the problems we have faced Key points of architecturing Conclusion
  3. Google Cloud Key Takeaways 4 重要な課題を解決できる最小の機能に注力する 開発者生産性に貢献する最適な方法を問い続ける Platform Engineering をやるなら持続的な価値提供に責任を持つ

    DevOps や SRE を基礎とする文化を構築する 全体最適化と個別最適化を使い分ける Platform Engineering は「銀の弾丸」ではない ❶ ❷
  4. Google Cloud リクルートの会社概要 , ビジネスモデル, データ活用事例 横断データ プロダクトと Knile Platform

    の位置付け Knile Platform の特徴とアーキテクチャ 01 What’s Recruit What’s Knile Platform 5
  5. Google Cloud 株式会社リクルートについて 6  マッチング & ソリューション SBU HR テクノロジー

    SBU 人材派遣 SBU 国内派遣 海外派遣 選択・意思決定を支援する情報サービスを提供し、 「まだ、ここにない、出会い。より速く、シンプルに、もっと近くに。」 を実現する
  6. Google Cloud 7 複数領域でデータ活用施策が実施されており、下記はその一例。 リクルート カスタマー向けの施策、同クライアント向けの施策、同社員向けの施策など、施策種別も多種多様。 機械学習モデル予測値を用いて、新ジャンルの予約数と 配信に伴う利用金額を予測。ギフト券配信の予算の制約 がある中、新ジャンルの利用者数を全てのジャンルにお いて増やす、最適な配信を実現。

    『Airレジ オーダー』から定常取得される業務データを活 用することで提供遅れ時間の最小化を実現し、調理遅れ の件数を削減。 プロダクト利用者の 57% が「旅行代理店のような接客力 を感じられた」と回答し、チャット接客の有用性を実証。 [引用] データ推進室 事例紹介 | 株式会社リクルート 中途採用特設ページ リクルートにおけるデータ活用の事例
  7. Google Cloud 8 横断データ プロダクトと各事業におけるデータ活用 複数領域で利用可能なプラットフォームを開発しており、事業領域やプロジェクトを越えて活用可能なシステムを「横断デー タ プロダクト」と認定した上で、各領域への展開を図っています。 事業 A

    データ活用施策 1 横断データ プロダクト 2 横断データ プロダクト 1 … … 事業 A プロダクト 事業 B プロダクト … … 横断データ プロダクト 3 ユーザー クライアント … 事業 A データ活用施策 2 事業 B データ活用施策 1 Data App1 Data App1 Data App2 Data App1 Data App1
  8. Google Cloud 9 横断データ プロダクト群と Knile Platform の位置付け ETL /

    Delivery エンドユーザー データ収集 データ処理 / 配信 事業 DB Knile API Platform Knile Job Platform Knile Streaming Platform Knile Notebook Platform 事業サーバー データ管理 … エンドユーザー 事業 DB 事業サーバー BI ツール Ingestion Real-time Data Ingestion Platform Batch Data Ingestion Platform Data Management Platform
  9. Google Cloud 10 Data Engineering (ETL / Delivery) に特化した Platform

    エンドユーザー 事業 DB 事業サーバー BI ツール Knile API Platform … Key-Value API Functions (FaaS) Prediction API Router Auth Knile Job Platform Container Operator Task Python Operator Task Query Operator Task Workflow Manager Knile Streaming Platform Knile Notebook Platform Filtering, Aggregation Knile API Integration Custom Image Custom CPU, GPU code commit deploy
  10. Google Cloud Knile Platform 上の 人材 / プロセス / 技術

    に関連するメトリクス Knile Platform Overview 11 300+ knile developers / users 250+ knile projects 4,500+ containers on Knile API Platform all 2,000+ workflows on Knile Job Platform all 10- knile maintainers 6,000+ knile developers’s releases per year (contains automatic releases) 400+ knile maintainer’s releases per year ※ 2024/03 時点
  11. Google Cloud 12 Platform Engineering Overview Knile Platform Self Service

    Features Knile API Platform Self Service Features Monitoring Billing Prediction API Functions (FaaS) Key-Value API Routing, A/B Testing Project Resources Alerting CI/CD Auth Load Testing Knile Job Platform Self Service Features Workflow Management Scheduling Custom CPU, GPU Knile Streaming Platform Self Service Features Knile Notebook Platform Self Service Features Run Query, Python, Container Task Switch Backend Workflow Engine Event Filtering, Simple Aggregation Knile API Integration Custom Image Custom CPU, GPU Knile API Integration
  12. Google Cloud 13 Knile Project Project Resource Billing データ活用施策をそれぞれ分 割管理するための論理的なリ

    ソース Knile Project 毎に払い出さ れるデータ活用に必要なリ ソース群(BQ Dataset, GCS Bucket, IAM 等) Knile Project 毎にプリセット された利用量に基づく課金機 能 [Pick up!] Knile Platform Features (共通機能) CI/CD Knile Project 毎にプリセット されたアプリケーション デプ ロイ パイプライン Monitoring / Alert Knile Project 毎にプリセット されたアプリケーション監視機 能
  13. Google Cloud 14 Knile Platform Architecture Details Kubernetes cluster Project

    A Project B Prj. B namespace Prj. A namespace ProjectResource CustomResource Project CustomResource Prj. A Repo / Team CI/CD pipeline / … Prj. B Repo / Team CI/CD pipeline / … Prj. A Dashboard Prj. B Dashboard Project CI/CD ResourceQuota CustomResource … Projects Repo knile-operator namespace knile-operator Deployment Prj. A Bucket, Dataset, Secret, SA, Policy Prj. B Bucket, Dataset, Secret, SA, Policy Knile Team API ServiceAccount CustomResource Job ServiceAccount CustomResource StorageBucket cnrm Resource … … IAMPolicy cnrm Resource Project xxx 申請 Forms Prj. A Prj. B Reconcile ※簡略化のために、部分的に省略 / 改変して表示しています。
  14. Google Cloud 15 Knile Key-Value API Knile Functions Knile Prediction

    API Knile Router • API Endpoint や I / F を 固定化し後段の API 群に ルーティング • A / B Testing • Canary Release [Pick up!] Knile API Platform Features Knile Auth • 認証 • JWT • API Key • IP 制限 • Key-Value Store のデー タを API 経由で取得する 機能 • 事前推論データやマスター データ等 • Function as a Service • Go or Python • API Integration • オンライン推論機能 • モデル学習による定期更 新 Load Testing • 負荷テスト機能 • 負荷に応じた水平スケーリ ング
  15. Google Cloud 16 Knile API Platform Architecture Details Kubernetes cluster

    istio-system namespace Cloud Load Balancing istio-ingressgateway Deployment Project A Project B Istio Network Endpoint Group (NEG) knile-system namespace api-gateway Deployment Prj. A namespace Prj. B namespace KeyValue CustomResource Functions CustomResource KeyValue 2 CustomResource Prediction CustomResource Route CustomResource Route CustomResource Logging Sink BigQuery Cloud Logging Console Prj. A Repo Prj. B Repo Prj. A Dashboard ※設計・実装についての詳細は以下をご参照ください。 リクルートのデータ活用を加速させるセルフサービス型 A/B テスト基盤の設計と実装 API CI/CD Prj. B Dashboard KeyValue 1 CustomResource knile-operator namespace knile-operator Deployment Reconcile
  16. Google Cloud 17 Container Operator Python Operator Query Operator Workflow

    Manager [Pick up!] Knile Job Platform Features • DAG 形式のワークフロー の実行制御 • 定期スケジューリング • Pod 起動 • Dockerfile と任意のスクリ プトの実装を開発 I/F を持 つタスク定義 • コンテナとして実行 • 任意の Python スクリプト の実装を開発 I/F を持つタ スク定義 • コンテナとして実行 • 任意の BQ クエリの実装を 開発 I/F を持つタスク定義 • コンテナとして実行 API Integration • ワークフロー上のデータ処 理結果を Knile API Platform にすぐに反映 HPC Resource • 多様な CPU / Memory の 要求への対応 • GPU の要求への対応
  17. Google Cloud 18 Knile Job Platform Architecture Details Kubernetes Cluster

    Airflow DB Cloud SQL Airflow DAGs/Logs Cloud Storage Cloud Load Balancing Cloud Armor Identity-Aware Proxy Job CI/CD Cloud Logging Cloud Build Container Registry Project A Developer Prj. B namespace ※設計・実装についての詳細は以下をご参照ください。 クラウドネイティブ × 持続可能 セルフサービス型データ分析ジョブプラットフォーム 設 計プラクティス | Cloud Native Days Tokyo 2021 knile-job-system namespace Airflow Web Server Airflow Scheduler Airflow Worker (by Task) Kubernetes Engine region cluster Cloud SQL Proxy Prj. A Repo Prj. A namespace Prj. A Dashboard Task Container (by Task) … Task Container (by Task)
  18. Google Cloud 20 スケールしない プラットフォーム データ活用の取り組みにおける 「スケールしない 」 業務プロセスのスキーム ① コミュニケーション

    コスト / 専門性の違いに  よ る生産性低下 ② エンジニアのリソース上限が   データ施策の推進のボトルネックに ③ プロダクトの機能開発・自動化・信頼性向上    に開発リソースを十分に割けない ① ② ③ データ サイエンティスト ML / データ エンジニア (プラットフォーム) エンジニア
  19. Google Cloud 21 開発・デプロイがセルフサービス化されたプ ラットフォーム 「価値創出がスケールする 」 業務プロセスのスキーム ① 開発・デプロイ・運用のセルフサービス化   により変更反映のリードタイムを削減

    ② エンジニアによるデータ施策個別の   開発コストをゼロに ③ エンジニアはプラットフォームの   機能開発・自動化・信頼性向上に集中 データ サイエンティスト ML / データ エンジニア プラットフォーム エンジニア ① ② ③
  20. Google Cloud 22 スケールしない プラットフォーム データ サイエンティスト ML / データ

    エンジニア (プラットフォーム) エンジニア 開発・デプロイがセルフサービス化されたプ ラットフォーム データ サイエンティスト ML / データ エンジニア プラットフォーム エンジニア 関心の分離 & セルフサービス化 データ活用の業務プロセスとプロダクト デザインを最適化 データ サイエンティスト・ML / データエンジニアの関心 プラットフォーム エンジニアの関心
  21. Google Cloud 24 開発体験が悪い セルフサービス型プラットフォーム 「開発体験が悪い 」 セルフサービス型プラットフォーム ① 開発・運用時のデバッガビリティが悪く   問い合わせが殺到

    ② プラットフォームの機能開発・自動化・信頼  性 向上に開発リソースを十分に割けない データ サイエンティスト ML / データ エンジニア プラットフォーム エンジニア ① ②
  22. Google Cloud 25 開発体験が良い セルフサービス型プラットフォーム 「開発体験が良い 」 セルフサービス型プラットフォーム データ サイエンティスト

    ML / データ エンジニア プラットフォーム エンジニア ② ① 実行ログ検索性の向上・データ施策ごとの   リソース モニタリング ダッシュボードの提供   ・docs 拡充・docs 自動生成・ etc. ② セルフサービス開発のデバッガビリティの   改善により問い合わせ対応工数を削減 ① ③ ③ エンジニアはプラットフォームの   機能開発・自動化・信頼性向上に集中
  23. Google Cloud 26 開発体験が悪い セルフサービス型プラットフォーム データ サイエンティスト ML / データ

    エンジニア プラットフォーム エンジニア 開発体験が良い セルフサービス型プラットフォーム データ サイエンティスト ML / データ エンジニア プラットフォーム エンジニア 開発体験( Developer Experience)の最大化 利用方法がわからない時・問題の発生時も自立的に理解を深められる仕組みを提供
  24. Google Cloud 28 「変更が困難な 」 プラットフォーム ① データ アプリケーションと、インフラ / ミドル  ウェ

    アが密結合な設計になっており、インフラ   / ミドルウェ アの変更難易度が増加 ② 部分的な SPOF が存在し、無停止アップグ     レードや自動水平スケーリングが機能しない    ケースが発生 データ サイエンティスト ML / データ エンジニア インフラ / ミドルウェアの 変更容易性が低いプラットフォーム Data App 1 Data App N Middleware / Backend Infrastructure ……… ② プラットフォーム エンジニア ① ③ ③ 変更する度に、変更のための大きなオーバー    ヘッドコスト(移行コスト / 調整コスト等)  が発生 密結合 & 部分的に SPOF
  25. Google Cloud 29 「変更が容易な 」 プラットフォーム ① データ アプリケーション・インフラ・ミドル   ウェア のそれぞれで「依存性逆転の原則」を   実現するコード

    / アーキテクチャの設計を導入※ ② インフラおよびミドルウェア全体に   クラウドネイティブ設計ポリシーを導入※ データ サイエンティスト ML / データ エンジニア インフラ / ミドルウェアの 変更容易性が高いプラットフォーム Data App 1 Data App N Middleware / Backend Infrastructure ……… ③ プラットフォーム エンジニア ③ 移行作業の自動化や安定性向上などにより、   利用者向けの調整コストも削減 ② ※設計・実装についての詳細は以下をご参照ください。 クラウドネイティブ × 持続可能 セルフサービス型データ分析ジョブプラットフォーム 設 計プラクティス | Cloud Native Days Tokyo 2021 ① 疎結合 & クラウドネイティブ化
  26. Google Cloud 30 データ サイエンティスト ML / データ エンジニア インフラ

    / ミドルウェアの 変更容易性が低いプラットフォーム Data App 1 Data App N Middleware / Backend Infrastructure ……… プラットフォーム エンジニア データ サイエンティスト ML / データ エンジニア インフラ / ミドルウェアの 変更容易性が高いプラットフォーム Data App 1 Data App N Middleware / Backend Infrastructure ……… プラットフォーム エンジニア 変更容易性と信頼性を向上 & 調整コストの削減 「依存性逆転の原則」や「クラウドネイティブ」を実現するコード / アーキテクチャ設計 密結合 & 部分的に SPOF 疎結合 & クラウドネイティブ化
  27. Google Cloud 32 「多機能すぎる 」 プラットフォーム ① 全ての課題を解決しようとして、様々な機能を  セ ルフサービス化したプラットフォームへと変  容して いった ② 各機能やバックエンドの保守コストが増大 

       し、保守コストが占める割合が大きくなった データ サイエンティスト ML / データ エンジニア 多機能化によって 運用負荷が増大したプラットフォーム Feature 1 Feature M Backend 1 Infrastructure ……… ① プラットフォーム エンジニア Backend N ……… ②
  28. Google Cloud 33 重要な課題を解決する 「最小の機能を持つ」 プラットフォーム ① 注力機能を決め、既存利用者への説明責任を果た    し、合意を取った上で非注力機能の廃止や移管を  推 進

    ② 保守コストが削減され、注力機能への集中投    資が可能になった データ サイエンティスト ML / データ エンジニア 注力機能への「選択と集中」によって 運用負荷が軽減されたプラットフォーム Feature 1 Feature n Backend 1 Infrastructure …… プラットフォーム エンジニア Backend m … ① ②
  29. Google Cloud 34 保守コストの削減 & 注力機能への集中 注力機能の判断と「選択と集中」による省力化 データ サイエンティスト ML

    / データ エンジニア 多機能化によって 運用負荷が増大したプラットフォーム Feature 1 Feature M Backend 1 Infrastructure ……… プラットフォーム エンジニア Backend N ……… データ サイエンティスト ML / データ エンジニア 注力機能への「選択と集中」によって 運用負荷が軽減されたプラットフォーム Feature 1 Feature n Backend 1 Infrastructure …… プラットフォーム エンジニア Backend m …
  30. Google Cloud 36 これまでの課題解決をまとめると ... • プラットフォームのセルフサービス化 • 開発者体験( Developer

    Experience )の向上 • プラットフォームの変更容易性の向上 • プラットフォームの提供機能の選択と集中 これらを十分に満たすことで プラットフォーム チーム・アプリケーション チーム がそれぞれ生産的なチームとなり 組織全体の「 持続的な進化 」の実現に貢献できる
  31. Google Cloud Platform Engineering を支える基本要素と考え方 Platform Engineering における Bad Case

    & Good Case Product Management の取り組み Platform Engineering を始めないことも視野に 37 03 Key points of architecturing
  32. Google Cloud 39 Platform Engineering における Bad Case & Good

    Case 全ての課題を解決しようとする多機能セルフサービス化と 不十分な 人材 / プロセス / 技術 の設計 Platform チームの運営キャパシティを超えるような 機能性はチームとプロダクトを硬直化させる 重要な課題を解決できる最小のセルフサービス化と 必要十分な 人材 / プロセス / 技術 の設計 Platform チームとプロダクトの持続的な進化
  33. Google Cloud 40 私たちも多くの失敗をし、多くの遠回りをしてきた Knile Streaming / Notebooks Platform Knile

    Job Platform Knile API Platform Prediction API on GKE BFF API on GKE Apache Airflow on VM Knile Job by Cloud Composer 1 Knile Job by Apache Airflow 2 on GKE Knile API v1 on GKE ( Router, Key-Value, BFF, Auth ) Cloud Dataflow Knile Job by Argo Workflows on GKE Jupyter Hub on GKE Knile Notebook by Kubeflow Notebooks on GKE Knile Notebooks by Vertex AI Notebooks Knile Job by 内製ワークフローエンジン ( Crois ) Rundeck on VM Key-Value API on GKE 2017 2023 2021 リクルート統合 入社 Key-Value API on VM Knile Streaming by Cloud Dataflow 株式会社リクルートライフスタイル 株式会社リクルート 移行中 除却済み 運用中 Knile API v2 on GKE ( Router, Key-Value, BFF, Prediction, Auth ) Query Job by AppEngine 今後の注力プロダクト
  34. Google Cloud 41 Product Management の取り組み Knile Platform Product Management

    Scrum Management Development Planning Strategy Planning Pricing Feature Request Management Product Marketing KPI Monitoring User Hearing … プラットフォーム プロダクトの持続的な進化のための開発計画の見直し DevOps, SRE への注力 & セルフサービス機能の選択と集中 & RICE Scoring Method を用いた優先度評価 EFFORT REACH IMPACT CONFIDENCE Product Management Development Management RICE Scoring Method
  35. Google Cloud 43 Knile Platform が新たに直面している課題と検討案 課題 • プラットフォームに対する各事業部からの要求が多様化 /個別化

    ◦ 横断的に生産性を上げるような要求ではないケースが増加 ◦ 全てに個別対応するのは横断の投資対効果としては適切ではない 検討案 • プラットフォームによる全体最適化と個別設計される個別最適化 ◦ 「プラットフォームを導入しない」という選択肢を検討する ◦ プラットフォームを採用するか否かの意思決定権は開発者側
  36. Google Cloud 44 Platform Engineering を始めないことも視野に “ Platform Engineering ”

    は例に漏れず 「銀の弾丸」ではない 組織の「生産性を上げる 」ために何が必要かを問いつづけること ( Developer Productivity Engineering ) 必要なことを実行し続けるために「 適応的かつ持続的である 」こと ( Agile Product Management ) これらのマインドを前提に目的を果たす最適な方法を考えよう
  37. Google Cloud 46 Conclusion 重要な課題を解決できる最小の機能に注力する 開発者生産性に貢献する最適な方法を問い続ける Platform Engineering をやるなら持続的な価値提供に責任を持つ DevOps

    や SRE を基礎とする文化を構築する 全体最適化と個別最適化を使い分ける Platform Engineering は「銀の弾丸」ではない ❶ ❷ Key Takeaways