アプリケーションのモダナイゼーションで性能監視がいっそう難しく
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のメトリクスを取り込むこともできる。詳しくは後述するが、シスコ製品との連携強化にも力を入れているところだ。
直感的なマップ、ネットワーク機器のポートまで詳細に調査可能
実際にAppDynamicsの具体的な姿を見ていこう。AppDynamicsでまず確認できるのが、アプリケーション全体のフローマップだろう。ユーザーがアプリケーションにアクセスし、どのサーバーを経由し、どんな外部サービスと接続しているか直感的なマップが表示される。加えて経路ごとに使用したプロトコルと処理時間も示されている。この処理時間については、ベースラインラーニングにより通常状態を常に学習しており、異常値と判断するための閾値を動的に自動設定する。すなわち四半期毎、月毎、週毎といったトレンドを学習する。また、何かのイベントで大きな遅延が発生するなど異常な状態が発生するとアラートを発呼し、自動的にスナップショットを取得する。スナップショットからは、時間がかかった箇所をメソッドやソースコードの行のレベルで特定が可能だ。
他にもトランザクションの処理シーケンスを表示できる。どのような順番でデータベースやリソースにアクセスしているかが分かるものだ。関屋氏は「複雑なトランザクションの内部の動きを正確に把握できます。開発時のデバッグ等にも使えます」と胸を張る。
先に桂田氏が言及したように、シスコ製品との連携により真の「エンドツーエンド」の監視が可能となっている。もともとシスコが得意とするネットワーク領域にAppDynamicsでアプリケーション領域が加わり、網羅性を高めている。AppDynamicsはデータセンター用のスイッチ(Cisco Nexusシリーズ)の管理ソフトウェアであるNexus Insightsと連携でき、スイッチのASICが出すハードウェアレベルのテレメトリも合わせて障害時の原因分析を行うことができる。例えばスイッチのどれかのポートがダウンしたとする。こうしたネットワーク障害がどのアプリケーションに影響を与えているのかをSREが把握することも可能だ。あるいは逆にアプリケーションでネットワークの遅延を疑ったら、どのスイッチのどのポートで通信しているのかまで即座に細かく調べることができる。
さらにシスコは2020年9月にネットワークインテリジェンスのThousandEyesを買収することで、インターネットトラフィックも含めて把握できるようになった。ThousandEyesは世界中のインターネットの経路にエージェントを配置しており、あらゆる場所からのインターネットのパフォーマンスを把握できている。DNS、ISP、パブリッククラウドなどインターネットを経由する処理までも調査ができる。どこを経由しようとエンドツーエンドで分かるようになっているのがAppDynamicsの強さだ。
こうした広範な監視ができることで、ハイブリッドクラウドやマルチクラウドにおけるワークロードの最適化も実現可能となる。遅延を見てどこにリソースを増強したらいいかの判断、逆にリソースに余裕があるならコスト最適化の判断をCisco Intersight Workload Optimizerとの連携で実現する。
ハイブリッド環境でミッションクリティカルなシステムを持つ企業が導入
導入企業はあらゆる業種で多岐にわたり、グローバルでは3000社を超える企業が本番環境で導入している。Nasdaq、Okta、Alaska Airlinesなどは有名だが、シスコ自身もWebexや自社の受注管理システムで利用している。特にミッションクリティカルなサービスを提供している企業が目立つ。例えばオンラインチケット販売など、少しでも遅延が起こるとビジネスに影響が出てしまう企業からは特に頼りにされている。
シスコとAppDynamicsは、コンテナやKubernetesといったクラウドネイティブなテクノロジーにも積極的だ。シスコはCNCF(Cloud Native Computing Foundation)メンバーのなかでも最上位となるPlatinumに名を連ねている。桂田氏は「Kubernetesのクラスタエージェントや オープンテレメトリーへの対応などクラウドネイティブなアーキテクチャの機能追加には力を入れています」と話す。
最後にそれぞれの推し機能を尋ねてみると、山本氏はトランザクションスナップショットを挙げた。「エラーや遅延ごとに、障害が起きたデータフローやログ等が全て自動で収集され、何が起きていたかをあとで確認できるため、障害時に非常に強力なツールとなります」と話す。なお山本氏はAppDynamicsのほぼ全てのソースコードへアクセスが可能で、必要に応じて自ら書き換えてビルドすることもできる。内部構成を詳細に把握している日本人サポートエンジニアがいる点は心強い。
関屋氏はカスタムダッシュボードと網羅性を挙げた。「ダッシュボードはそれぞれの使う人の目線に合わせてカスタマイズできます。あとカバーできる範囲が広いので網羅的に監視ができるところが強みです。多角的な視点で見ることができます」と話す。
もしAppDynamicsを試したいなら、おすすめはシスコのDevNetだ。基本的な解説がドキュメントや動画で用意されている。ハンズオンで手を動かしたいなら、ウィザード形式で試せるLearning LabやSandboxもある。過去のウェビナー(日本語)の録画や日本向けイベントの録画も公開されている。
アプリケーションのモダナイゼーションをするなら管理や監視もモダナイズしていく必要がある。APMのなかでAppDynamicsは心強いツールとなりそうだ。