最初から専用サーバを用意できる層へのWebアプリ構築なら、ウチはJava(ときどきRuby)を使う方針です。しかしウチがターゲットにしている客層では、どうしてもロリポップでPHP、というスタートが多くなる。
ここで言うローリスクとは、主にサーバコストにおいての意味です。
PHPを使って小さく立ち上げたサービスが成長したとき、性能の観点から、「あ~Javaで作り直してぇ~」と思うときありますよね?
いきなりZendは高いし。。
Quercus - PHPのJava実装(クエルクス?)
mod_phpと比較して4倍の性能が出るようです。
アプリケーションサーバはResinを選択するのが良さそうですが有償。
ただ、本当に4倍の性能がでるのなら、サーバ増設コストよりはかなりお得感がある。
TomcatとGlassFish(無償)でも、quercus.war(サイトの下のDownload)をデプロイして動作することは確認しました。
※機能制限があるかどうかは未調査
実行速度が上がるのはもちろん嬉しいですが、
Javaアプリケーションサーバならではのキャッシュやコネクションプール/トランザクションがワンパックで使えるのがとても大きい。
さらに、ボトルネックになっているコードだけJavaで書き直すとかも簡単にできそうです。
さらにさらに、それでも足りなくなってサーバ増設>クラスタリングなんていう輝かしい未来がくれば、Javaのスケールアウト力は絶大。
さらにさらにさらに、Google App Engine用のQuercusも公開されてる!クラウドにもノッちゃうかもっ。
夢みすぎたので現状に戻る。
PHPでのパフォーマンスチューニングだと、APCやMemcacheとかでなんとかしていくのがテッパンだと思いますが、
「それでも限界、でもサーバコストが・・・」という微妙なときに、検討してみると良いのではないでしょうか。
実にウチのお客さま向けのソリューションのような気がしてきたので、ちょっと本気で検証する。まずは、武田ソフトが絶大な信頼を寄せる(が、全くヒットする気配もない)PHPフレームワーク、AkelosをTomcatにデプロイしてみよう。次回へ続く(はず、期待しないで)。