マイクロサービス向けのオートアプリケーションパフォーマンス管理 (APM) ソリューションのプロバイダであるInstanaは、Dynamic Graphと呼ばれる同社の基盤となるシステムモデルへのGUIベースのアクセスを提供するInstana Context Guideを発表した。
Instanaのソリューションは、Azureなどのクラウドインフラストラクチャや、KubernetesとDockerなどのオーケストレーションインフラストラクチャ、アプリケーションサービスとDevOpsプロセスを含む、アプリケーションサービスコンポーネントとアプリケーションインフラストラクチャを検出する。Instanaは、アプリケーションテクノロジスタックの各部分に監視センサーを展開し、人による構成やアプリケーションの再起動を必要とせずに、アプリケーション要求を追跡する。このソリューションは、アプリケーションとインフラストラクチャの変更を検出し、モデルを調整して、変更とパフォーマンスへの影響を視覚化する。
その自動化の一部は、システムの変更に応じて更新される、依存関係、個々のインフラストラクチャヘルスプロファイル、構成情報、およびパフォーマンス情報を含むuber-modelであるDynamic Graphによって有効になる。Context Guideのリリースは、ユーザが自分でDynamic Graphにアクセスし、アプリケーションとインフラストラクチャの視覚化をナビゲートできることを意味する。Dynamic Graphは、Instanaの自動化されたAIを利用した機能のコンポーネントであり、個々のエンティティ、構成データ、パフォーマンスメトリック、依存関係、および変更ログのインベントリだ。これは、コンポーネントの物理的および論理的な依存関係を理解するアプリケーションのモデルである。コンポーネントは、ホスト、OS、JVM、Cassandraノード、MySQLなどのアプリケーションの一部である。Graphには、トレース、アプリケーション、サービス、クラスタ、テーブルスペースなどの論理コンポーネントも含まれる。これにより、サービス、サービス間の関係、およびアプリケーション全体に関する状況コンテキストが提供される。
InfoQは、Instanaのテクニカルディレクター兼APMストラテジストであるChris Farrell氏とリリースについて話した:
InfoQ: Instanaはどのようにしてアプリケーションサービスとインフラストラクチャコンポーネントを検出しますか?
Farrell氏: Instanaには、ホストへのプロセスとして、Dockerホスト上のDockerコンテナとして、またはKubernetes上のDaemonSetとしてデプロイされる単一のエージェントがあります。Instanaエージェントは、既知のプロセスとテクノロジーシグネチャを自動的かつ継続的に検索します。監視可能なテクノロジーが特定されると、Instanaエージェントは適切なセンサー (テクノロジー固有のモニタリングコード) をダウンロードし、そのテクノロジーに自動的に接続し、それ以外の構成を必要とせずにモニタリングを開始します。
InfoQ: 監視センサーをどのように展開し、ユーザはセンサーが必要な場所に展開されていることをどのように確認できますか?
Farrell氏: Instanaセンサーは、Instanaエージェントがアクセスできるリモートリポジトリに保存されます。エージェントがサポートされているテクノロジーを特定すると、適切なセンサーがリポジトリから取得され、構成され、自動的に適用されます。
InfoQ: センサーの展開でアプリケーションを再起動する必要がないのはなぜですか?
Farrell氏: Instanaセンサーは、インフラストラクチャコンポーネントからのメトリックを監視するために使用されます。Dockerコンテナなどの多くのテクノロジーは動的接続を可能にし、Instanaは可能な限り標準インターフェースを利用します。サービス間でリクエストをトレースする場合、サービスがJava、Python、またはPHPで記述されている場合は、サービスを再起動する必要はありません。サポートされている他のすべての言語ランタイムでは、再起動が必要です。Instanaがサポートするテクノロジーの95%は、構成の変更や再起動を必要としません。
InfoQ: アプリケーションサービスとインフラストラクチャコンポーネントが変更または削除された場合、どのように対応しますか?
Farrell氏: 変更はセンサー (およびエージェント) によってリアルタイムで検出され、他のすべてのシステム (ダッシュボード、視覚化、Context Guide、インシデントなど) にフィードするDynamic Graphに記録されます。更新、インスタンス化、削除などの時刻はすべてキャプチャされて保存されるため、後日、アプリケーションの進行状況を再生することができます。
InfoQ: 「uber-model」とはどういう意味ですか?
Farrell氏: Dynamic Graphには、構成データ、依存関係、パフォーマンス情報、およびヘルスインジケーターが含まれています。マッピングや視覚化からトレースや自動化された根本原因分析まで、Instanaの他のコンポーネントを推進します。これはオーバーレイ (上に置かれる) モデルであるため、uber-modelというフレーズです。
InfoQ: このリリース以前は、ユーザはInstanaを使用してマイクロサービス全体で何が起こっているかをどのように視覚化していましたか?
Farrell氏: Instanaには、サービスの相互作用とインフラストラクチャのマップが常に含まれていました。サービスマップでは、ユーザはすべてのサービス、または特定のアプリケーションやプロセスに関連付けられたサービスのみを表示できます。特定のサービスを調べるとき、インフラストラクチャコンポーネントを調べる方法がありました。InstanaがContext Guideをリリースする前は、ユーザは、コンポーネントの依存関係をナビゲートするためにInstanaが提供した視覚化との対話に制限されていました。Context Guideを使用すると、ユーザはDynamic Graph (すべての依存関係) を完全に操作できます。
InfoQ: これら新機能の開発者のユースケースは何ですか?
Farrell氏: 開発者にとって、アプリケーションまたはサービスがプロダクション環境にどのようにデプロイされたかを理解することは、検証にとって重要です。たとえば、アプリケーションまたはサービスがプロダクション環境にデプロイされている場合、特定の構成アーティファクトが適切に更新されておらず、プロダクション環境が非プロダクション環境のサービスと相互作用している可能性があります。これは、パフォーマンスと安定性に影響を与える可能性があり、さらに悪いことに、法的な影響を与える可能性があります。Context Guideを使用すると、開発者はアプリケーションまたはサービスが適切にデプロイされていることをすばやく簡単に確認できます。開発者のもう1つの一般的なユースケースは、アプリケーションとサービスのプロダクションサポートです。多くの場合、最も難しいプロダクション環境の問題のみが開発者にエスカレーションされます。これが発生した場合、開発者は、トラブルシューティング作業を開始するために、プロダクションのデプロイメントにすばやく向ける方法が必要です。Context Guideは、数回クリックするだけですぐにオリエンテーションを提供し、依存するコンポーネントとサービスのKPIを最前線に持ってくることでトラブルシューティングプロセスを支援します。
InfoQ: これら新機能の使用は、(クラウド) アーキテクトの作業方法にどのように影響しますか?
Farrell氏: Graphをナビゲートする機能の優れた点の1つは、実際の相互作用に100%基づいているため、アーキテクトがデプロイメントが理論モデルにどのように適合するか、どこに適合しないかを確認できることです。使用されているテクノロジーの性質や開発者がそれらを実装した方法に関係なく、違いは簡単に識別、分離し、受け入れるか、修正するための手順を実行します。
InfoQ: Dynamic GraphとContext Guideは、チームが展開する新機能の価値を測定するのにどのように役立ちますか?
Farrell氏: Instanaの機能の1つは、展開時に即座にフィードバックを提供する機能です。その能力は、Dynamic Graphの存在と、エージェントとセンサーが数秒で変化を識別するという事実から生まれています。その機能は残ります。Context Guideの機能により、チームは新しく更新されたサービスに集中し、その特定のサービスのアップストリームへの影響を画面上で確認できるようになりました。つまり、最新の更新によって、どのアプリケーションがポジティブまたはネガティブの影響を受けているかを即座に確認できます。
InstanaとContext Guideの詳細についてはこちらをご覧ください。