アプリケーションのモダナイゼーションで性能監視がいっそう難しく
ITシステムのモダナイゼーション(最新鋭化)でマルチクラウド化やマイクロサービス化が進んでいる。以前は1つのシステムが1つのサーバーで動いていた。後に3層アーキテクチャでデータ・処理・表示が分離され、より生産的かつ安定的に機能提供も稼働環境も分散化が進んできた。今やモダンなアプリケーションは大樹のように複雑に枝を伸ばすような形で複数のクラウドに渡り構成され、地理的に分散している。
そうなると、問題が起きたときにどこに原因があるのか突き止めるのが難しくなる。アプリケーションが予期せずダウンするとビジネスに与える悪影響は大きくなるため、アプリケーションの性能を監視し、最善の状態になるように調整する必要がある。そうした役割を担うのがAPM(アプリケーション性能管理またはアプリケーション性能監視)と呼ばれる製品やツールだ。
APMでは、アプリケーションのソースコードに手を加えることなく性能監視・可視化が実現できる。その基盤となる技術がBCI(バイトコードインストゥルメンテーション)であり、ランタイムに自動で監視・可視化のためのコード追加することが可能だ。これにより、開発者らがシステムの構成図を手書きでドキュメント化せずとも、APMを利用すれば、アプリケーションフローが自動的にリアルタイムで描画されるなど、便利な機能が多く、実際にデモを見ると驚くユーザーも多いことだろう。
開発者であれば、新機能を加えるときの影響を精査しテスト工数の削減をすることができる。アプリケーションがマイクロサービスで複雑に絡み合っていると、機能を追加あるいは変更することで悪影響が出ないか慎重に確認する必要がある。APMがあれば構成や性能の変化を素早く確認できるので、アプリケーション開発のサイクルを高速化することができる。
運用管理者であれば、例えば「新しいデータベースへのアクセスが発生した」など最新の稼働状況を視覚的に、かつ処理時間も含めて詳細に把握できるようになる。APMは障害や遅延が起きた場合の調査に役立ち、解決までの時間を短縮することができる。
シスコシステムズ合同会社 アップダイナミクス事業 APACサポートエンジニアマネージャー 山本直人氏は、APMを導入すると「システムで起きていることが視覚的にすぐに把握できるため、開発サイクルを迅速に回すことができるようになります」と話す。
モダンなアプリケーションの性能監視でカバーすべき範囲は拡大を続けている。アプリケーションのログだけではなく、システムのパフォーマンス、データの流れ、イベントやユーザー毎のアグリゲーション、ビジネスモデルとのマッピングまで広がり、そしてオペレーションの最適化や自動化も必要とされている。これらをどうカバーするかが、今後APMを含む監視ソリューションを選ぶポイントでもあると言える。
モダンなWebアプリケーションはもちろんビジネスやインフラまで幅広くカバー
アプリケーション構成の可視化や性能監視を行うツールは多種多様にあるなか、シスコではAppDynamicsが大きな柱となっている。AppDynamicsは2017年にシスコが買収した。それまでシスコはネットワーク機器ベンダーとしてネットワークの可視化や監視は当然カバーしていたが、AppDynamicsが加わることで対象をアプリケーションに広げる転機となった。
AppDynamicsは、APMに求められる幅広い監視範囲をカバーし、データの収集と可視化に強みがある。特にビジネスデータの可視化は、DXを推進する企業など、開発チームとビジネスチームが一体となって迅速なサービス展開が求められる場合には欠かせない機能だ。そのAppDynamicsが「シスコ製品やその他インフラのデータも含めた分析を提供することで、ビジネスからインフラまでを可視化する企業ITの中枢神経となる」と同社 アップダイナミクス事業 事業開発部 桂田祥吾氏は言う。この意味は大きい。
導入した企業では、アプリケーションの開発や運用だけではなく、ITがビジネス向上に関与していることをデータで可視化できるというメリットもある。一般的にITシステム運用を外部に委託していると稼働状況を自社で把握しにくくなるものだが、AppDynamicsのダッシュボードで、ビジネス部門もアプリケーションの状況が分かるようになるという。同社 アップダイナミクス事業 アドバイザリーセールスエンジニア 関屋信彦氏は「お客様自身が横断的にアプリケーションやシステムの稼働状況を把握できるようになり、お客様企業のビジネス部門もITに主体的に取り組めるようになってきています」と話す。
AppDynamicsのサポート対象は一般的なWebアプリケーションであれば、ほぼ網羅できると考えていいだろう。言語ならJava、.Net、Python、Node.js、C/C++、PHP、Goなど。他にもSAPを監視する機能やIBMのメインフレームもサポートしている。またクラウドベンダーとの連携も進めており、例えばAWSのCloudWatchやAzureのAzure Monitorのメトリクスを取り込むこともできる。詳しくは後述するが、シスコ製品との連携強化にも力を入れているところだ。