小規模Rails開発チームおすすめシリーズ:APM - Skylight
小規模Rails開発チームおすすめシリーズ:APM - Skylight
はじめに
小規模な開発チームでRailsを使ってWebアプリケーションを開発している皆さん、こんにちは。日々より良い開発行うため、世の中の情報を集めているのですが小規模開発チーム向けの開発支援サービスの情報は案外少ない気がしました。そこで折に触れて小規模Rails開発チームおすすめシリーズを書こうと思っています。
初回はAPMです。アプリケーションのパフォーマンスを監視し、最適化することの重要性は言うまでもありません。今回は、比較的新しいAPM(Application Performance Monitoring)ツールである「Skylight」について紹介します。特に小規模なRails開発チームにとって、Skylightが優れた選択肢となる理由を解説していきます。
Skylightとは
Skylightは、Webアプリケーションのパフォーマンスを監視・分析するためのAPMツールです。特にRuby on Rails向けに最適化されており、セットアップが簡単で直感的なインターフェースを持つことが特徴です。
小規模チームにSkylightをおすすめする理由
1. 簡単なセットアップ
小規模チームでは、複雑な設定やインフラ構築に時間を割くことが難しいものです。Skylightは非常に簡単にセットアップできます。
# Gemfileに追加
gem 'skylight'
# Shell
bundle install
bundle exec skylight setup <setup token>
これだけで基本的な監視が開始されます。他のAPMツールと同様に、設定項目が少なく、短時間で導入できます。またセットアップ後に設定等はほぼ必要なく、すぐに利用きるのが大きな利点です。
2. 低コスト
小規模チームにとって、コストは常に重要な要素です。Skylightは、他の主要なAPMツールと比較して、かなりリーズナブルな価格設定となっています。さらに、小規模プロジェクト向けの無料プランも用意されているため、まずは試してみることができます。
私の所属企業で開発している業務用アプリでは数十ドルの範囲で運用ができています。趣味のアプリであれば無料の範囲でも運用可能かもしれません。
注意:現在Skylightでは無料枠で制限する方法はないそうです。データ送信量の枠が無料枠を超えると自動で課金されます。無料で運用したい場合はリクエスト数が無料枠を超えないように注意してください。
よく大企業で使われているAPMの情報があるのがDatadogです。Datadogと比較して非常に低コストであることがわかります。Datadogはわかりやすい表示かつ、ログデータと連携できるのが便利です。ただホストごとに18.75ドルかかります。Webサーバーを複数立てている場合はその分かかります。ログの取り込みが1GBごとに0.13ドルです。仮に10ホスト、月次ログが100Gとすると、200.5ドル程度になります。またログの保持などにも追加でコストがかかります。計算してみると20ドルから40ドル程度で運用できるSkylightのコストの低さがわかると思います。(2024/09/05時点の価格)
TIPS: もし趣味のアプリであれば会社に導入する前に趣味のアプリで導入してみて使い心地を確かめてみるのもよいでしょう。チーム開発で特にツールの切り替えの場合はチームの合意が必要です。自分で使ってみた実感があればスピーディな合意形成に近づきます。
3. Rails特化の表示機能
Skylightは特にRailsアプリケーション向けに最適化されています。例えば、ActiveRecordのクエリ分析機能は非常に優れています。
# 以下のようなクエリがある場合
users = User.where(status: 'active').includes(:posts).limit(10)
# Skylightは自動的に以下のような情報を提供します
# - クエリの実行時間
# - インデックスの使用状況
# - N+1問題の検出
# - 最適化の提案(例:カウンターキャッシュの使用など)
これらの情報は、ダッシュボード上で視覚的に確認でき、パフォーマンスのボトルネックを素早く特定できます。
4. 直感的なUI
小規模チームでは、全員がパフォーマンスの専門家である必要はありません。Skylightの直感的なUIは、技術レベルに関わらず、チーム全員がパフォーマンスデータを理解し、活用できるようになっています。
ここではNew Relicと比較しましょう。New Relicは個人としてもISUCON(パフォーマンス・チューニングコンテスト)などにでた際にボトルネックの特定に大変役立ちました。わたしたちのチームも以前はNew Relicを使い課金をしていました。New Relicのユーザー招待周りの挙動に少し不安定さを感じたことが乗り換えのきっかけでしたが、大きな差はこのUIにあると思います。
New Relicは新しいメンバーが入ると、Transactionの見方などを説明が必要でした。一方でSkylightはログインしたら遅いリクエストが最初に表示され、説明不要です。確かに細かいことはできないのですが、小さなチームでは、気付いた人がササッとボトルネックのを把握して修正できることが重要なので、この点も大きなメリットになります。
まとめ
小規模なRails開発チームにとって、Skylightは非常に魅力的なAPMツールです。簡単なセットアップ、低コスト、Rails特化の機能、直感的なUIなど、多くの利点があります。
パフォーマンスモニタリングは、アプリケーションの品質を維持し、ユーザー体験を向上させるために不可欠です。Skylightを導入することで、小規模チームでも効率的にパフォーマンス監視と最適化を行うことができます。
あと問い合わせをしてみてわかったのですが、彼らも小さなチームでアプリケーションを作っています。小さなチームで作っているがゆえのコスト感でもあります。つまり小さなチームが開発支援ツールを使う場合、いい感じの小さなチームが作っているものがフィットする可能性あるということは把握しておいても損がないと思います。
(もっと古い時間軸でパフォーマンス改善の記録が見たいと問い合わせをしてみたところ、小さなチームで難しいと返信をもらいました。Trendsというダイジェストでまとめる機能があるから、厳密には求めているものとは違うと思うけど見てみてね的な返信でした。)
最後にリファラルリンクを置いておきます。
Discussion