サムライズ > 製品&ソリューション > Rookout > ライブ・リモートデバッグとは?

ライブ・リモートデバッグとは?

    目次
  1. リモートデバッグとは
  2. ライブ・リモートデバッグとは?
  3. 稼働状態(ライブ)でのデバッグとは
  4. Rookout によるライブ・リモートデバッグとは

リモートデバッグとは

ライブ・リモートデバッグについて考える前に、リモートデバッグについて知っておく必要があります。
リモートデバッグとは、文字通り、リモートにある環境でデバッグ作業を行うことです。
開発者の手元にある環境で原因がわからない事象については、総合テスト環境や、場合によっては本番環境でもデバッグを行わざるを得ない場合があります。特に、本番環境でないと再現されない事象は多々あり、リモートデバッグはシステム開発には欠かせない手法の一つです。
とはいえ、操作そのものはリモートで行えるようになりましたが、デバッグ作業のプロセス自体は従来通りに、ブレークポイントごとにシステムを停止しながら行うものがほとんどです。
そこで生まれる課題としては、

そのような課題を解決するために生まれたのが、ライブ・リモートデバッグという考え方です。

ライブ・リモートデバッグとは?

一般的なリモートデバッグをさらに進化させた考え方で、こちらも文字通り、アプリケーションが稼働状態(ライブ)のまま、リモートデバッグを行える仕組みのことをライブ・リモートデバッグと呼びます。
もちろん、「リモート」とも表記されておりますので、手元の環境はもとより、テスト環境、ステージング環境、本番環境など、あらゆるライブ状態のアプリケーションをデバッグの対象とすることが可能である必要があります。

稼働状態(ライブ)でのデバッグとは

稼働状態のアプリケーションに影響をあたえることなくデバッグをおこなうことです。

通常のデバッグは、調査用のコードを実装する際や、実際の再現テストの際など、ツールや環境によって異なるものの、アプリケーションを停止する必要が発生します。
ライブデバッグでは、稼働中のアプリケーションを止めることなく開発者の要望に応じてブレークポイントにデバッグコードが仕掛けられ、動作検証が行われます。
動作検証においても、ブレークポイントで処理が停止されることなく必要な情報が取得され、管理サーバー等に保存されることにより、開発者はアプリケーションの状態に関係なく、デバッグ情報を分析することが可能になります。
つまりブレークポイントでの停止によって他の開発者やシステム利用者が影響をうけることがないデバッグ作業を意味します。

重要なポイントとしては、

  1. デバッグコードの実装にリビルド、リロードなどを必要としない
  2. ブレークポイントでの処理の停止が発生しない
  3. 特定の言語やIDEなどの制限がない

ことがあげられます。
このようなライブ・リモートデバッグを実現する手段があるでしょうか?
Rookout はある固有の技術により、それらの制限を解決し、ライブ・リモートデバッグを実現しています。

Rookout によるライブ・リモートデバッグとは

現状、リモートデバッグと呼ばれる技術は、単一の開発環境からステージング環境や本番環境につなぎこんで、おこないますが、Rookout は、デバッグ用のエージェント(制御プログラム)を各検証対象の環境に実装するだけで、そこで稼働するアプリケーションをデバッグ対象とすることができます。
独自のバイトコード操作技術が組み込まれたエージェントが、アプリケーションを止めることなく、メモリ上のバイナリコードに対して非停止型のブレークポイントを設定してデバッグ用のコードを実装します。
バイナリに直接書き込まれますので、ソースコードをリコンパイルしたり、再ディプロイを行う必要はまったくありません。

また、Rookout はデバッグコードからの情報を管理サーバー上で一括管理し、アプリケーションの動作とはまったく関係なく、管理サーバー上のデータをブラウザから参照することでトレース作業を行う仕組みを提供しています。
それによって、もう一つの課題であるブレークポイントごとに処理が停止するという現象を回避することを実現しました。
これらの最新技術によって、稼働中のアプリケーションを停止、あるいは本番環境のユーザや他の開発者のテスト作業に影響を与えることなく、デバッグ作業を行うことができる、ライブ・リモートデバッグをRookoutは実現しています。

さらに、エージェントを実装するだけで、そのアプリケーションがデバッグ対象となりますので、特定の環境やIDE、言語の制限をうけることなく、横断的なデバッグを行うことが可能です。

また、一般的なリモートデバッグツールと違って、エージェントや管理サーバーは開発者間で共有可能ですので、それぞれがデバッグ環境を有する必要がありません。
さらに、検出結果はコラボレーションツールを介して配布可能なので、数名の担当者が仕掛けたブレークポイントからの情報を開発者に提供するなどといった大規模開発でも効果的な運用を実現できます。

ライブ・リモートデバッグの実現により、開発者はもとより、開発プロジェクト全体がデバッグという不測の工程のリスクを最小限に抑えて、健全なシステムリリースを迎えることが可能になるのです。

Rookout によるライブ・リモートデバッグ構成図

無料ライセンスはこちら お問い合わせ
無料ライセンス お問い合わせ
ページのトップへ戻る