6月10日(水)、東京のリクルートアネックス1にて、クラウドコンピューティングを扱うデベロッパ・エンジニアのカジュアルなイベント「Tokyo Cloud」の2回目、「Tokyo Cloud Developers Meetup #02」が開催されました。
今回はGoogle App Engineがテーマです。また、スペシャルゲストとしてGoogleデベロッパーアドボケイトのFred Sauerさんの発表もあります。
早速、その模様をお届けしたいと思います。
Building scalable,complex apps on App Engine
スペシャルゲスト:Fred Sauerさん
GAEでのアプリケーション開発は、それなりに浸透してきましたがさらにスケールさせるにはこんな方法があるというのをマイクロブログ(Twitterやjaiku的なもの)を例に説明しました。
List Propertyを使用して複数へのBigTableでスケールさせる方法、実データとインデックスは別に持つなどの話しをRDBとBigTableで実際にサンプルを紹介し、さらにSQLとGQLでの問い合わせの違いなどにも触れました。
また、BigTableの実装として内部でソートしてあるためmerge-joinをつかっているなどの内部の話しも聞けました。
kay A web framework on GAE
kayという、GAE/Python専用のフレームワークの紹介でした。
既存のフレームワークをGAE上で使用すると、何かしらの設定や準備が必要になってしまうため、専用のフレームワークを使用したほうが良いという事で作成されています。基本はDjangoの設計に似せているためDjangoを使用していた人はすぐに使えるようになるとの事でした。
さらにデバッガが強力だという事をデモも含めて説明し、ライブラリも同梱のためすぐにGAEで開始できるのが利点のようです。
また、名前である「kay」は産まれてくる子供と同じ名前にしたそうです。これで開発に対するモチベーションも維持できるという話でした。最後にGoogle WaveでのRobotのデモをする予定でしたがトラブルのために動きませんでした。
Google App Engineがすばらしいと思える2つの理由
山田大悟さん(Python)
自分で実際にGAE上で作成した「konomi」というアプリケーションの紹介しました。
その経験を元に、とくにGAEがすばらしいと思う点を2点挙げていました。
- めんどくさい環境構築から開放される
- DBスキーマ設定から開放される
さらに世界一簡単に出来る管理画面としてGoogleスプレッドシートを、JSON形式で呼び出す方法を紹介していました。これだとGDATA API不要でもできますし、簡単な管理なら十分だという話でした。
そして「(GAEは)クラウドとかスケーラビリティで語られる事がおおいけど、デベロッパにやさしいっていう点も大事だよね」とのメッセージを大学生が卒研で使ったりする事例と一緒に伝えていました。
また、リクルートとしての立場から見ると、サービスのプラットフォームとしてGAEを使うかどうかはまだ議論にあがるほどにもなっていないので、みんなで超Coolな実績を作っていきましょうとのことです。
Wicket+AppEngine
JavaのフレームワークであるWicketをAppEngineで使うための方法を紹介しました。
GAE上で動かすときのはまりポイントやWicketの認証とUserServiceを合わせて利用する方法など、既存フレームワークを動かすのもそれほど大変ではない印象でした。
GAE/Jの利点として、今まではJavaが動くレンタルサーバなどがあまりなく、海外のサーバを有償で借りるなどとしていましたが、GAE/Jの登場により、ほぼ無料で使えるようになったのでJavaプログラマには朗報だとのことです。
Slim3
Slim3の紹介をしました。
Slim3の最大のポイントとして以下の3点を挙げてました。
- TDDサポート
- TypeSafeQuery
- HotReloading
TypeSafeQueryのデモではJDOをそのまま使用するとTypeSafeではないので、リファクタリングなどに弱いのですがSlim3のTypeSafeQueryを使用すると解消さていました。
また、HotReloadingのデモでは開発環境ではサーバの再起動無しに変更が見事に反映されていました。
さらに、Slim3ならではの強みは?という質問に「他のフレームワークの場合、提供されている機能がGAEで動くかは実際に試してみないとわからいが、Slim3はGAEで動く機能を作っている。GAEでは使用できない機能は一切なく、最適化されてるからおすすめ!!」とのことでした。
GAE/JでRails
GAE/Jの「J」はJavaではなくJVMだとの主張からGAE/JでRails動かすお話しを実際に作成したサイトのデモを動かして説明していました。
JRubyで動かしてるのですが、動くようになるための準備が色々めんどくさいので簡単に動くようにしていました。Rails2.3から公開されたRails Application Templateを使用してGAE用の処理を自動で生成出来るようにしています。
大変なところとして、全部いっぺんに入れちゃってるのでバージョンの管理が大変な事を上ていました。また、Railsを使う利点は?という問いには「純粋にRailsが好きで使えるから」という答でした。
Quercus/PHP on GAE/J
こちらはJVMで動くPHPの実装であるQuercusを使うデモでした。Quercusの新しいバージョンではもうGAEに正式対応したのですが、 文字コードまわりが大変なのと、PHPのアプリケーションはファイルアクセスするものが多いのでそこの対応が必要のようです。現在VFSを使用してラッパを作っていてgithubに公開していました。
最後に
今回はGAEのお話しがメインでしたがGoogleのエンジニアも多数参加しており、BigTableの内部実装の話しも聞けるなど大変濃い内容でした。またJavaが動くことによりJVM上で動くスクリプト言語を動かせるため、多種多様な言語の発表もありました。
GAEには制限も多いのですがGAE/P、GAE/J両方で専用のフレームワークが出てきているなど、今後一層盛り上がることが予測できるイベントだったと思います。