Cloud Foundry Open Tour, Shanghai 1 : テクニカルセッション等

このエントリーをはてなブックマークに追加

InfoQの中国語版のメルマガで「Cloud Foundry云开发者大会」の参加者を募集していたので、語学的には多少不安があったが参加してきた。中国語で書くとなんかトーナメントみたいな印象を受けるのだが、英語での名称は「Cloud Foundry Open Tour,  Shanghai」となる。長くなるのでCloud Foundry自体のレポートと、中国クラウドの現状、中国の開発者におけるクラウドの認識の2本にわけて書くことにした。

一言で紹介すると、早い話PaaSクラウドであるCloudFoundry.comのサービス宣伝カンファレンスである。PaaSの概要や特性の解説に加え、スケーラブルなクラウドにおいて 有効な手法やアーキテクチャ、言語、データストレージに関して紹介をしてくれた。また企業ブースでは中国国内における代表的なクラウドプロバイダーが出展しており、担当者に直接話を聞くことができる稀有な機会ででもあった。

技術的な検証や調査に関しては別途記事を書くつもりなので、ここではカンファレンスの紹介と肌で直接感じた中国のクラウドシーン、開発者達に対する印象を書こうと思う。

▽ Cloud Foundryについて
最初CloudFoundryはVMWareが始めたPaaSであるが、はば広い業界の支持を受けて現在は一つのオープンソースプロジェクト CloudFoundry.orgとなっている。その思想の中心には「Avoid Lock-in」があり、標準技術やフレームワークを取り込むことによりPaaSにおけるプロバイダー固定問題(Lock-in)を回避できるようにすることを目標としている。
その、特徴としては下記の3つとなる。

  • インフラ層:  MicroCloud、PublicCloud、PrivateCloudに分類されるCloud Provider Interface
    わかりにくいのだが、CloudFoundry.comはPublicCloudの実装の一つであり、VMwareのCloud on a StickもMicroCloudの実装の一つであるため、それぞれ他のプロバイダーも出てくる可能性が高い
    ちなみにPrivateCloud(企業向けの非公開サーバーとか向け?)プロバイダはまだローンチしていないそうだ
  • DB層:  RabbitMQ、VMwareのvFabric、PostgreSQL、MySQL、MongoDB、RedisなどのOSS、3rdPartyによるApplication Service Interface
    簡単に言うとデータストアを中心としたミドルウェアサービスである、当然OracleやDB2、汎用系サービスなどもそのうち出てくるかもしれない
  • アプリケーション層:  Spring for Java、Ruby on RailsとSinatra、Node.js、Grails、Scala on Liftなどの豊富なフレームワークのサポート
    ちなみにPython、PHPなどもサポートに加えていくそうである

この特徴はそれぞれインフラ層、DB層、アプリケーション層をあらわしており、この3つの組み合わせにより一つのシステムを作り上げることになる。DB層とアプリケーション層の組み合わせについては細かく書かずともわかると思う。非常におもしろいのはインフラ層で、開発者はローカルのMicroCloudで開発を行った後にシームレスにPublicCloudへリリース、公開ができる。GoogleAppEngineも同様の仕組みを用意しているが、MicroCloudの場合はVMwareの実装(仮想化の応用)によりPublicCloudとほぼ同様のインフラを再現しているようである。開発者的に嬉しいのはGUIやWEBコンソールというマウス操作を必須としないコマンドラインツールの存在で、インスタンスの定義からリリース等までほぼ全てがコマンドラインから行える。

かなり端折ってしまったが、CloudFoundryの試みはクラウド開発時体を既存のPaaSにありがちなベンダー独自のKVSや、IaaSの独自VMなどの制約から開放するため、開発者はロックインを気にせずより自由にクラウド上での開発ができるようになる。極論になってしまうけど、既存のIaaS(AWSのEC2、Azure)やPaaS(GAE、AWSのSDB、Asure)すらもこの仕組みに取り込めちゃうなあとか思ったりとかする。

▽セッション
CFOT 2012 Shanghai 02私の参加したセッションは、下記の5つになる。

  1. 技术主题发言 (Mark Lucovsky)
    テクニカルセッション
  2. Cloud Foundry训练营 (Chris Richardson)
    Cloud Foundryの利用の流れ
  3. Node.js简介 (Patrick Chanezon)
    Node.jsの紹介とCloud Foundryでの利用について
  4. 让“数据库”在“云”中安家 – 为开发者量身定做数据库云平台 (Long Wang)
    仮想化からクラウドへの変遷と、クラウドの概要について
  5. Cloud Foundry中Ruby的应用 (Patrick Chanezon)
    RubyとCloud FoundryにおいてSinatraを利用する場合の紹介

テクニカルセッションでは、、CloudFoundryの技術バイスプレジデントであるMark LucovskyがCloudFoundryを活用した効果的なアーキテクチャについて講義を行った。非常に興味深くエキサイティングだったのは、Producer/Consumerモデルによる高度な拡張性の部分である。具体的には、UIをHTML5&JQueryで構築し、フロントエンドにRubyのSinatra、フロントエンドからnode.jsにより構築された内部APIサーバを建て、処理キューとしてKVSのRedisを挟み込んだ後にバックエンドで2種類のWorkerサーバーが稼働するという構成である。ミソとしてはnode.jsによるイベントモデルとキューの活用により処理の独立性を高くしておいて、ワーカー用の省メモリ(128MB)インスタンスを大量に並列可動させることにより同時処理数を稼げるぜ!ということのようである。

POJO in Actionの著者で、CloudFoundryのファウンダーであるJavaアーキテクトのChris RichardsonによるCloud Foundryの利用の説明。Java屋さんらしく、主にEclipseへ統合されたvmcツールを用いてMicroCloud、PublicCoudへのデプロイがシームレスに連携できまっせというデモが中心であった。

3つ目のGoogleのAPI EvangelistであるPatrick ChanezonによるNode.js简介、個人的には非常に熱いセッションだった。Blocking&MultithreadシステムとNon-Blocking&Eventedシステムについて処理の違いを説明した上で、具体例としてApacheとnginxの処理性能を掲示した後に、node.js&mongoDBシステムにおいて、EventEmmiterによるコールバックモデルがどれだけ効率的なのかをコード例を交えつつ説明していた。特にmongoDBからの戻り値を取らずにコールバックさせる部分は、非常におもしろかった。ただ、CloudFoundryなどのPaaSに向いてるというのはわかったが、テクニカルセッションの様にインスタンスを複数展開した場合とかとの関連については不明だった。Twitterを開いたときにGFWでブロックされて開けず苦笑したとき会場が笑いに包まれたのが印象深かった。

Long Wangによるセッションはそもそもクラウドって何よ?的な初心者向け話だったのと立ちっぱなしで疲れていたために失礼ながら途中退席した。

5つ目は再びPatrick ChanezonによるCloudFoundry上でのRubyアプリケーションの構築のセッション、node.jsほどではないがやはり熱いセッションでコンシューマソフトウェアの開発の現状から入りアジャイルなRubyのCloudFoundryインスタンスの立ち上げやデブロイや、トンネリングによるMongoDBやMysqlへの接続を披露していた。なお、この時は誰かにサポートしてもらったのか無事にGFWを回避していたw

▽ 参加者特典とか
なお、無料にもかかわらず参加者には、

  • Micro Cloud Foundry のスタートアップツールの入った2GBのUSBメモリ
  • ビュッフェ形式の昼食バウチャー
  • Cloud Foundry Tシャツ
  • 第3世代iPadやポータブルHDDが当たる抽選券

などが振る舞われるという有り得ないほど至れり尽くせりのカンファレンスだった。まあ申し込み時点では特典のこととか知らなかったわけだけど。 クラウド業界バブリーっすね。
中国クラウドについては次へ続く

▽ ちょっとだけあとがき
ここ一年は色々な事があり、その状況変化に適応することだけで精神的にいっぱいで殆どブログ等書かず開発者の絞りカスみたいになりはて、実際同僚にもそのように思われていたのだけど、ようやく余裕ができてきたので4月からブログや技術レポートを再開することにした。
知識や技術の面で至らずに、誤ったことを記述する場合もあるかと思うが、ご批判、ご指摘等いただければ可能な限り迅速にコメントや記事にて反映させたいと思う。