サムライズトップ > APM - アプリケーションパフォーマンスマネージメント > アプリケーション性能問題の解決とDevOpsの高速化 > ライブデバッグサービス「Rookout」を選ぶ理由とは?

ライブデバッグサービス「Rookout」を選ぶ理由とは?

ROOKOUT Ltd. パートナーシップ統括者兼ソリューションエンジニア エリノア・スウェリー氏に聞く

「止まらないブレークポイント」で本番環境のデバッグを飛躍的に効率化するRookoutですが、市場には他にもさまざまなデバッグツールや監視ツールがあります。その中からRookoutを選ぶ理由とは?そこでテルアビブ本社とビデオ会議でつなぎ、ソリューションエンジニアのエリノア・スウェリー(Elinor Swery)氏に、他のソリューションとの違いや差別化要因についてお話しいただきました。聞き手はサムライズの富田。

富田:自己紹介をお願いします。

エリノア・スウェリー氏エリノア:エリノア・スウェリー、Rookoutのパートナーシップ統括者兼ソリューションエンジニアです。お客様と直接やりとりしながらソリューションの実装をお手伝いしたり、パートナー各社の協力を得ながら製品を市場展開する役割を担っています。ニュージーランドのIBMに勤務したのち、スタートアップ企業を経由して2年半前にRookoutのあるイスラエルに来ました。

富田:お客様と直接お話する立場から、競合ソリューションなどを含めた市場分析はどうなっていますか?

エリノア:はい、私たちの製品の主要ユースケースは「本番環境のデバッグ」、「クラウドネイティブなデバッグ」、「動的にコントロールできるロギング」、この分野でソリューションを提供しているベンダーは他にもありますが、機能や性能、およびさまざまなテクノロジーに対する幅広いサポートにより、お客様にとって最高の体験を提供できます。

Rookoutは、モニタリングとオブザーバビリティでGartnerのCoolベンダー2021に選出
(Rookuoutサイトへ移動します)

私たちの製品にはその主要ユースケースに次ぐ第二層のユースケースとして「プロファイリング」、「トレーシング」、「ライブログ管理」があることで、さらに個別の機能に落とし込んでみると他とはかなりの違いが出てきます。
例えば対応言語、これはRookoutが最も種類が多いです。ちょうど2週間前にGo言語を追加したばかりで現在C++対応の準備を進めています。

.Net Java Node.js Python Ruby Go

Rookout対応言語
(2021年11月現在:Rookoutサイトへ移動します)

そしてデプロイメント。他のどれよりも多くの種類のクラウドをサポートしています。真にクラウド中立なソリューションだといえるでしょう。

Rookoutは、開発者がデバッグするための専用スペースを作成し、開発者が使用する言語を意識せずに、誰もが同じ“インターフェイスエクスペリエンス”から結果を得ることができるWebIDEを提供します。

さらに、デバッグ作業をより効率化する追加機能が豊富なのもRookoutの特長です。「Source fetching」は、気になったログを吐いたオリジナルのコードを自動的に表示してくれます。「Watch」は、特定の変数を常時監視する機能で、いつでも任意の変数を「ウォッチ」できます。「Collaboration」は、複数の開発者が共同しながらより効率的にデバッグすることを可能にします。「Targets」は、収集したデータを自動的に他のプログラムに転送してくれるサービスです。

また、Rookoutはセキュリティ要件を含め、主要な法規制で求められるエンタープライズ要件のほぼすべてを満たしています。例えばセキュリティ規制でいえばSDC2 Type2、ISO27001、GDPRですね。

Data compliance and privacy

Rookoutはグローバルなセキュリティ基準や監査にも対応
(引用元:https://www.rookout.com/security-and-compliance)

もちろん、安定性の高さも重要です。私たちは年中無休・24時間のサポートを提供しており、インシデント応答時間は競合の中では最短です。

Rookout無料トライアルはこちら

富田:なるほど、Rookoutの市場優位性については理解できました。ただ、システムやアプリケーションを監視して異常を検知するソリューションは他にもあり、それに対して開発者はログツールやトレーシングツールを使って対処できるわけで、本番環境でデバッグするそもそもの必要性についてはあまり理解されていないかもしれません。そのあたりを改めて整理して教えていただけますか?

エリノア:そうですね、ではまずメトリックを収集する製品との違いについてご説明しましょう。端的に言うと、Rookoutを使えば稼働中のアプリのメモリから直接、瞬時にデバッグに役立つデータを収集できます。一方で、メトリック収集ツールはアプリの可用性やパフォーマンスをモニターするだけであり、なにか障害やパフォーマンス低下が生じたときにその原因を突き止め修正するために必要な情報は何も提供してくれません。

Rookout メトリック収集ツール ログ収集ツール トレーシングツール
ユースケース データ収集とデバッグのためのプラットフォーム アプリケーションの可用性の監視および管理 複数ソースから出力されたログを集約・可視化 アプリケーション層を横断した遅延およびエラー率の監視
利点 アプリケーションデータへの即時アクセス システムの状態監視 ログデータを集約管理 アプリケーションの異常をビジュアルに把握

Rookoutと各種運用ツールとの比較

それからログ収集ツールは複数のコードを横断してバラバラな場所にあるログ出力コマンドを集約して管理できる便利なものです。しかし、現在稼働中のアプリに新しくログ出力を動的に追加することはできません。障害の原因の特定も限られた情報の中からという困難なものになります。

また、Rookoutはトレーシングツールともまったく違うものです。トレーシングツールは、アプリケーション内部のクラスなどを横断して遅延やエラー率などの異常をモニターするものですが、そこで得られる情報は問題が起きた結果であり、その原因を探るためのヒントは提供されません。

Demo動画の一画面

Rookout's Integration with Datadog – Demo動画(YouTubeサイトへ移動します)
RookoutとAPM/ログ収集ツールは“協働”関係にある

富田:つまり適材適所ということで、Rookoutはとりわけソフトウェア障害や異常の原因を突き止め修正するために必要であり、他のソリューションでは替えがきかないということなんですね。

エリノア:はい、しかもそれが本番環境を停止せず、なおかつアプリケーションのパフォーマンスにも影響を及ぼさずにできるということです。なぜこれが可能かというと、Rookoutは独自のエージェント技術を使い、アプリケーションインスタンスのメモリ上にデバッグ用コマンドをバイトコードで、副作用なくインジェクト(注入)できるからなんです。これが「止まらないブレークポイント」を実現するテクノロジーであり、ログ出力を動的に操作できる新機能「ライブログ管理」が可能になる理由です。

富田:ライブログ管理とは何ですか?

エリノア:すでにデプロイしたコードに手を付けずに、任意のログ出力コマンドを任意のタイミングでオン・オフできる機能です。ログのレベルも、警告、エラー、デバッグ情報と、ボタン1つで即時に切り替えることができます。

Live Logger画面例

Live Logger画面例:エンジニアがログレベルを変更し、既存ログに動的なコンテキストベースのフィルタリングを適用

富田:それは強力ですね。製品の今後のロードマップについて教えて下さい。

エリノア:私たちは、現在のクラウドネイティブなデバッグ機能のさらなる強化、より効率的なデバッグのための先進的機能の追加、対応するテクノロジースタックの範囲拡大、そして新機能の開発(ライブログ管理、例外収集機能、機能プラグインなど)に現在フォーカスしています。ご期待ください。

富田:日本のお客様からよく頂く質問がいくつかありますのでお答え願えますか?

エリノア:もちろんです。

富田:まず、最初の質問は、「Rookoutはプログラムを停止させることなく変数の内容を取得できます。これにより本番環境でのデバッグが可能になるわけですが、これはどういう仕組みなのでしょうか?」

エリノア:止まらないブレークポイントを挿入すると、RookoutのSDKとエージェントが、バイトコード操作(およびそれに類する技術)でデータ収集用のインストラクションをアプリケーションコードに瞬時に追加します。ユーザー側の操作は実行中のアプリケーションに一切影響を与えないため、Rookoutは本番環境で稼働中のコードのデバッグに最適です。開発者にとっては、極めて高い信頼性や可用性が求められるシステム上でも効率的なトラブルシューティングを可能にしてくれるツールだといえるでしょう。

富田:Rookoutのお客様に最も使われている言語はなんですか?

エリノア:Rookoutは現在Python、Java、Node.js、Ruby、.NET、Go言語をサポートしていますが、市場で多く使われている言語には優先的に対応していく考えです。お客様に最も使われている言語は、今はJavaですね。

富田:Kubernetesのように複数のコンテナが稼働する環境で実行中のアプリにおいても有効に機能するのでしょうか?

エリノア:Rookoutはクラスタ内のコンテナに分散して稼働する複数のアプリケーションから、デバッグに必要なデータを、セキュリティを維持したまま瞬時に収集できます。デバッグ環境の整備に多大な時間をかける必要もありません。このトピックについてはブログ記事(英語)がありますのでぜひご覧ください。

Kubernetesデバッギングイメージ

Kubernetesデバッギングイメージ

富田:質問は以上です。今回のご説明で、Rookoutの市場での立ち位置と、実際にお客様にどのようにお役立ていただけるかのイメージが明確になりました。最後に、日本のお客様へのメッセージがあればぜひ。

エリノア:そうですね、私個人は、Rookoutの最大のセールスポイントはその使いやすさだと思っています。常にプレッシャーに晒されている開発者の皆さんにとって、必要なときに必要なデータに瞬時に、簡単にアクセスできるこのツールは、きっとお役に立てるはずです。ぜひトライアルをしてみてください。評価には何時間もかかりません。5分もあればその衝撃的な可能性に気づいていただけるでしょう。

富田:本日はお時間をいただき、ありがとうございました。

Rookout無料トライアルはこちら

エリノア・スウェリー(Elinor Swery):ROOKOUT LTD. パートナーシップ統括者兼ソリューションエンジニア
富田誠:株式会社サムライズ

ページのトップへ戻る