米AppDynamicsは2008年に設立したソフトベンダー。アプリケーションパフォーマンス管理ソフト「AppDynamics Pro」の開発・販売を手掛ける。設立後4年で300社が導入したという。2012年6月以降、新日鉄ソリューションズや丸紅情報システムズと販売代理店契約を結び、本格的に日本市場への参入を始めた。同製品についてVice PresidentのPete Abrams氏に聞いた。

(聞き手は矢口 竜太郎=日経SYSTEMS


アプリケーションパフォーマンス管理とは耳慣れないジャンルの製品だ。

米AppDynamics Vice President, International Sales Pete Abrams氏
[画像のクリックで拡大表示]

 主な機能は二つある。システムの性能監視の機能と、障害時に問題箇所を特定する機能だ。詳しく説明しよう。

 今、企業のシステムは、複数のアプリケーションが複雑にからみ合って動作している。SOA(サービス指向アーキテクチャ)に基づくシステムや、部分的にクラウドサービスを取り入れたシステムなどでは特にそうだ。システム全体のパフォーマンスの状況を透過的に管理する仕組みが必要になってきた。それがAppDynamicsである。

 AppDynamicsでは、各システムで動作するアプリケーションの状況を監視する。例えば、あるアプリケーションからデータベースに毎分どれだけのコール数があるか、といった情報をシステム構成図上で把握できる。応答時間が通常より時間がかかっているようであれば、その部分に警告マークが表示される。画面上でその部分をドリルダウンすれば、コードレベルで問題箇所を特定できる。

最近の運用管理ソフトであれば、システムをアプリケーションレベルで監視できる。他社の運用管理ソフトと何が違うのか。

 運用管理ソフトは、もともとがハードリソースの監視を目的に作られた。具体的にはサーバーの死活状況、CPU使用率、ネットワークの状況などを把握するためのものだ。それらをベースに機能を拡張してきたはずだ。

 AppDynamicsは違う。初めからアプリケーションのパフォーマンスを監視するために作られている。そのため使い勝手がよい。例えば、「サーバーA」「サーバーB」といった単位ではなく、「ログイン」「購入完了」といった、ユーザーのアクションに基づくサービスの単位で動作状況を監視できる。しかも、それらのサービスがどのように関係しているかを自動的に作図する機能がある。この機能はユーザーに好評だ。

サービス単位のシステム構成図を自動的に作成できるのはなぜか。

 動作中のアプリケーションモジュールを基に作図する。自動で検知するのは「Servlet」「Web Services」「EJB」「JMS」などだ。これらの関係性を図にする。ただし、このモジュールの動作は「ログイン」のことである、といった定義を自動的にするのは無理で、担当者の手作業になる。

問題があるサービスは、どのように判別するのか。

 「ベースライン」という考え方に基づいて算出する。ベースラインは、特定のアクセスに対する1時間ごとの平均応答時間のことを指す。このベースラインよりも短いか同等の場合は「NORMAL」を表示し、長ければ「WARNING」を、大幅に長くなっている場合は「CRITICAL」を表示する。WARNINGやCRITICALを表示する基準はパーセンテージまたは標準偏差で設定できる。

 リアルタイムで各サービスのパフォーマンスを把握できるほか、定期的にスナップショットを取っておくことができる。つまり、もし何か問題が起きたときは、以前の時点までさかのぼって、どこに問題があったかを検証できる。

 これまでは、本番環境とは別に検証用の環境を用意し、問題を再現させなければ本当の原因を特定することができなかった。

ITエンジニアの仕事の進め方は、この製品によって変わるか。

 今、開発担当者と運用担当者が密に連携し合う「DevOps」という考え方が注目されている。AppDynamicsを使えば、DevOpsを推進するのに役立つだろう。

 例えば、開発時の機能テストにAppDynamicsを使う。そうすれば、どのようなアクセスが増えると、どの部分がボトルネックになりやすいか、といった情報がわかる。こうした情報を運用担当者に引き継げば、保守・運用作業が効率的に進められるはずだ。