皆さんこんにちは!
21卒の内定者として現在BOXIL開発チームでインターンをしている関口です!
私は今年の4月からスマートキャンプでインターンをしていますが、このインターンを始めるまで、業務としてプロダクトを開発したことはありませんでした。 業務としてプロダクトを開発するようになってから、自分が今まで使ってこなかった開発手法、技術、サービスがたくさんあるということを知りました。
今回のブログでは特に最近勉強になったBOXILの運用を支える監視ツールについて紹介していきたいと思います。
監視をおこなう理由
そもそもなぜ監視をおこなう必要があるのでしょうか?
監視をおこなう理由を一言で表すなら
「システムを安定して稼働させ、稼働効率を上げるため」です。
アプリケーションを運用していると予期せぬ障害やエラーが起きます。
(あまり起こって欲しくはないですが、、)
そのエラーがなぜ起こり、どこで起きているかを把握するために必要なものが監視ということになります。
またアプリケーションのパフォーマンスを計測するためにも監視ツールは使われます。
以前のブログで長期休暇中の監視当番について取り上げている記事があるのでぜひご覧ください。
BOXILで利用している監視ツールについて
続いて実際にBOXILチームで使われている監視ツールについて紹介していきます。
私たちのチームでは主にMackerel、New Relic, Bugsnagの 3つのサービスを監視ツールとして利用しています。
それぞれのサービスの概要、チーム内での運用方法をご紹介していきます。
Mackerelとは
mackerelとは株式会社はてなが運営しているアプリケーションサーバーなどのリソース状況を監視するためのサービスです。 mackerelを日本語に直すと魚のサバを表します。サーバー→ サバ→ Mackerel ということが名前の由来らしいです。
各リソースの状況をグラフで表示してくれるため、どのリソースに対して問題が起こっているのか直感的に把握することができます。
私たちのチームでは毎日の朝会でメンバー全員でMackerelを見ながらアプリケーションサーバーのHTTP Response timeやredisのcacheの接続などについて問題がないかを確認しています。
Bugsnagとは
Bugsnagとはエラー検知のために用いられる監視ツールです。
MicrosoftやAirbnb、GitHubなど全世界5000を超える開発組織で使われています。
BugsnagをRailsのアプリケーションやRedisに埋め込むことによって、
アプリケーションのどこでどのようなエラーが起きてしまっているのかを瞬時に観測することができます。
BOXILチームではBugsnagとSlackを連携させ、エラーが起きた際にSlackに通知を飛ばしすぐに誰でも確認ができるようにしています。
Bugsnagやmackerelは約2年前から私たちのチームで使われており、当時のチームの課題であったアプリケーションの安定性を向上させるために導入されました。
New Relicとは
続いてアプリケーションのパフォーマンスを監視するツールをご紹介します。
私たちのチームではNew Relicというサービスをパフォーマンス監視ツールとして利用しています。
New Relicを用いることでアプリケーション全体のレスポンスタイムや、アプリケーションのactionごとのスループット(一定時間にどれくらいの仕事を処理できるか)を計測することができます。
これによりどの処理が原因でアプリケーションのパフォーマンスを低下させているのかを見つけることができます。 以前のブログでパフォーマンスの改善するためのポイントについて紹介しており、その中でNew Relicについても取り上げているのでぜひご覧ください!
最後に
今回の記事では監視をおこなう理由、BOXILで使われている監視ツールについてご紹介させていただきました。
それぞれの監視ツールを利用することでBOXILを日々安定して運用することができています。
個人開発ではあまり使われない監視ツールですが、大量のトラフィックがあるプロダクトを運用する際にはとても役に立つことをインターンを通して知りました。
今回のブログは以上です。読んでいただきありがとうございました!