InfoQは最近、Derek Collison氏にインタビューした。氏はVMwareのCTOであり、同社のクラウドシステムのチーフアーキテクトでもある。Cloud Foundryと呼ばれる同社の新しいオープンソースPaaSについて話を聞いた。
InfoQ: Cloud Foundryをどのようにアーキテクトに説明しますか。CIOへはどうのように説明しますか。
Derek: Cloud FoundryはVMwareのオープンなPaasです。複数の言語とフレームワークをサポートする、クラウドプラットフォームとアプリケーションサービスのための選択肢です。IaaSが持つ一般的な課題を抽象化することで開発者がアプリケーションやサービスに注力できるように設計された分散システムです。システム自体が自動的に障害復旧を行います。また、各レベルでの水平的なスケーリングができるように設計されており、同じコードベースで巨大なデータセンターでもひとつのラップトップ上でも動かせます。
システムは無停止で利用者とアプリケーションを止めることなく拡張できます。下部のインフラと分離されているので、システムはどんなIaaSレイヤでも簡単に動かせます。ユーザの操作は複数のクラウドターゲットを横断しても一貫性を保持し、操作自体は誰でも実装できるHTTP RESTを基にしています。オープンソースなので、自分のインフラ上で動かしたり、Cloud Foundryのアーキテクチャやコードで動作しているサービスの利用に興味があるアーキテクトやCIOにとって扱いやすくなりました。
すべてのアプリケーションに負荷分散と高可用性を提供します。どんな問題で停止したアプリケーションでも自動で再起動します。ルータープールを使うことでリアルタイムで複数のインスタンスが負荷分散します。スケールアップもスケールダウンも高速で効率的なので、開発者やリリースエンジニアはスケーリングと高可用性に対してたくさんの選択肢を持てます。サービスへのアクセスやアプリケーションとサービスのバインドはシンプルなので複数の設計パターンが実現できます。アプリケーションとサービスレベルのセキュリティはマルチテナント、プロセス、ファイルシステム、ユーザレベルでの分離から、ハイパーバイザレベルでの分離まで網羅しています。
InfoQ: パブリッククラウド対プライベートクラウドの議論が続いています。Cloud Foundryはこの議論にどのように関わると思いますか。議論を進めますか。それとも、関係ありませんか。
Derek: 関係はあると思います。様々な状況や要求に応じてこのふたつの選択肢のどちらかを選ぶのだと思います。Cloud Foundryの場合はどちらを選ぶにしろ、開発者の生産性やビジネスの敏捷性や意思決定に大きな影響はありません。これはいいことだと思います。Cloud Foundryを使ったパブリッククラウドに配置されたアプリケーションはほとんどそのまま、プライベートなインスタンス上で利用できます。Cloud Foundryのようなパブリックサービスの利用から、このシステムを社内に置いて利用する方法など、私たちの開発者の権利に対する誓いは顧客に今日の市場で利用できるあらゆる選択肢を提供します。
ローンチイベントのとき、私たちは同じアプリケーションを、独自のVSphere技術の上に構築したCloud Foundryと、Amazon上のCloud Foundryの両方に配置しました。Amazonへの配置はパートナーであるRightScaleのサポートを受けました。さらに、同じアプリケーションをラップトップ上のプライベートなインスタンスにも配置しました。サービスの観点から見ればどの環境も全く同じです。コマンドもシステムのコードもアプリケーションのコードも全く変わりません。
なので、プライベートであれパブリックであれ、Cloud Foundryは開発者の生産性とビジネスの敏捷性を加速することができると思います。
InfoQ: Cloud Foundryに対するコミュニティの最大の貢献はされるのが望ましいですか。
Derek: コミュニティがこのシステムを自分たちのニーズに合わせて積極的に利用しようとするのに応じて、断続的な貢献が生まれると思います。Cloud Foundryはある意味、PaaSのパーソナライズを実現します。まずは言語とフレームワークと提供されるサービスについて貢献がされると思います。私たちはこれら分野では要求をしっかりと引き出していますので、この傾向は続くと思います。ほとんどがサービスやフレームワークを安定させるツールやマネジメントに対する貢献で、長期にわたってなされるだろうと思います。
InfoQ: Google App Engineはすべての標準ライブラリを利用できるわけではありません。Cloud Foundryにはソフトウエアの配置に関して、どのような制限がありますか。完全に制御できるインフラ上でもできないことはなんですか。
Derek: 現代のアプリケーションやサービス、ライブラリが変更することなくCloud Foundry上で使えるようにしようと努力してきました。早い段階から"Cloud Ready"をアプリケーションの書き直しが必要ない環境にしようとしてきたのです。
不可能なこともあります。80番ポートに対するバインドやアプリケーションのコンテナの外のディレクトリに対する書き込みなどです。また、リソースの利用状況も注意深く監視しています。しかし、標準ライブラリやデータベースアクセスに使うモダンなフレームワーク、また、例えばRedisを使ったキャッシングなどは、ほとんど変更することなしにクラウド上で実行できるようにするべきだと考えています。
InfoQ: 先日発生したAWSの障害がアーキテクトのクラウドソリューションに対する見方にどのように影響を与えると思いますか。Cloud Foundryが提供する移植性は特定のホスティングプロバイダとの結びつきを弱めてくれますか。
Derek: AWSは私たちすべてが学び、利益を享受したクラウドソリューションの先駆者です。クラウドの時代は始まったばかりなので、すべての人が学ばなければならない厳しい教訓もあると思います。Cloud Foundryはパブリックな配置、プライベートな配置、アプリケーションフレームワーク、ランタイム、そしてサービスというような観点からの選択肢を提供するオープンなPaaSを明確に定義するためのVMwareの試みなのです。
Choice is good.