Java Cloud Meetingに参加した

昨日はJava Cloud Meeting(2010 in Kansai)に参加してきた。Javaをメインにクラウドを取り上げるイベントだったので、Google App Engine(GAE)だけではなくAmazon Web Services(AWS)に関する話題も多く、質疑応答も活発で熱気にあふれたイベントとなった。一口にクラウドと言ってもバズワード化しているので色々あるけれど、AWSとGAEの両方を自分の手で動かしてみて、その長所と短所を理解した上で最適な方を選ぶべきという指摘は尤もだと思う。以下、講演より参考になった点を抜粋してみた。

Google App EngineはTDDに向いているんだぜ」「AppEngineとソーシャルアプリ」(ひがやすをさん)

  • テスト駆動開発(TDD)では開発リズムが重要。GAEではKVSのDataStoreを使うため、従来のRDBのようなテーブルスキーマの変更が不要となり、TDDがずっと容易に行える。
  • テスト駆動開発にアプリケーション作成のデモ。少しコードを書いて直ぐにテストするのが良い。一度にたくさんのコードを書いてまとめてテストしようとするからデバッグに時間が取られてしまう。
  • GAE Javaではテスト向けの環境も充実しているので便利。開発環境だけではなく、本番環境でも(Admin権限により)テストを実行して動作確認が可能。
  • GAEのスケールアウトのメリットが生かせるのはソーシャルアプリ。初期費用無し、安い従量料金で自動的にスケールアウトするのはGAEのメリット。

ひがやすをさん(id:higayasuo)さんの講演。Google App Engine (Java)向けのテスト駆動開発や、ソーシャルアプリ開発に対する見解を聞くことが出来て興味深かった。デモではEclipeとGAE SDK, Slim3を使ったアプリケーション開発の実例が紹介され、スイスイとアプリケーションを作り上げていく様子は壮観だった。HTML5の落とし穴やソーシャルアプリが目指す方向性など、豊富な経験と知識から出て来る話も参考になったが、ビジネスとして成功するならハイリスク・ハイリターンで勝つ仕組みを目指しつつ、リスクを抑える方法を考えるべきという発言は示唆に富んでいて考えさせられるものが有った。

Google App Engineプラットフォームの勘所」(小川信一さん)

  • GAEの利用対象として向いているのは小規模業務アプリや一時的なサイトの利用など。時々発生するメンテナンスモードやトランザクションの制約により、現時点では大規模業務アプリには不向きだろう。
  • 例外の発生(データストアのタイムアウト等)が仕様なので、これを前提としたアプリケーションの設計、開発を行うべき。
  • インデックスを作れないデータは検索できない。このようなDataStoreの仕組みについては、Slim3の本が詳しい。DataStoreが難しいと言われるのは、Googleのドキュメントが分かりにくいせいだろう。
  • スキーマ設計はジョイン済みのデータを保存するなど、基本的に書き込み時に頑張るように設計すること。RDBとは仕組みが異なることを理解しておくべき。

Slim3 on Google App Engine for Java」の著書である小川信一さんによる講演。GAEに向いたアプリケーションやその有効な利用方法、開発に当たって注意すべき点など、GAEに関する豊富な知識が反映された内容だった。話の中でも指摘されていたけれど、GAEを使いこなす最大のポイントはDataStoreの取り扱いであり、そのためにはAPIの背後に存在するDataStoreの仕組みを理解していくことが不可欠となる。PythonJavaのいずれの開発言語を使うにせよ、GAEの開発ではこの書籍を読んで理解を深めておくことが必須だと思う。



関連