Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SmartHRを支える従業員データ基盤とそのインフラ_Innovative Crosstal...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ItoJum
August 01, 2026
93
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SmartHRを支える従業員データ基盤とそのインフラ_Innovative Crosstalk Jamboree Geeks '26
ItoJum
August 01, 2026
More Decks by ItoJum
See All by ItoJum
VRChat.rbの野望.pdf
itojum
0
4
なぜtree-sitter-rubyの日本語シンボルはシンタックスハイライトされないのか
itojum
0
76
Ractorを試してみるぞ!+メタバースにおける地域.rbをやっているぜ
itojum
0
47
新卒一年目のコミュニティ駆動ライフ_新卒N年目のLT交流会.pdf
itojum
0
110
VRChat.rb_4_Ractorで始める並列処理.pdf
itojum
0
16
Rubyistのカテゴリを聞きに来ました_roppongirb.pdf
itojum
0
12
VRChat.rb_3_UzumibiでRubyのDiscord_BotをCloudflareにデプロイしたい.pdf
itojum
0
19
VRChat.rb_2_Rubyオブジェクトの世界.pdf
itojum
0
38
RubyKaigi_2026参加レポート_VRChat.rb.pdf
itojum
0
12
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Balancing Empowerment & Direction
lara
6
1.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
650
Google's AI Overviews - The New Search
badams
0
1.1k
The Cult of Friendly URLs
andyhume
79
7k
Bash Introduction
62gerente
615
220k
The Curious Case for Waylosing
cassininazir
1
440
Between Models and Reality
mayunak
4
380
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
620
A Soul's Torment
seathinner
6
3.1k
Unsuck your backbone
ammeep
672
58k
Transcript
SmartHRを⽀える従業員デー タ基盤とそのインフラ SmartHR プロダクトエンジニア Jumpei Ito (@itojum1230) 2026/08/02 © SmartHR,
Inc.
スピーカー紹介 Jumpei Ito (@itojum1230) • いとじゅん (itojum) • 株式会社SmartHR (2026/04~)
◦ 新卒⼀期⽣(26卒) ◦ 業務連携基盤ユニット ◦ プロダクトエンジニア • ⿃取県出⾝ • VRChat.rb Organizer 写真撮影‧SNS共有 歓迎🙌 2
お品書き 1 SmartHRとマルチプロダクト 2 従業員データ基盤(EDP)とは 3 GraphQL Federationによる横断取得 4 Database
Federationによる横断検索 5 EDPを⽀えるGoogle Cloud 6 なぜDataprocをやめたのか 7 まとめ 3
SmartHRとマルチプロダクト 4
5
6
SmartHRのマルチプロダクト 7
SmartHRのマルチプロダクト このあたりの 話をします 8
マルチプロダクトの課題 キャリア台帳 従業員データベース スキル‧資格‧研修 ⼈事評価 キャリア台帳: タレントマネジメントに必要な従業員情報を1ページで確認できるプロダクト 9
マルチプロダクトの課題 従業員データ が分散 キャリア台帳* 従業員データベース スキル‧資格‧研修 ⼈事評価 *キャリア台帳: タレントマネジメントに必要な従業員情報を1ページで確認できるプロダクト 10
マルチプロダクトの課題 従業員データ が分断 キャリア台帳 個別にリクエ ストを実⾏ 従業員データベース スキル‧資格‧研修 ⼈事評価 キャリア台帳:
タレントマネジメントに必要な従業員情報を1ページで確認できるプロダクト 11
マルチプロダクトの課題 従業員データ が分断 個別に実装‧ 保守が発⽣ キャリア台帳 個別にリクエ ストを実⾏ 従業員データベース スキル‧資格‧研修
⼈事評価 キャリア台帳: タレントマネジメントに必要な従業員情報を1ページで確認できるプロダクト 12
解決したい... 13
従業員データ基盤(EDP)とは 14
従業員データを横断 活⽤するための基盤 15
EDPの構成要素 GraphQL Federation Database Federation 各プロダクトのGraphQL サービスを統合した、1 つのGraphQLエンドポイ ントを提供 分散SQLエンジンTrinoを
使って、各プロダクトの データソースを統合 16
EDPがない場合 キャリア台帳 従業員データベース スキル‧資格‧研修 ⼈事評価 17
EDPの全体像 利⽤プロダクト 提供プロダクト 18
GraphQL Federationによる横 断取得 19
GraphQL Federationとは GraphQLサービス(subgraph)を統合 し、単⼀のGraphQLエンドポイント (supergraph)を提供する仕組み https://graphql.org/learn/federation/ 20
横断取得の構成 利⽤プロダクト 提供プロダクト type Crew @key(fields: ID!) { firstName: String!
lastName: String! subgraph } type Crew @key(fields: ID!) { firstName: String! lastName: String! skills: [Skill!]! } supergraph type Crew @key(fields: ID!) { skills: [Skill!]! } type Skill { name: String! level: Int! } type Skill { name: String! level: Int! } subgraph 21
GraphQL Federationのメリット 関⼼の分離 複雑さの解消 リアルタイム性 22
GraphQL Federationのメリット 複雑な検索 ソート ページネーション 23
Database Federationによる横 断検索 24
Trinoとは 複数の分散しているデータソースに対し て、SQLクエリを通じてアクセスできる SQLクエリエンジン https://trino.io/ 25
横断検索の構成 データソースアプリのDB クライアントアプリ Railsアプリは検索 クエリをTrinoSQL に変換する EDP 26
ここまでの全体像 利⽤プロダクト 提供プロダクト 27
2つのFederationに よって、マルチプロ ダクトは⽀えられて いる 28
EDPを⽀えるGoogle Cloud 29
インフラ構成図 30
edpの構成図 31
searchの構成図 32
searchの構成図 最近Dataprocから GKEに移⾏完了した 33
なぜ Dataproc をやめたのか 34
Dataprocとは Google Cloud上でデータ処理フ レームワークを実⾏できるフルマ ネージドサービス (新称 Managed Service for Apache
Spark) 35
Trino on Dataprocの採⽤理由 構築‧運⽤の⼿軽さ 36
Trino on Dataprocの課題 Trinoのバージョン の固定化 37
GKEに移⾏する ぞ!!1 38
移⾏計画 1. 調査‧技術検証 移⾏案の⽐較 a sandbox環境でTrino on GKE検証 2. 移⾏準備‧環境構築
GKEクラスタ作成 CD整備 性能⽐較検証 3. カナリアリリース 4. Dataproc削除 DataprocとGKEのルー ティング⽐率を段階的に移 ⾏ Dataproc関連リソースの 削除 39
調査‧技術検証 1. 調査‧技術検証 移⾏案の⽐較 a sandbox環境でTrino on GKE検証 2. 移⾏準備‧環境構築
GKEクラスタ作成 CD整備 性能⽐較検証 3. カナリアリリース 4. Dataproc削除 DataprocとGKEのルー ティング⽐率を段階的に移 ⾏ Dataproc関連リソースの 削除 40
移⾏案の⽐較 Google Kubernetes Engine Compute Engine 安定性 ◎自動回復・自動更新 ◦自前で構成すれば 運用負荷
◦基盤はGoogle管理 ×全て自社管理 課題 k8sの学習コスト 運用負担大 結論 採用 見送り 41
移⾏準備‧環境構築 1. 調査‧技術検証 移⾏案の⽐較 a sandbox環境でTrino on GKE検証 2. 移⾏準備‧環境構築
GKEクラスタ作成 CD整備 性能⽐較検証 3. カナリアリリース 4. Dataproc削除 DataprocとGKEのルー ティング⽐率を段階的に移 ⾏ Dataproc関連リソースの 削除 42
性能⽐較検証 検証目的 • Dataproc→GKE移行の判断材料 ◦ 実運用に近い検索クエリでの性能差を事前に把握する 検証環境 • 社内の検証用テナント •
従業員データ約20万件 実行方法 • Apollo Studio Explorerから実行、ウォームアップ後の値を採用 • Trinoのクエリ統計から数値取得 ※注意点※ • 厳密なベンチマークではなく参考値で傾向を見るためのもの • Trinoバージョンが異なる ◦ Dataproc: 432 / GKE: 476 43
性能⽐較検証 Trino on Dataproc(旧) Trino on GKE(新) 全体実行時間 (elapsedTime) 1.71s
0.64s (62%高速) CPU時間 (totalCpuTime) 403ms 168ms (58%高速) ピークメモリ使用量 (peakTotalMemoryRes ervation) 1MB 132KB (87%削減) TIPS: 改善の主要因はTrinoの最新バージョンに追従したこと 44
カナリアリリース 1. 調査‧技術検証 移⾏案の⽐較 a sandbox環境でTrino on GKE検証 2. 移⾏準備‧環境構築
GKEクラスタ作成 CD整備 性能⽐較検証 3. カナリアリリース 4. Dataproc削除 DataprocとGKEのルー ティング⽐率を段階的に移 ⾏ Dataproc関連リソースの 削除 45
カナリアリリース時のインフラ構成 46
Dataproc破棄 1. 調査‧技術検証 移⾏案の⽐較 a sandbox環境でTrino on GKE検証 2. 移⾏準備‧環境構築
GKEクラスタ作成 CD整備 性能⽐較検証 3. カナリアリリース 4. Dataproc削除 DataprocとGKEのルー ティング⽐率を段階的に移 ⾏ Dataproc関連リソースの 削除 47
私が消した!!!! 48
まとめ 49
まとめ • SmartHRのマルチプロダクトは従業員データ基盤に⽀え られている ◦ EDPはGraphQL FederationとDatabase Federation で構成されている •
従業員データ基盤はGoogle Cloudに⽀えられている ◦ TrinoのDataproc→GKE移⾏の意思決定を紹介 50
None