PaaSは、IaaS+ミドルウェアとは違うものだ
いまのPaaSはまだ、IaaSの上にWebLogic Serverのようなミドルウェアが載っているだけで、本当のPaaSとはいえないと、米オラクルReza Shafii氏がブログBuilding Blocksのエントリ「PaaS is not Middleware over IaaS」(PaaSはIaaSの上にミドルウェアを載せたものとは違う)で書いています。
早稲田大学大学院客員教授の丸山不二夫氏がツイッターで感想をつぶやいていたので気になって読んでみたのですが、丸山先生が指摘するように、PaaSの論点がうまく整理されていました。
Reza Shafii氏は、Oracle Public CludのJava Cloud Service componentプロダクトマネージャで、Java EE 7のスペックリードとのこと。
PaaSモデルの美点とはコントロール不要なところ
次のような一文で始まる、ブログのポイントを引用してみましょう。
When I use Google docs, I am not aware of what middleware components its implementation is using.
Google Docsを使うとき、どのミドルウェアで実装されているかということを気には掛けない。
SaaSのGoogle Docsを引き合いに出したあと、同じことがPaaSにも言えると。
With this understanding in mind, it is worth considering what the equivalent scenario is for a Platform as a Service (PaaS) solution.
これを理解したうえで、PaaSにも同じシナリオがいえると考えるのは重要なことだろう。
If I introduce a PaaS solution in my enterprise, the benefits from an IT organization should be exactly the same: The concern for the ownership and maintenance of the underlying middleware and infrastructure should be completely shifted from the IT organization to the PaaS provider.
もしも私がPaaSを自社に導入したなら、IT部門からみたベネフィットは(SaaSの例と)まったく同じことだ。つまり、ミドルウェア以下の調達やメンテナンス、インフラについての心配などは、IT部門からPaaSプロバイダへと完全に移ることになる。
これがPaaSの本来の姿であるとはいえ、現状のOracle Public Cloudが提供するJava Cloud Serviceでは、まだミドルウェアとしてのWebLogic ServerなどがIaaSの上にホスティングされている状態だと。
this model is to use an Infrastructure as a Service (IaaS) layer to host and manage middleware in a traditional manner. To be sure this model has benefits,
このモデルは、IaaSレイヤをミドルウェアのホストと管理に使うという以前のやり方だ。念のため言っておくと、このモデルにもメリットはある。
そのメリットは、柔軟性にある。しかし理想的なPaaSとは、IaaSを隠蔽し自動化されたものだと。
The Middleware over IaaS model today provides more flexibility to application administrators in that they have full control of the middleware runtime environment and its infrastructure knob.
現在のMiddleware over IaaS(IaaS上のミドルウェア上)モデルは、アプリケーション管理者に対して実行環境の全コントロールとインフラストラクチャの操作を与えるため、より多くの柔軟性を提供する。
However, the beauty of a PaaS model is that it promises to eliminate the need for the control of these parameters altogether. The ultimate PaaS solution would be able to automatically deduce the optimal runtime environment for an application and automatically adjust it as the needs of the application and its usage evolve.
けれども、PaaSモデルの美点とは、そうしたあらゆるパラメータのコントロールといったものを必要としない点にあるはずだ。究極のPaaSソリューションとは、アプリケーションのために自動的に最適な実行環境を推定し、アプリケーションやその条項に応じて自動的に調節されていくものだろう。
ミドルウェア+IaaS
Shafii氏によると、Oracle Public CloudのJava Cloud Serviceは、IaaSの上にミドルウェア、具体的にはWebLogic Serverなどを載せたものになって現在なっているとのこと。そしてIaaSレイヤの部分の設定も必要になるわけです。
これはJava Cloud Serviceに特有の話ではなく、ほかのクラウドでも似たような実装はあります。例えばオープンソースで実装が進んでいるPaaS基盤のCloud Foundryも、スケーラビリティを調整する機能は含まれていないため、いまのところユーザー自身でIaaS側を操作するか、負荷をモニタしてそれに応じてIaaS側を調整するオーケストレーションレイヤを別に作り込む必要があります。
一方で、何もしなくてもスケールを自動調整してくれるPaaSもあります。Google App EngineはIaaSをうまく隠蔽してスケーラブルです。Force.comもIaaSの設定がありませんが、その代わりガバナ制限というパフォーマンスに関わる制限があります。
企業向けのPaaSを考えると、ミドルウェア+IaaSという構成が一般的になると予想されます。というのも、現在の企業向けのプライベートクラウドの構成は仮想化を進化させたIaaSであることに加え、アプリケーションプラットフォームとしてミドルウェアを使うのが一般的であるため、それが進化すると必然的にミドルウェア+IaaSになってしまうと考えられるからです。
こうしたミドルウェア+IaaSというPaaSの現実から、PaaS以下は完全に隠蔽された理想的なPaaSへとさらに進化しなければならないとShafii氏は書いているわけです。
丸山先生も、次のような感想をつぶやいています。
要約をTweetして、ようやく、わかったのだが、彼がこのBlogで言いたかったことは、PaaSの理想の姿と、Middleware over IaaSからそれへの移行の必然性なんだ。それは、正しいビジョンだ。