LAMP はインターネットでは主要なプラットフォームであるにも関わらず,現在のクラウドサービスで PaaS として提供されていないようだ。LAMP はクラウドコンピューティングの世界では不要なのだろうか?
Geva Perry 氏は Heroku,Gigaspace などの企業でアドバイザを務めている人物だ。氏は先日 “誰が LAMP クラウドを構築するのか (Who Will Build the LAMP Cloud?)” と問いかけたが,その後 LAMP PaaS は本当に必要なのか,という疑問を持っている。
Perry 氏の判断によれば,LAMP の P を PHP と解釈するならば特に,ほとんどのクラウドサービスにおいて PaaS としての LAMP が見落とされている。SalesForce と VMWare が最近,VMforce という PaaS サービスの提供を開始したが,対象としているのは Java 開発者だ。Microsoft が提供している .NET ベースの Azure には PHP プログラム機能が含まれているが,プラットフォーム全体が動作するのは Windows 上であって,LAMP の L に当たる Linux ではない。Heroku と Engine Yard がクラウドで提供しているのは Ruby on Rails である。LAMP に最も近いと思われるのは Google のクラウドサービスだが,Perry 氏によればそれも Java が主体のようだ。
Google も候補のひとつです。Google はすでに,PaaS サービスである Google App Engine で Java と Python をサポートしていますが,この Python は LAMP のもうひとつの P なのです。ただし App Engine は最近まで,スレッディングやデータ構造など Google 独自のプログラミングモデルを強要して開発者を囲い込もうとする浅慮なサービスである,と批判されていました。事実これが理由で,Google のプラットフォームには LAMP の M にあたる MySQL がないのです。最近になって Google は,エンタープライズ用にカスタマイズした App Engine のバージョンの提供を開始しました。こちらでは MySQL がサポートされていますが,中心となるのは LAMP ではなく Java のようです。
IaaS ソリューションで知られる Amazon は,プラットフォームとしてのスタック全体ではないものの,LAMP のすべてのコンポーネントを個別で提供している。Amazon ならば LAMP ベースの PaaS も提供可能かも知れない。
Makara は LAMP/PHP クラウドを提供している。しかし Simple Cloud API の作者であり,PHP 企業を称する Zend でマネージャであった Wil Sinclair 氏によれば,これは “製品 (product) であって,サービスではない” ,ということだ。氏は Rackspace の意見として,“PaaS クラウドを求める PHP 開発者には同社の Cloud Sites が適切な選択である” とも述べている。また Caucho Technology は自社の Quercus を Google GAE に移植することで,Java と統合された PHP の実行を実現している。
クラウド内で PHP や Python を実行するためのソリューションはいくつかあるが,PaaS プロダクトとしての LAMP は存在していないように思われる。数多くの Web アプリケーションで LAMP が利用されていることを一方で考えれば,これは実に不思議なことだ。そして疑問に思う,PaaS としての LAMP は本当に必要なのだろうか?
Kirill Sheynkman 氏は Perry 氏のポストに対するコメントで,状況の変化によって LAMP は活用の場を失いつつある,と意見を述べている。
そうそう。PHP は大人気です。そのとおり。MySQL のユーザは大勢います。しかし LAMP の “MP” の部分というのは,自分たちでホストを運用していた時代の産物であって,クラウドコンピューティングのためのものではありません。PHP に代わるアプリケーションサービスプラットフォームがあり,MySQL (あるいは SQL 一般) に代わるものがあるのです。それはエキサイティングで,活力に満ちて,新しい開発者コミュニティの声が反映されるものです。開発言語ならば Ruby,Scala,Python,永続化レイヤであれば Mongo,Couch,Cassandra,どれであれ,代わりとなるものがあるのです。MySQL を Oracle が所有したことも,マイナスにこそなれ,プラスには働かないでしょう。時代は変わりつつあり,アプリケーションをクラウドに配備しようとしている企業にとっては,スタックとしても,Azure や App Engine のようなターンキーサービスとしても,たくさんの魅力的な選択肢があると思います。
氏の意見に対して,James Urquhart 氏が別の ポスト で付け加えている。
Kirill の意見に共感した,と言わざるを得ません。何よりもまず,LAMP の LA の2つは,PaaS ユーザからは完全に隠されるべき要素なのです。開発者がそれを気にかける必要があるのでしょうか? (オペレーティングシステムの機能を呼び出すならば必要ですが,クラウドプロバイダがそんなことをさせると本当に思いますか?)
第2には彼も書いているとおり,LAMP の MP とはそもそも,自分たちの管理するシステム上で,コードやデータ操作に関する雑多な問題を処理するためのものだったのです。管理作業の主だった部分を肩代わりしてくれて,データストアとの入出力やデータのアクセスと操作を行うコードの作成が楽になって,アプリケーションが保証すべきサービスレベルの充足状況をコントロールしてくれる,そんな代替品が存在するのなら,プログラムスタックの "オープンソース度" なんて大して重要ではないでしょう?
Heroku の CEO である Byron Sebastian 氏は,クラウドコンピューティングでは 言語の問題はそれほど重要ではない,と考えている。
マーケットが Ruby プラットフォームと Java プラットフォームと PHP プラットフォームに収束するはずがありません。人々は企業アプリケーションや Twitter アプリケーションの構築など,やりたいことを言語とは関係なく希望するのです。 …
ソリューションは特定の言語に対するサービスではなく,クラウドアプリケーションプラットフォームとなっていくでしょう。
読者の意見はどうだろう? LAMP はクラウドコンピューティングと関連を持ち続けるだろうか? その P にあたる言語,PHP などについてはどうだろう? PHP は現在そうであるように,新たなプラットフォーム上でも存在感を保ち続けるのだろうか?