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

続く障害からの脱却 オブザーバビリティで立て直すサービス開発

Yamato
February 22, 2025
710

続く障害からの脱却 オブザーバビリティで立て直すサービス開発

PHPカンファレンス名古屋2025

Yamato

February 22, 2025
Tweet

More Decks by Yamato

Transcript

  1. #phpcon_nagoya #s 自己紹介 @yamato_sorariku / 足利 大和 株式会社カオナビ • バックエンドエンジニア

    ◦ 軸はPHPer ◦ 必要なことはなんでもやります • 猫とコーヒーと飛行機が好き 2
  2. #phpcon_nagoya #s 今回のトークで登場するサービスの概要 4 提携しているメディアの記事リスト を取得するcronジョブ 取得リストをもとに 順次実行して記事を取得する cronジョブ 取得した記事を使って

    ユーザごとにレポート生成 するcronジョブ 調査レポート 提供している価値 取得先は数千件以上 総取得数は数万件以上 ユーザごとに設定された調査条件に合 致したデータを取得しレポート化 レポートに対する追加情報の取得 記事の注目度など
  3. #phpcon_nagoya #s プロダクトチームの状況 当然チームには良くない空気が流れる • 対応に追われてプロダクトへの機能実装はうまく進捗できない ◦ レガシーなコードやインフラの改善も進まない • なにかアクションを起こすと問題が起きる

    ◦ 起きる問題に自分たちで気付けない ◦ 行動しないことが安全に繋がってしまう 18 自分たちで気付けるようになろう ↓ システム監視から始める立て直しへ
  4. #phpcon_nagoya #s シンプルなシステム監視に着手 • CPUなどのサーバリソースの監視 ◦ 余裕があるからと言って問題なく稼働してるかはわからない ◦ 使用率99%でも適切にサービス提供できれいれば問題ない •

    各種ジョブ処理(cron実行)の実行結果を収集 ◦ 終了コードにが0なら正常終了している判定 ▪ エラーなのに0応答しているコードが稀に…… • ログの監視とSlack通知 28
  5. #phpcon_nagoya #s シンプルなシステム監視に着手 • CPUなどのサーバリソースの監視 ◦ 余裕があるからと言って問題なく稼働してるかはわからない ◦ 使用率99%でも適切にサービス提供できれいれば問題ない •

    各種ジョブ処理(cron実行)の実行結果を収集 ◦ 終了コードにが0なら正常終了している判定 ▪ エラーなのに0応答しているコードが稀に…… • ログの監視とSlack通知 ◦ 対応不要なエラーログの山によるノイジーアラート 29
  6. #phpcon_nagoya #s シンプルなシステム監視に着手 • CPUなどのサーバリソースの監視 ◦ 余裕があるからと言って問題なく稼働してるかはわからない ◦ 使用率99%でも適切にサービス提供できれいれば問題ない •

    各種ジョブ処理(cron実行)の実行結果を収集 ◦ 終了コードにが0なら正常終了している判定 ▪ エラーなのに0応答しているコードが稀に…… • ログの監視とSlack通知 ◦ 対応不要なエラーログの山によるノイジーアラート 30 ちゃんと稼働してるかわからん
  7. #phpcon_nagoya #s ※ インフラなどの監視はもちろん重要 • インフラレイヤで起きる問題も当然あるのでリソース監視なども必要 • 我々はWebアプリケーションエンジニアなので 「アプリケーション(サービス)」の監視が重要 •

    アプリケーションが正しく動作できていなければ価値は提供できていない 32 システムが価値が提供できていることを見えるようにしたい ↓ オブザーバビリティから始める立て直しへ
  8. #phpcon_nagoya #s 価値が提供できていることを推測する 49 構造化ログを集計してメトリクスに -> 時系列のデータとして見える 取得できてない時間が一定時間を超えた -> アラート発報

    取得できなくなったメディアの確認 -> 全部? 一部? ログとメトリクスを組み合わせてサービスが 価値を正しく提供できているか推測可能に
  9. #phpcon_nagoya #s まとめ • 小さく少しずつ始めよう ◦ シンプルな監視や構造化ログの出力から着手し、少しずつ改善を積み重 ねる。 • 価値を可視化しよう

    ◦ ログやメトリクスを活用し、サービスが正しく価値を提供できているか わかるようにする。 • チームで育てよう ◦ ダッシュボードの共有や継続的な改善を通じて、オブザーバビリティを 文化として根付かせよう。 59
  10. #phpcon_nagoya #s 参考資料 • Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ ◦ https://speakerdeck.com/pyama86/re-define-ke-yong-xing-wozhi-eru-monitaringu-pahuomansuzui-shi-hua-sositesekiyuritei •

    メトリクス、ログ、トレースをうまく使い分けて可観測性を高めよう! ◦ https://speakerdeck.com/masayoshi/metorikusu-rogu-toresuwoumakushi-ifen-keteke-guan-ce-xing-wogao-meyou • Observability Whitepaper ◦ https://github.com/cncf/tag-observability/blob/whitepaper-v1.0.0/whitepaper.md#what-is-observability • O'Reilly オブザーバビリティ・エンジニアリング ◦ https://www.oreilly.co.jp/books/9784814400126/ • O'Reilly エラスティックリーダーシップ ◦ https://www.oreilly.co.jp/books/9784873118024/ 61
  11. #phpcon_nagoya #s We are hiring!! - 株式会社カオナビ https://corp.kaonavi.jp/recruit /list/ 62

    https://hrmos.co/pages/kaonavi/jobs/casual21 選考を希望する⽅ まずは話を聞いてみたいという⽅