現在SpringSourceが主として開発するサーバ製品は二つある。Spring tc ServerとSpring dm Serverである。それぞれを一言で説明すると、Spring tc Serverは稼働しているWebアプリケーションのモニタリングができるサーバ、Spring dm ServerはWebアプリケーションを完全なモジュールに分割できるサーバだ。今回から2回にわたり、この2つのサーバを紹介していこう。
実行メソッドや、SQLまで見られるSpring tc Server
Spring tc Server (以下tc Server) はApache Tomcat(以下Tomcat)をベースにした製品だ。ちなみにSpringSourceが所属するVMWareは今年の3月からTomcatExpert.comというサイトがオープンしているが、運営はSpringSourceである。Tomcatの内部構造を知り尽くしたエキスパートが開発を進め、よりエンタープライズ向けの機能を搭載したサーバがtc Serverである。アプリケーションの一斉デプロイや、テンプレートとして環境がコピーできるようになっているなど、いわゆる仮想マシン環境や、クラウド環境での利用を想定されている点も特徴だ。
エディション
現在発表されているtc Serverには3つのエディションがある。Developer Edition、Standard Edition、Spring Editionである。各エディションについて、簡単に比較してみよう。
- Developer Editionは無償版であるが、tc Serverの特徴とも言うべきSpring Insightが導入されているエディションである。また、Developer EditionはSpring Tool Suiteに同梱されているため、すぐに使い始められる
- Standard Editionは、Developer Editionに加え、モニタリングやアプリケーション管理のための製品であるHyperic HQが同梱されたエディションである。本番環境での利用では1CPU あたりUS $500である
- Spring Editionは、Standard Editionに加え、Spring 3.0もしくはSpring 2.5を同梱しており、よりSpringを利用したアプリケーションを移行しやすい形式にした製品である。サーバ内にSpringが埋め込まれていることでパフォーマンスを認識しやすくし、リソースの利用を改善させ、実行中のコンテナを制御できるようにしている。開発者の利用は無償だが、本番環境での利用では1CPU あたり US $750である
Spring tc Serverを試す
今回紹介するのはDeveloper Editionである。Developer Editionを試してみたい場合は下記の通りにダウンロードするとよいだろう。
1. SpringSource Download Centerから " SpringSource tc Server Developer Edition"を選択
2. 必要事項を記入する。
3. (既にリリースされているが、)tc Server Developper Edition Preview Downloadよりダウンロードする。
ダウンロードし、解凍すると、下記のような構成で展開される。
中にあるtomcat-6.0.25.A-RELEASEがTomcat本体である。tc Serverでは設定された環境一式をインスタンスと呼ぶ。予め作成されているインスタンスを基に、試しにtc Serverを起動してみよう。コンソールを開き、解凍したspringsource-tc-server-developerフォルダ(以下TC_HOME)に移動し、起動する。
$ cd TC_HOME
$ ./tcruntime-ctl.bat spring-insight-instance run
うまく起動できれば、自マシンの8080ポートにTomcatが起動しているので、ブラウザから見てみよう。
「Spring Insight Dashboard」というリンクがある。クリックすると、「Spring Insight Dashboard」が開かれ、現在起動しているアプリケーションのトレース画面が表示される。
このグラフの縦軸は、その時間帯にアクセスのあったエンドポイントの累積、横軸が時間で、リアルタイムに更新される。試しに一番左端の値をクリックすると、アクセスの有ったエンドポイントの一覧と、トレースログ、そしてパフォーマンスが表示される。
このトレースログの面白い所はツリー状に表示されるところだ。このトレースログは、DBへのアクセスの場合は、発行されたSQLが表示される。筆者は試しにSpring Rooのファーストステップとしてリファレンスが公開されているten-minutesのWebアプリケーションを作成し、tc Server上の「spring-insight-instance」にデプロイし、確認した。ten-minitesの作成手順は、こちらのWebサイトにて公開されている。また本連載でもSpring Rooは既に取り上げているので、参考にしていただけると幸いである。
デプロイ方法はspring-insight-instance配下にwebappsフォルダがあるので、そこにWARファイルを配置後、tc Serverを再起動すればよい。再起動は下記のコマンドである。
$ cd TC_HOME
$ ./tcruntime-ctl.bat spring-insight-instance stop
$ ./tcruntime-ctl.bat spring-insight-instance run
再起動後、http://localhost:8080/ten-minites/にアクセスし、適当にTimerを作成し、Spring Insight Dashboardを開いてみよう。ten-minitesにあるエンドポイントに対するアクセスも記録され、DBへのアクセスが有った場合、そのトランザクションや、発行されたSQLの内容まで可視化されている。
* * *
先日SpringSourceの所属する企業であるVMWareと、Salesfoceから、VMForceというJavaクラウドサービスが発表された。このクラウドサービスではtc Serverが利用されると発表された。これまでアプリケーションのデバッグの用途にログ出力が活用されてきた。しかしクラウド環境ではネットワークを超えた環境でのデバックとなるため、ログ解析では若干心もとない。クラウド環境にデプロイされたアプリケーションのデバッグ用途にはSpring Insightのようなリアルタイムモニタリングツールの方が、障害を見つける上で役立つのではないだろうか?
執筆者紹介
近藤 寛喜(KONDO Hiroki) - チェンジビジョン 開発部
前職からSpringFrameworkを自ら拡張するくらい使っていたエンジニア。転職後は主にPCで動作するツールの開発を行っている。Eclipseベースのツール開発を行っていたため、Spring DMに興味を持ち、Spring DMの扱い方など、モジュールベース開発を広めている。今回の企画ではSpring dm ServerやSpring tc Server、STSを担当。