|
どうする? J2EEシステムの運用管理
知らぬ間に性能劣化するWebアプリケーション |
J2EEアプリケーションの顧客満足度や収益性について、ビジネスオーナーは十分な配慮を払っているだろうか。開発が終わったからといって気を抜くと、運用フェイズに入ってから思わぬ性能劣化に見舞われることが多い。J2EEシステム運用管理のエキスパート2名に、ユーザーの直面する問題を語ってもらった。詳細なホワイトペーパがこちらからもダウンロードできる。 |
ある収益モデルに基づいたビジネスを遂行するためにWebアプリケーションを構築するわけだが、当初の目的を満たさないシステムが多いという。必要な機能は網羅できたが、運用を始めたら性能が出ない……、J2EEシステムでよく耳にする話だ。
|
エンピレックス 副社長 山岡英明氏 |
|
まず直面する問題は、リリース直前の負荷テストだとエンピレックス 副社長 山岡英明氏は指摘する。「当社が最終段階で実施した総合テストでは、性能要求を満たしていたJ2EEシステムは、ただの1つもなかった。個々の機能は問題なくても、システム全体で応答時間が要件を満たしていなければ顧客満足は得られない。かつてのクライアント/サーバ時代の感覚で性能評価を考えていると、J2EEでは落とし穴となるだろう」。
仮に運用開始時点で十分な性能を確保できても、それで安心して数年間運用できるわけではない点が、J2EEシステムのやっかいなところだ。ビジネスモデルの変更に伴って新たなアプリケーションが追加されることもあれば、バックエンドのデータベースに別のシステムからの負荷が掛かっているかもしれない。性能は運用中に緩やかに劣化していき、その兆候は早い段階から出ているのだが、それを問題として認識できないことが多いという。
|
アイ・ティ・フロンティア
システム営業統轄本部 xWeb事業本部 マーケティング推進部 リーダー
木村和之氏 |
|
「性能劣化を監視する場合、外からの計測だけでは不十分」と、アイ・ティ・フロンティア システム営業統轄本部 xWeb事業本部 マーケティング推進部
リーダー 木村和之氏は語る。「Java仮想マシン内で何が起こっているかを外から見ることは困難で、それが多くの性能障害への対処に非常に時間がかかる要因となっている」。新しい機能が次々と登場するJ2EEでは、技術者のスキルにもばらつきがあり、将来ボトルネックとなるような低品質のコードが紛れ込んでいることも少なくないようだ。「運用フェイズになると、そのコードを書いた開発者との関係は切れてしまうものだ。従って、ソースコードがなくても短時間かつ、最小限の運用スタッフでしかもアプリケーションを停止せずに性能障害の発生原因を調査するためのソリューションが必要となる」。
木村氏は運用フェイズでは、さらにプロアクティブな発想を持ち込むべきだと主張する。「性能問題は、起きてほしくないときに起きるもの。オンラインシステムが最も負荷を受けている時間帯は、同時にビジネスがそのアプリケーションによって最も高い効果をあげている時でもあり、障害回復に最も時間をかけられない時間帯でもある。だからこそ、性能障害がないときからアプリケーション内部の性能を定常計測し、その予兆に対して適切なアラートやアクションを定義できるプロセスを用意することが重要になってくる」。プロアクティブな運用管理とは、Webアプリケーションを稼働させている企業自身が、運用プロセスをビジネス上の重要なリスク管理の一環として認識し、性能の維持や運用がうまく行っている段階から性能障害への対応プロセスを整備維持していくことだという。
クライアント/サーバからWebアプリケーションへと移行したことで、システムの運用管理を根本から見直す必要があるというのが山岡氏、木村氏の共通認識であるようだ。しかし、複雑度が格段に増したJ2EEシステムで、何をもって運用管理のポリシーとしたらよいのか。山岡氏は、「極言すれば、障害を特定できることだ。当社のデータを取ってみると、Webアプリケーションの問題は40%がアプリケーションサーバ、30%がデータベースで起きている。問題特定に要する時間は、すなわちビジネスの損失につながるから、いち早く障害個所を特定できることが、運用管理の第1の目的となる」と述べた。これに加えて木村氏は、「障害を切り分けたところで、それをどうやって解決するかが次のミッション。システム内部を監視するプロアクティブな運用管理プロセスを構築してほしい」と結んだ。
|