インフラ更改時の大きな負担「テストのコスト」をどう下げる? 「自動化」と「スピーディな障害解析」が、かなり効く

Oracle Java & Developers編集部
2014-06-24 10:00:00
  • このエントリーをはてなブックマークに追加

インフラ更改などに伴う課題として多くの企業を悩ませているのが、アプリケーション基盤のテストにかかるコストだ。オラクルのテスト自動化などのソリューションを活用することで、この負担を大きく減らすことができる。

インフラ更改時のテストは極力"自動化"したい! ただし、これまでの手法では「コスト」がかかりすぎる…

日本オラクル Fusion Middleware事業統括本部 シニアマネジャーの新井庸介氏
日本オラクル Fusion Middleware事業統括本部 シニアマネジャーの新井庸介氏

 高い性能と可用性、先進技術へのいち早い対応などが評価され、長年にわたって国内外の多くの企業から支持を得てきたOracle WebLogic Serverだが、近年は周辺ソフトウェアの拡充により、アプリケーション基盤も含めたアプリケーション・ライフサイクル管理を大幅に効率化することが可能になった。「それにより、さまざまなフェーズで効率化やコスト削減を図ることが可能になっています」と日本オラクルの新井庸介氏(Fusion Middleware事業統括本部 シニアマネジャー)は語る。

 具体的にどのようなフェーズで効率化やコスト削減を実現できるのか? 今回は一例として、企業のアプリケーション・ライフサイクルの中でしばしば発生する「アプリケーション基盤のテスト」に焦点を当て、Oracle WebLogic Serverと周辺ツールの活用効果を紹介する。

テスト自動化のためのテスト・スクリプトの作成/メンテナンスが大きな負担に

 企業システムでは、さまざまなフェーズでアプリケーション基盤のテストが必要になる。例えば、次のようなフェーズだ。

  • ミドルウェア/データベースのバージョンアップや構成変更、パッチ適用
  • OSのバージョンアップやパッチ適用
  • ハードウェアの更改

 これらのフェーズでは、旧環境で動作していたアプリケーションが、新環境でも同様に正しく動作するかといった検証を、テスト環境を用いて実施する。その作業を効率化するために、自動化を図っている企業は多いだろう。対象がWebアプリケーションなら、テスト自動化ツールを使い、ユーザーのアプリケーション操作を模したテスト・スクリプトを作成し、テスト・データを用意したうえで、ツールによって自動テストを行うといった流れになる。

 ただし、これによって確かにテストの実施作業は自動化できるが、「テスト・スクリプトの作成」や「テスト・データの準備」までは自動化されないため、そこで多くの手間がかかることが大きな課題となっている。

 「今日、テストの実行を自動化するツールは登場していますが、テスト・スクリプトの作成やテスト・データの準備は依然として手作業で行われるケースが多く、そこで多くのコストが発生し、テストの実施を難しくしています。本番環境と同じ利用状況やシステム負荷を再現するテスト・スクリプトの作成は難しく、また作成したスクリプトやテスト・データは、テスト資産として常に本番環境の仕様変更に同期させていかなければなりません。これらにかかる手作業を極限まで減らせなければ、真の意味でテストを自動化したとは言えないのではないでしょうか」(新井氏)

本番環境のアプリケーション稼働状況をキャプチャし、テスト環境でそのまま再現──Oracle Real User Experience InsightとOracle Application Replay Pack

 この問題を解決すべく、オラクルがOracle WebLogic Serverとともに提供しているソリューションが、システム管理ツール「Oracle Enterprise Manager」のオプションとして提供される「Oracle Real User Experience Insight(RUEI)」と「Oracle Application Replay Pack」である。

 RUEIは、稼働中の本番環境に負荷をかけずに、ユーザーのアクセスによって発生するシステム・トランザクションをキャプチャするためのツールだ。本番環境には一切手を加えることなく、つまりエージェントなどのソフトウェアをインストールしたり、アプリケーション・コードを追加したりすることなく、本番環境の稼働状況を記録することができる。

 一方、RUEIでキャプチャした本番環境のトランザクションをテスト環境で再生(リプレイ)し、新旧環境の性能を比較したり、レスポンス内容の相違を確認したりするためのツールがOracle Application Replay Packである。

 このRUEIとOracle Application Replay Packによるテスト自動化の効果を、新井氏は次のように説明する。

 「メリットの1つは、単にテストを自動化できるだけでなく、その仕組みを低い初期コストで導入できるという点です。テスト・スクリプトの作成が不要なため、初回からテストのコストを大幅に下げられるうえ、本番環境には何も変更を加える必要がないので、導入の敷居も低いのです。

 もう1つ強調しておきたいメリットは、テスト自動化の仕組みをメンテナンスしていくコストも低く抑えられるということです。テスト・スクリプトを自作する場合、本番環境の仕様変更に合わせてテスト・スクリプトも修正していかなければ、すぐに陳腐化してしまいます。RUEIとOracle Application Replay Packなら、そうした作業がそもそも不要であるため、使えば使うほど導入効果が高まるわけです」

 RUEIで本番環境の稼働状況をキャプチャするための主な準備作業は、ネットワークのミラーポートにRUEIが動作するマシンを接続することだけだ。後はOracle Enterprise Managerの操作画面上でキャプチャを開始すれば、トランザクションの記録がスタートする。RUEIは、ユーザーからのリクエストだけでなく、それに対する応答内容も記録する。

Oracle Application Replay Packで新旧環境の動作結果を比較。Oracle WebLogic ServerとOracle Databaseの組み合わせなら、SQLの実行順序まで正確に再現

 Oracle Application Replay Packによる本番トランザクションのリプレイも、同じくOracle Enterprise Manager上で行う。「リプレイの仕方は細かく設定でき、例えばシミュレートするクライアント数を指定したり、リプレイのスケジュールを設定したりといったことが可能です」と新井氏は説明する。

 リプレイの方式には、非同期モードと同期モードの2種類がある。このうち非同期モードでは、クライアントからのHTTPリクエストを再現し、データベース呼び出しの実行順序までは厳密に意識せずにトランザクションを発生させる。このモードは、どのアプリケーション・サーバ/データベースでも利用できる。

 それに対して、同期モードはOracle WebLogic ServerとOracle Databaseの組み合わせで使える特別なモードだ。このモードでは、HTTPリクエストと、それに関連するデータベース呼び出しの順序まで正確に守ってトランザクションを実行する。それにより、本番環境の稼働負荷を極めて正確に再現することが可能になる。

 また、本番環境とテスト環境の応答内容を比較した「相違統計」をとることもできる。取得できる相違統計の種類は、HTTPステータス・コードの400番台で返されるアクセス・エラーを統計する「アクセス相違」、サーバ・サイドの処理エラー(HTTPステータス・コードの500番台で返されるエラー)を統計する「サーバ相違」、ネットワーク関連のエラーを統計する「ネットワーク相違」、本番環境とテスト環境の応答内容を比較して統計する「「コンテンツ相違」の4種類となっている。

 これらのテストの結果は、グラフィカルなレポートとして出力される。このレポートでは、平均応答時間、メトリック、本番環境とテスト環境の性能の比較結果、テスト環境で時間がかかっている処理などを人目で確認することができる。

Oracle Real User Experience Insightは運用フェーズでも威力を発揮。エンドユーザー視点によるシステムの性能監視が可能に

 ところで、RUEIの活用場面は、アプリケーション基盤のテスト・フェーズだけではない。同ツールは、運用フェーズでも大きな威力を発揮する。

 これまで、企業システムの監視では、死活監視やリソース監視が主に行われ、アプリケーションを利用するエンドユーザーが実際に体感している"遅延"や"エラーの発生"といった現象を把握するのは難しかった。

 RUEIを使うと、キャプチャしたトランザクション情報を基に、システムの稼働状況をリアルタイムに監視/分析することができる。ユーザーが実際に体感しているレスポンスやエラーの状況を把握し、必要に応じてシステム管理者にアラートを出すといったことが可能だ。つまり、システムを利用するユーザーの視点でレスポンスを監視し、クレームが寄せられる前に異常を検知して、プロアクティブに対処できるのである。アプリケーション・ライフサイクル管理のさまざまなフェーズで無駄なく活用できるという点も、RUIEの大きな導入メリットなのである。

  • コメント(1件)
#1 8181   2014-07-07 22:11:14
けっこう参考になった