JENNIFER
アシスト技術者が見た Webシステムの運用/開発現場の実態
多くの企業が基幹システムなど業務遂行に必要不可欠なシステムをC/SからWebへと移行しています。Webシステムは、Webサーバ/アプリケーションサーバ/データベースサーバの3層構成が多く、問題が起きたときの切り分けが非常に煩雑です。そのため、なかなか問題を解決できず業務遂行に重大な影響を及ぼすことがあります。特にECサイトなどはアプリケーション遅延によって多大な機会損失を招く可能性もあります。本稿では、JENNIFERの技術担当者がお客様先で伺ったアプリケーション運用/開発における課題と解決策を5回に渡ってご紹介します。
|
|
ケーススタディ Vol.2
縦割りの管理体制と、人依存の調査が足かせになり、性能劣化が長期化
■基本情報 |
|
問題点は、情報共有の煩雑さと担当者のスキルレベルに依存した調査
アプリケーション/データベース/インフラごとに管理担当者が異なるため、多くのやりとりや調整が必要で情報共有が円滑に進まなかったそうです。また、スキルレベルによって調査時間や精度にも大きな差が発生していたとのこと。さらに、調査しても原因が特定できず、とりあえず再起動で復旧させることもあったため、運用部門はシステムの安定稼働/品質向上のために、情報収集をされていました。そこで、アシストのセミナーに参加したご担当者様が、よく似た現象に悩むユーザ事例を聴講され、アプリケーション性能管理(APM)ツールの導入を検討していただくことになりました。 |
|
<解決方法>アプリケーション内部情報の可視化と使いやすいコンソール
性能劣化の原因を容易に特定するには、アプリケーション性能管理(APM)ツールでアプリケーション内部の情報を可視化し、モニタリングすることが有効です。そこで、APMツールJENNIFERを検証環境に導入し、トランザクションやSQL/エラー情報など、アプリケーション内部の情報をモニタリングしていただきました。1つのコンソール画面上で可視化された情報を、担当者間で共有することで、問題発生時のやりとりがスムーズに進み、調査工数を大幅に削減しました。また、ログの分析、可視化がAPMツールで自動化されたことで、担当者の経験やスキルレベルに依存せず、業務の属人化防止につながりました。
アシスト技術者が実際に行った、原因特定までの4ステップ
|
STEP1:ヒープメモリの不足で発生するOut of Memoryをアラート検知
リソースやアプリケーション処理に関する約30項目に対してアラートを設定します。今回はJavaのヒープサイズに対してアラートを設定したところ、ヒープメモリの不足で発生する「Out of Memory」エラーを発見しました。またOut of Memory前後でFull GC(Garbage Collection)が頻繁に発生していることを確認しました。 |
|
STEP2:モニタリングデータから実行回数の多いアプリケーションを発見
エラー発生日時のアプリケーション統計情報を確認します。レスポンスが悪化した時間帯のアプリケーション毎のヒット数や応答時間を見ると、他の日付や時間帯と比較して、特定のアプリケーションの実行回数が多いことが分かりました。 |
|
STEP3:エラー情報から例外処理(Exception)が多数発生していることを確認
また、同時間帯のエラー情報を確認すると、例外処理(Exception)が多数発生しているアプリケーションが見つかりました。そのアプリケーションはSTEP2で、実行回数が多かったアプリケーションと一致しました。 |
|
STEP4:メモリリークの原因となるアプリケーションの改修を依頼
実行頻度とException情報を元に開発元へアプリケーションの調査を依頼したところ、メモリを解放しないというソースの不具合でメモリリークが発生し、性能劣化していたことが分かりました。不具合のある箇所を絞り込めていたので、修正/リリースはすぐに行われました。 |
|
使いやすいWebコンソールで情報を共有し、調査工数を大幅に削減
|
結果、障害発生から原因特定にかかった時間は約半日程度でした。その後も、1つのコンソール画面上で可視化された情報を担当者間で共有することにより、運用/開発担当者それぞれで発生していたやり取りや調整が円滑になりました。また担当者のスキルに依存していたログ分析は自動化され、調査工数を大幅に削減できました。さらに、分析したデータから、本来のアプリケーション処理能力を超えたトランザクションが発生していることが判明したため、今後の適切なサイジング計画にも活用していただくことになりました。 |
<効果>開発から運用までJENNIFERを活用し、品質向上と安定運用を実現
今回の事例は、社内でWebシステム開発に関連するプロジェクトのモデルケースになり、新規開発やレスポンスに不安のあるシステムにはJENNIFERを導入する体制が整えられました。特に、今回のような受入テストで見逃されやすいアプリケーション内部のエラーは、リリース前に必ず把握し修正することが重要との認識を強められ、開発/運用間の情報共有や連携手段に、JENNIFERを活用していただいています。お客様からも「システムの性能を見える化することで担当者間のムダなコミュニケーションが減り、”なんとなく”ではなく客観的かつ具体的な会話ができるようになった。操作性も良く、すぐに見える化できる点でとてもよい製品だと思う。」とのお言葉をいただきました。
|