本日、Azure Spring Cloud に New Relic One のパフォーマンス監視が統合されたことを発表します。
この 18 か月間、Microsoft は多くの企業のお客様と協力して、そのシナリオについて学んできました。このようなお客様の多くは、何千もの Spring Boot アプリケーションをオンプレミスのデータセンターで実行しています。これらのアプリケーションをクラウドに移行する際には、開発者が使い慣れたツールを使って、アプリケーション パフォーマンス モニタリング (APM) 用のインストルメント化を行う必要があります。また、New Relic One のようなエージェントを使用してエンドツーエンドの監視を行えるよう事前にインストルメント化されているデスクトップやモバイル アプリケーションの継続性を確保する必要があります。Azure Spring Cloud に New Relic One が統合されたことで、作業を続けながら、Spring Boot アプリケーションを New Relic One で簡単にインストルメント化することができるようになりました。
今日、Spring Boot アプリケーションをデプロイするほとんどの組織は、共通の目標を持っています。それは、自動化とアプリケーション パフォーマンス監視を使用して、事実上あらゆるスケールで Spring Boot アプリケーションを実行するメリットを最大化するということです。Azure Spring Cloud は、コンテナー化されたワークロードの管理に関連する作業の多くを抽象化するのに優れていますが、これらのアプリケーションのパフォーマンスと正常性を監視および維持したり、問題が発生したときにトラブルシューティングを行ったりすることは、特に組織がこれらのアプリケーションを大規模にデプロイする場合には、困難を伴います。お客様が引き続き正しく New Relic One を使用できるように、Microsoft はお客様の Microsoft Azure Spring Cloud インスタンス間で New Relic One を使用してインストルメント化、モニタリング、監視を行う機能を統合およびアップグレードしました。まず、迅速かつ簡単にインストルメンテーションを設定し、次にアプリケーション、Java 仮想マシン (JVM)、トランザクションなどのパフォーマンスと正常性を分析し、さらにパフォーマンスの問題を特定してトラブルシューティングを行うことができます。
Spring Boot アプリケーションのインストルメント化
"プロビジョニング" 自動化を実行すると、Terraform または ARM Template を使用してお客様が作成およびデプロイした新しいアプリケーションのインストルメント化と監視を完全に自動で行うことができます。また、Azure CLI を使用してオンデマンドで実行することで、より高い柔軟性と制御が可能になります。
az spring-cloud app update --name customers-service --jvm-options="-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar" --env NEW_RELIC_APP_NAME=customers-service NEW_RELIC_LICENSE_KEY=<key>
Spring Boot アプリケーションのパフォーマンスを調べる
インストルメント化後、New Relic One ポータルを通じて Spring Boot アプリケーションのパフォーマンスを調査することができます。またサービス マップを通じて、アプリケーションの動作を確認することができます。たとえば、以下のスクリーンショットでは、よく使用される Petclinic プロジェクトのすべてのアプリケーションが表示されています。
図 1: よく使用されるプロジェクト Petclinic のすべてのアプリケーションが表示されています。
お客様のアプリケーションのパフォーマンスは、New Relic One ポータルでアプリケーションごとに移動して監視することができます。たとえば、次のスクリーンショットでは、customers-service で処理されたトランザクション、そのスループット、エラー率が表示されています。
図 2: customers-service で処理されたトランザクション、そのスループット、エラー率が表示されています。
New Relic One ポータルの [JVM] ブレードに移動することで、基盤となる Java Virtual Machines をより詳しく確認することができます。たとえば、次のスクリーンショットでは、すべての customers-service アプリケーション インスタンスの Java 仮想マシンの数が表示されています。
図 3: すべての customers-service アプリケーション インスタンスの Java 仮想マシンの数が表示されています。
New Relic One ポータルの [Databases] ブレードに移動することで、データベース トランザクションを含むアプリケーションの依存関係を分析することができます。たとえば、次のスクリーンショットでは、customers-service のすべてのデータベース トランザクションが表示されています。
図 4:customers-service のすべてのデータベース トランザクションが表示されています。
New Relic One Thread Profiler を通じて各スレッドのスタック トレースを確認することで、Java メソッドで使用された時間を把握することができます。これにより、ほとんどの時間が費やされているアプリケーションの "ホット" な機能に関する分析情報が得られます。たとえば、次のスクリーンショットでは、customers-service アプリケーション内のスレッドのスタック トレースが表示されています。
図 5: customers-service 内のスレッドのスタック トレースが表示されています。
エンドユーザーに価値を提供する
一度インストルメント化してしまえば、複数の Spring Boot アプリケーション インスタンスにスケールアウトしても、新しいアプリケーション インスタンスは自動的に監視されます。エージェントのインストールとメンテナンスの管理に費やす時間が減り、より多くのエネルギーをインシデントの迅速な特定と解決に費やすことができます。Azure Spring Cloud サービスは、エージェントを定期的かつ適切に更新します。
Spring Boot アプリケーション インスタンスの表示
New Relic One Navigator では、お客様のアプリケーション インスタンスの運用正常性を一目で確認することができます。このお客様の資産に関する鳥瞰ビューは自動的に利用できます。構成は必要ありません。Navigator により、お客様が定義したアラートに基づいてインスタンスが密度の高いハニカム ビューに信号機の色で直感的に表示されるので、膨大な数のインスタンスを簡単に確認することができます。アラートが発生しているインスタンスをすばやく特定し、根本的な原因を明らかにするとともに、依存関係のあるシステムがどのような影響を受けているかを確認することができます。
例として、次の Navigator ビューでは、Azure Spring Cloud インスタンス全体でお客様のインスタンスがグループ化されており、マルチリージョン デプロイでの運用をすばやく比較することができます。インスタンスをグループ化してフィルタリングすることで、問題をすばやく特定できます。また、任意のインスタンスをドリルダウンして、そのアクティビティの概要や違反を、主要なメトリクスやカスタム属性を含むメタデータとともに表示することができます。
図 6: Navigator ビューで Azure Spring Cloud インスタンス間でインスタンスがグループ化されている様子を示しています。
Spring Boot アプリケーション インスタンスの異常を検出する
New Relic Lookout には、通常の動作から逸脱しているお客様のインスタンスが、最近のシグナル変化の深刻度が色で示され、指標となるシグナルの大きさに比例したサイズの円で視覚化されるため、直感的に確認できます。Lookout は、直近 5 分間のシグナルを過去 1 時間のものと自動的に比較します。
同様に、Azure Kubernetes Service や Virtual Machines などの Azure サービスにおける Java アプリケーションの監視にも New Relic One を使用することができます。
今すぐソリューションを構築して監視する
Azure Spring Cloud は、Microsoft と VMware が共同で作成、運用、サポートします。これは Spring Boot アプリケーション向けのフル マネージド サービスで、インフラストラクチャと Spring Cloud ミドルウェア管理にかかる手間が省かれるため、お客様はビジネス ロジックの作成に集中することができ、また Azure に動的スケーリング、パッチ、セキュリティ、コンプライアンス、高可用性の管理を任せることができます。いくつかのステップで、Azure Spring Cloud のプロビジョニング、アプリケーションの作成、デプロイ、Spring Boot アプリケーションのスケーリングを行い、数分で監視を開始できます。今後も、開発者にとって使いやすく、エンタープライズ対応の機能を Azure Spring Cloud に提供していきます。
Azure Spring Cloud を使用した、インパクトのあるソリューションを構築する方法をぜひお聞かせください。今すぐ始めましょう: クイックスタートを使用して、Spring アプリケーションを Azure Spring Cloud にデプロイできます。
リソース
- New Relic の発表に関するブログで比較を読む。
- GitHub で Microsoft Learn モジュールまたはマイペースで進められるワークショップを使用する方法について確認する。
- Azure Spring Cloud でソリューションを実装する方法についての詳細情報。
- Azure Spring Cloud での New Relic Java エージェントについての詳細情報。
- Spring Cloud で構築された Spring Petclinic の頒布バージョンのデプロイ。
- 企業のベスト プラクティスを活用した Spring Boot アプリケーションのデプロイ - Azure Spring Cloud 参照アーキテクチャ。
- Spring Boot、Spring Cloud、Tomcat アプリケーションを Azure Spring Cloud に移行する。
- Azure サービスと連携するための Spring アプリケーションの接続。
- 質問や疑問などがありましたら、メールでお問い合わせください。