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

過去の改善から考える オブザーバビリティの必要性

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for ta1kt0me ta1kt0me
February 10, 2026

過去の改善から考える オブザーバビリティの必要性

https://events.datadoghq.com/ja/events/abmseminar-202602
Ruby on Rails × Observability
~主要SaaS企業が語る、プロダクト価値を最大化する可観測性の最前線~
#datadog_ror_o11y

Avatar for ta1kt0me

ta1kt0me

February 10, 2026
Tweet

More Decks by ta1kt0me

Other Decks in Technology

Transcript

  1. 02 TimeTree self.inspect #<SoftwareEngineer:0x0000002e3e07bcc3 @name="徳富太樹", @nickname=”Greg”, @company="TimeTree", @role="Backend Engineer", @team=[“SRE”,

    “技術基盤”], @location=”愛知”, @work_style=”Full Remote🏠” @github=”@ta1kt0me” @interests=[“🎧”, “🫖”, “☕”, “🍵”] >
  2. 06 TimeTree 誰でも気軽に予定情報を発 信できるプラットフォーム 基本のカレンダーシェア 予定を登録しただけで相手 に共有できる 共有カレンダー icon 事業モデル

    公開カレンダー icon 予定と紐づいて役立つ情報 を届けるカレンダーならで はのプラットフォーム 広告プラットフォーム icon
  3. 015 TimeTree - パフォーマンスのためにリソースの範囲を絞っているAPIで発生 - Singer has many Songs の時、Songsを取得するAPI

    - GET /singers/:singer_id/songs - 特定の条件で上位のリソース(Singer)を複数まとめて取得す るパターンが発生 - APIレベルでN+1が発生する 問題を理解する
  4. 016 TimeTree - API設計の前提を見直す - Before: GET /singers/:singer_id/songs - After:

    GET /songs?singer_ids=[] - 注意点 - パフォーマンスのためパラメータの上限は必要 - Storageへのアクセスパターン 解決策
  5. 017 TimeTree - 定期的な観測の習慣 - データ増加に伴うパフォーマンス悪化など、見えづらい問題 の発見に役立つ - 傾向の変化は自分たちの当たり前を見つめ直す機会 -

    可用性、パフォーマンス、コストを考慮して解決策を選択 - 可用性とコスト - パフォーマンスとコスト 変化に合わせて前提を⾒直す
  6. 020 TimeTree クエリの発⽣場所 • 統計情報を集計する非同 期Job • 発行回数はDaily • Sidekiqで実行

    問題を理解する 優先度 • メトリクス上、サービス への影響はなし • 今すぐ取り組むべき問題 か? スケーラブルな対応 • 今後レコードが増加して も問題ないか? • 要件の見直しで改善でき るか?
  7. 022 TimeTree - Railsはモノリシックなフレームワークで多くのシステムと連携 - 関連するシステムの得意・不得意を理解する - Rails way、行指向・列指向ストレージ etc

    - 問題の背景を踏まえてシステム全体で解決策を選択 - 一般的なプラクティスが適用可能か一歩引いて考える 得意‧不得意を理解してスケーラビリティ向上