プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

Tokyo Cloud Developers Meetup #02

Tokyo Cloud Developers Meetupに行ってきました。前回はAmazonでしたが今回のテーマは Google App EngineUSTREAM上にVIDEOが保存されていたのでリンク張ってます。

Building scalable, complex apps on App Engine (Fred Sauer さん)

  • List Properties
    • Property in the Datastore that has multiple values
    • An ordered list that maintains its order
    • Queried with an equals filter
  • Merge-join
    • A type of self-join query
    • Combine many equality tests into a single query
    • Determines Venn-diagram-like overlaps in sets

Kay A web framework on GAE (松尾貴史さん)

APPエンジンで動作するPythonフレームワーク
  • Djangoを真似て作っている
  • Appエンジン専用なので無駄なコードが入っていない
  • テンプレートエンジンはjinja2
  • i18n feature with babel
  • powerfull debuger, shell tools,
  • easy to start
Bundled software

Easy startのために色々バンドルしている

  • Werkzeug
  • Jinja2
  • babel
  • pytt
  • simplejson
Powerful Werkzeug debuger
  • 開発サーバでのみ動作する
  • 本番サーバだとメールが飛ぶ
  • 捕捉していないexceptionを検知するとその詳細をブラウザから見れる
  • その画面からメソッドの実行も可能(再現した情報でevalを実行している)
Powerful shell tools
  • webアプリと同じ環境でpython shell が動作する

Google App Engineかすばらしいと思える2つの理由 (山田大悟さん)

  • めんどくさいDBスキーマ設計から解放される
    • Pythonな脳みそのまま、追加修正が出来る
  • おまけ:世界一、使いやすい管理画面を世界一、簡単に作れる
    • Google Spreadsheet をつかって管理
    • GDATA APIを使ってJSONで簡単に使える

Wicket + AppEngine (矢野勉さん)

The Basic

下記2点を変更すると、WicketをGAEで利用できる

  • SessionStoreの交換
    • SecondLevelCacheSessionSotreをHttpSessionStoreに変更しないと動かない
    • Wicketの現在の実装では古いSessionの情報がDiskに保存される
    • Diskはハードウェアに依存するのでスケールしない
    • 変わりにBigTablememcachedを利用する
  • USE DEPLOYMENT MODE
    • web.xmlのconfigurationを変更してdeployment modeを使う
JDO & Wicket
  • エンティティをページにセットしない
  • オブジェクトのシリアライズに気をつける
  • DBにアクセスする時は、LoadableDetachableModelを利用する
GAE UserService & wicket-auth-role
  • wicket-auto-roles
    • WicketのOfficial sample (アプリケーションの実装例)

Slim3 (ひがやすをさん)

Slim3の特徴
  • Slim3 is a full-static MVC framework optimized for GAE/Java
  • TDD suport
    • GeneratorでControllerとテストクラスを自動生成できる
  • HOT reloading
    • サーバーの再起動なしに反映される
Slim3はGAEに最適化されている

MADE EASIRE TO USE RAILS ON GAE/J (安藤靖さん)

JRuby on Rails on GAE/J
  • やることが色々あって面倒くさい
  • ファイル上限数(1000個)にすぐ引っかかたり実用的ではない
JRails on GAE
  • アプリケーションテンプレートの仕組みを利用
  • jRubyをインストール後に下記を実行すればOK
jruby -S gem install v=2.3.2.rails
jruby -S gem install warbler
rails APPNAME -m http://gist.github.com/103256.txt
  • これでRAILS_ON_GAE PLUGINがインストールされる
  • JRuby on Railsの面倒な作業をほぼ全て自動化
  • Railsをjarでまとめて1ファイルにしたので1000個制限にもひっかからない
Problems
  • All in Oneなのでバージョンが全部固定される
  • ActiveSupportのソースを直接修正している

Quercus/PHP on GAE/J (小泉守義さん)

Quercus/PHPとは
GAE/Jへの対応状況
  • 5/5のResin-4.0.0リリースでGAE/Jが正式にサポート

(ResinはJavaアプリケーションサーバ)

Known problems
  • Quercus自体の問題
Summary
  • 頑張って手を入れないと使える状態ではない
  • まずはMediaWikiを動作させることができるようにしたい


GAEはPythonなので手をだしていませんでしたが、Javaがサポートされて一気に幅が広がりましたね。個人的には今回初めて知ったRainls on GAE Pluginを利用してみたいところです。