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

レガシーシステムにNew Relicを入れて改善を頑張った話

レガシーシステムにNew Relicを入れて改善を頑張った話

New Relicユーザーと語るオブザーバビリティの実践
ユースケースで知る開発、運用におけるオブザーバビリティとは?

2024年4月24日(水)19:00〜
LT「レガシーシステムにNew Relicを入れて改善を頑張った話」

https://increments.connpass.com/event/311823/

YoshikiKomoriya

April 23, 2024
Tweet

More Decks by YoshikiKomoriya

Other Decks in Technology

Transcript

  1. #QiitaNewRelic バイトルがNew Relicを導入するまで 「ガンガン作れる200人体制」(内製化)の推進 - 多角的なシステム全体の「見える化」 - ≠インフラ担当から見えればいい - ≠パートナーから見えればいい

    - 担当・領域を限定せず各エンジニアが見られるように - 監視から「オブザーバビリティ」へ - (バイトルでは)インフラ担当による監視がメイン - 各エンジニアが価値創造に貢献する主体性がほしい
  2. #QiitaNewRelic レガシーシステムとの戦いの歴史 - バイトルにNew Relicを導入してから2年半 - そこにはレガシーシステムとの戦いの歴史があった…(※全部自分達のせい) - 素直には入ってくれないAPM・Infrastructureたち -

    情報が十分に集まらず、調査ができない… - 細かな条件のログ検索ができない - APMでエラーが補足できない - 基本的には、導入するだけで十分に効果を得られるサービス - 基本笑い話として受け取ってください
  3. #QiitaNewRelic New Relicを導入して便利だったこと - 導入するだけで、便利な点がいっぱいある! - トランザクションタイム・Apdexスコアなどを可視化 - 今まで「なんとなく遅いよね」と言っていた部分が一目瞭然 -

    手動で調査用ログを設置するなどの対応が不要に - Deploymentsでリリースタイミングを記録できる - リリース前後のエラーレートの向上・パフォーマンスの悪化などを確認 - Service LevelsでSLI/SLOを設定できる - サービスの状態が丸わかり - 障害報告の基準にできる - ビジネスサイドと共通の指標にして、リリース戦略を立てる
  4. #QiitaNewRelic New Relic導入に対する課題 - 導入に対する課題もいっぱいある… - OSや言語のバージョンが古く、APMなどガイド付きインストールでは入れられない - 標準的なシステムの開発/運用環境から遠い部分 -

    サポートも切れてしまうので、急いで対応したい - エラーが補足できない・ログが見づらい - 握り潰してるじゃん! - 他プロダクトではログの構造化(JSON化)が進んでるし、我々もやるか…? - アラートが次々と上がる - これまで捕捉できていなかったものが次々と出てくる
  5. #QiitaNewRelic New Relic導入に対する課題 - 視点を変えてみる - 課題の性質 - これまで気づいていなかったこと -

    いつか改善したいと考えていたこと - つまり、いずれ直面する問題が表出しているだけ - いつかやらなきゃいけないなら、今やってもいいじゃない →これをきっかけに改善していくことを決意
  6. #QiitaNewRelic ログの構造化にまつわるあれこれ - PHPを使っている場合のログ転送を考えると… - New Relicのオススメ - monologの v2

    または v3 を使っていれば、APMが自動的に転送してくれる - 当時のシステム - ライブラリ管理がPEAR・PECLで、composerは使っていない - ログライブラリはApache log4php(2020年にサポートが終わっている) - PHPのバージョンが古く、monologのv1しか入れられない →結構しんどいな…頑張らないとな…😇
  7. #QiitaNewRelic 各所に協力を求めて、ひとつひとつ攻略していく - ライブラリ管理がPEAR・PECLで、composerは使っていない - 開発チームにcomposerの利点や開発体験の向上アピール - インフラ担当にお願いして、リリースに使うJenkins Jobにも組み込んでもらう -

    ログライブラリはApache log4php(2020年にサポートが終わっている) - composerの導入に合わせて、monologへ変更 - JSON用のフォーマッターを使用してログを構造化 - PHPのバージョンが古く、monologのv1しか入れられない - 研究開発の部署のメンバーと協力してバージョンアップを実施 - (ただし、monolog v2 の導入はこれから)
  8. #QiitaNewRelic ひとつ改善すれば、あとはなんとかなった - ログの構造化を頑張った結果、システムを改善する意識が根付く - New Relicにすべてのデータが集まるようになった - 自分の役割以外のデータにも注目するようになった -

    e.g. バックエンドエンジニアがフロントエンドのパフォーマンスを見る - e.g. 障害発生時、インフラリソースやエラーレートの情報をお互いに共有する
  9. #QiitaNewRelic New Relicの導入によって得られたもの - レガシーシステムのマイナスがゼロになった - 技術的負債の返済、全員で障害やパフォーマンスに向き合う姿勢 - システムのゼロをプラスに変えていけるポテンシャル -

    オブザーバビリティの実現による予測的なアプローチ - 数値をベースにした根拠のある会話、エンジニアのビジネス貢献度の可視化 - 部署や役割の垣根を取っ払った、総合的なプラットフォームとしての活用
  10. #QiitaNewRelic Advent Calendarの記事もよろしくね - レガシーシステムにNew Relicを入れて改善を頑張った話 - https://qiita.com/ramiyon_chan/items/20b476577fc8aaed76fd - いいねください

    - 今日の話を聞いてから見ると、また違ったものが見えてくるかも…! - 質問があればぜひコメントや #QiitaNewRelic にどうぞ
  11. #QiitaNewRelic Advent Calendarの記事もよろしくね 弊社メンバーの他の記事もぜひどうぞ - NewRelicを使って監視を理解するきっかけとなった話 - https://qiita.com/dai_chi/items/f2c2f44138d0f42ebe24 - New

    Relicでテストカバレッジ(Jest)を可視化してみた - https://qiita.com/arie0703/items/cc7c4c7f875b074e5b0e - SLI/SLOを策定し、New Relicで可視化する - https://developer.dip-net.co.jp/entry/2023/12/25/SLI/SLO%E3%82%92 %E7%AD%96%E5%AE%9A%E3%81%97%E3%80%81New_Relic%E3%81 %A7%E5%8F%AF%E8%A6%96%E5%8C%96%E3%81%99%E3%82%8B