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
可観測性を目的思考で捉え直す_-Squadが自律的に改善できるO11y基盤づくり_Ra...
Search
Shuhei Kanamori
February 10, 2026
Programming
0
33
可観測性を目的思考で捉え直す_-Squadが自律的に改善できるO11y基盤づくり_Railsモジュラーモノリス___DevPlatform_Squadの取り組み-
Shuhei Kanamori
February 10, 2026
Tweet
Share
More Decks by Shuhei Kanamori
See All by Shuhei Kanamori
2時間かかる月次バッチを 10分に短縮した スケーラブルなバッチアーキテクチャ改善
moneyforest
0
180
サービス連携の”謎解き”を可能にするDatadogによる分散トレース導入の第一歩(サンプリング編)
moneyforest
1
100
Other Decks in Programming
See All in Programming
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
510
NetBSD+Raspberry Piで 本物のPSGを鳴らすデモを OSC駆動の7日間で作った話 / OSC2026Osaka
tsutsui
1
100
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
260
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
210
CSC307 Lecture 08
javiergs
PRO
0
670
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Package Management Learnings from Homebrew
mikemcquaid
0
230
Gemini for developers
meteatamel
0
100
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
140
AI時代の認知負荷との向き合い方
optfit
0
170
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
Mobile First: as difficult as doing things right
swwweet
225
10k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
440
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Building Adaptive Systems
keathley
44
2.9k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
240
BBQ
matthewcrist
89
10k
Transcript
2026/02/10 Shuhei Kanamori 可観測性を目的思考で捉え直す -Squadが自律的に改善できるO11y基盤づくり Railsモジュラーモノリス × DevPlatform Squadの取り組み- @_MoneyForest
自己紹介 金森 秀平(@_MoneyForest) - 所属: タイミー プラットフォームエンジ ニアリングチーム - うさぎ(7歳♂)を育ててます
目次 • タイミーの組織とそのアーキ テクチャ • 目的思考のアプローチ • モジュラーモノリス × APMの
工夫
1 タイミーの組織とそのアー キテクチャ
2層構造の組織設計 【実組織】プロダクト本部・エンジニアリング本部 └─ 責務: メンバーのスキル・キャリア・Well-being支援 【仮想組織】Tribe / Squad(バリューストリーム) └─ 責務:
顧客価値をスピード感を持って実現 └─ 各Tribeが重要指標(KPI)に責任を持つ └─ Tribeの配下にSquadが存在 • メンバーは両方に所属(マトリクス型) • 「個人の成長」と「価値提供」の責務を分離し、異動のアジリティを確保
Tribe/Squad制とKPI 【仮想組織 - マッチングTribe】 └─ KPI: 稼働率(募集に対する実稼働率) └─ 申し込み、マッチング等を担当するSquadが存在 【仮想組織
- スポットワークシステムTribe】 └─ KPI: 信頼性 └─ 勤怠、決済等を担当するSquadが存在 • 各SquadにPdM/Engineer/Designer/Analystが属し、TribeはGroup PdMが統括 • ユーザージャーニー、顧客価値はSquadが強く向き合う
モジュラーモノリスアーキテクチャ Railsモジュラーモノリス(Packwerk活用) packs/ ├─ attendances/ # 勤怠機能 ├─ payments/ #
決済機能 ├─ offerings/ # 募集機能 └─ ... # その他多数 • ビジネスドメイン単位でパッケージを分割 • 各パッケージ ≒ Squad の責務領域
CODEOWNERSでチーム責務を明確化 .github/CODEOWNERS /packs/attendances/ → 勤怠機能担当Squad /packs/payments/ → 決済機能担当Squad /packs/offerings/ →
募集機能担当Squad • コードとチームが紐付く • PRレビューの自動割り当て • 「誰に聞けばいいか」が明確化
なぜこの前提が重要か 組織構造 × Railsアーキテクチャ → Squadごとの自律改善が重要 各SquadがKPIに責任を持つ └─ KPIに紐づくUJ/SLOがある └─
ドメイン単位でコードとチームを紐付ける └─ Squadが自律的に改善できる仕組みが必要 → この前提があるから「目的思考のO11y」が機能する
2 目的思考のアプローチ
✨ 理想:メトリクス、APMで問題を早 期発見・改善 • Datadogを導入した • ダッシュボードを作った • アラートを設定した よくある失敗パターン(課題の整理)
⚠ 現実:形骸化しがち • メトリクスは取っているが活用できて いない • アラートが鳴っても反応がない • ダッシュボードを作ったが見ない なぜ? → 目的が不明確だから
検索基盤(Elasticsearch)の負荷が急上昇 実際に困った事例:検索基盤の負荷急上昇 • クラスター全体の検索時間 → 遅いことは確認 • スレッドプールのキュー滞留 → 深刻度は把握
❌ 「なんで遅いか」がわからず、改善 が進まなかった
実はElastic CloudのIntegrationでは取得できるメトリクスに限界があった なぜ特定できなかったのか ✅ 取れていたもの • クラスター全体の検索時間 • 書き込み/マージの詳細時間 •
スレッドプール統計 ❌ 取れていなかったもの • インデックス単位の詳細メトリクス (index.search.query.timeなど)
Squadが自律的に改善するには何が必要? 「どのインデックスがなんで遅いか」がわかること -> 現状わかっていない 目的から逆算してメトリクスを取得する 再整理の結果: • Elastic Cloud Integrationだけでは不
足 • Datadog Agent経由でESを直接叩くこ とでIndex単位の詳細メトリクスが取得可 能と判明 → 目的(Squadが自律改善できる)から逆算して必要 なメトリクスを確認する → 「なんとなく連携」から「目的思考の連携」へ
まとめ:目的思考のポイント ❌ Before: どのメトリクスを取る か? → ツール起点、手段が目的化 ✅ After: なぜそのメトリクスが必要なの
か? → 目的起点、改善方法から逆算 • 「何を計測するか」より「なぜ計測するか」 • 目的が不明確だと形骸化する • 具体的な改善イメージから逆算して必要なメトリクスを取得する
3 モジュラーモノリス × APMの工夫
Squadごとの自律改善を支え る工夫
🤔 DBやHTTPリクエストにかかっ た時間くらいしか見えない 🤔 時間がかかっていることはわ かっても、どう改善していいかが導 きづらい Rails APMの特性:ゼロコード計装 Railsは「ゼロコード計測」が主流
• Datadog gemを入れるだけでフ レームワークに沿った粒度でトレー ス取得開始 • 自分でスパンを切る文化はあま りない
ボトルネックの割合として大きいのはデータベース Rails × APMありがちなボトルネック ✅ APMにDatabase Monitoringを 紐付ける → クエリのExplainがAPMに紐づく
ことで改善オポチュニティを探索し やすくなる •Active Recordの抽象度が高い → 意図せず重いクエリが発行さ れがち • N+1問題も起こりやすい → こちらはAPMのスパン数から わかり、ゼロコード計装でも気づくこ とが可能
CUJ × Squad × コード × APM/DBMの紐付け Squadが「自分たちのパフォーマンス」として APM +
DBMを見ながら改善できるように
code_ownerタグによる可視化 各リクエストのトレースに「code_owner」タグを自動付与 • 自分たちがオーナーのリクエストが遅いことがわかる • DBM連携によりDBの改善オポチュニティも探索しやすく
🙅やっていないこと • 各Squadの代わりにSLO/CUJを 決める • 各Squadの代わりにパフォーマン ス改善する(あくまでやる時は Squad Drivenでコラボレーションす る)
O11yにおけるDevPlatform Tribe/Squadの役割 🙆やること • O11y基盤整備(code_ownerタ グ、DBM連携等の新機能活用) • 定点観測による最低限の品質担 保 • 複雑な性能問題をSquadとコラ ボレーションして解決
まとめ:Squadが自律改善できる状態へ 1. 目的から逆算してメトリクスを取得 → 「何を取るか」より「なぜ取るか」 → 目的が不明確だと形骸化する 2. コード ×
Squad × APM/DBMを紐付ける → code_ownerタグで「誰が改善すべきか」を明確に → DBM連携でRailsのありがちなボトルネック( DB)に対処 3. プラットフォームチームは基盤整備とイネーブラーに徹する → 各Squadが自律的に改善できる状態を作る → Squadの代わりに決めたり改善を行うことはしない
Howの詳細は後半の 「O11yによる可視化で実現する、チー ム独立型パフォーマンス改善」 をお楽しみに!