ミッションたぶんPossible

どこにでもいるシステムエンジニアのなんでもない日記です。たぶん。

10/01、トップゲート社のJava/GAEセミナーに参加してきました。

 二週間も前の話で大変恐縮ですが、株式会社トップゲートが主催する「GAE/Javaセミナー」に行ってきたので、そのメモの内容を備忘録的に残しておきたいと思います。


 その前に紹介。


 このセミナーを主宰されたトップゲートさんは、11/4(木),11/5(金)でGAEのハンズオンセミナーを開催されるとのことです。本エントリの内容を読んで興味をもたれた方は、参加を検討してみて下さい。詳細は以下告知サイトから。
2010-11-04-05 GAE/J 2日間集中実践セミナー - TOPGATE Google関連技術サイト


講師

小川進一氏

  • 株式会社トップゲート
  • Slim3本の著者(ひがやすを氏)と共著
    • DB・データストアに特化した内容
    • Slim3の入門ならWebの情報で十分」


GAE(Google App Engine)とは?

  • プラットフォーム
  • JavaPythonで開発
  • PaaS
  • 無料
    • リソース量が少なければ
    • スモールスタート
  • 自動でスケールアウトして負荷対応、マシン数が0〜∞に変わる
  • サーバの管理が不要
    • サーバ管理が出来ない、という意味でもある
  • インスタンス0台でアクセスしてアプリ起動できる(Spin-Up)

→ インフラの物理的コストの削減
→ インフラのメンテナンスコストの削減

つかいどころ

  • 自社サイト(スタティックなサイトもOK)
  • コンシューマ向け自社サービス
  • 特定の期間・時間のみ負荷がかかるサイト
  • Google Appsと連携させるサイト
  • 規模の小さい業務アプリ
  • 事例
  • 規模の大きい業務アプリ、基幹系のクリティカルなシステム
    • 設計・運用が難しい
    • まだGAE自体が試用レベル
    • メンテとかもちょいちょい入る
    • DBの扱いが難しい(トランザクションが無い)

Google Appsとは?

  • Gmail, Google Calendar, Google Docs, etc...
  • オンラインアプリケーション
  • SaaS
  • 基本的に無料、有料バージョンも(企業ドメイン)
  • 250万企業・2500万ユーザーが採用
  • 官庁系も採用(ワシントン、フロリダ州オーランド、ロサンゼルス、etc...)
  • 場所を選ばずデータが使える
  • 自分・自社のリソースに対してGoogleの検索機能が使える
  • 簡単にデータ共有・同時編集が行える(コラボレーションモード)
  • Mail, Calendar, Docs等、各アプリで連携がスムーズ
  • App Marketplace(iPhoneのAppStoreみたいなもの)のアプリを導入(買う)ことでAppsを拡張
  • APIが提供されている(GData API)

Google Apps Marketplace

  • 2010/03発表
  • 登録料:$100- / Gooleマージン:売上の20%
  • 月額課金、ドメイン単位での課金、一括課金等が可能
  • 決済システム:米国…2010/4Q,日本…2011年前半 に公開予定
    • それまではPayPalとかを使う
  • Google Appsと統合する為のアプリには有利
    • Marketplaceしか使えないAPIがある
  • OpenIDによるシングルサインオン
    • Appsのリソースへのアクセス権取得が簡単にできる
  • グローバルナビゲーション(GmailGoogle Readerのヘッダー部分)にアプリが追加される
    • ユーザーが使い易い = 開発者にとっても導入してして貰い易い
  • BtoB, CtoBが身近になる

→ GAEを使ってMarketplace向け開発をすれば、特殊なライブラリやフレームワークを使わず、OpenIDによるSSOが簡単に行える

プラットフォーム

開発環境

Production環境

→ リモートデバッグは不可能、ログのみが頼り!!

  • 各種リソースの制限には注意が必要
    • 1日単位
    • 分単位
    • API転送できる上限(1データ:1MBなど)
    • リクエスト単位
      • 30秒制限
      • Req/Resサイズは10MB

→ 課金に関係ない(お金を払っても解決できない)制限もあるので注意!
→ 自動での制限突破は無い、いつの間にか課金されてたといった事態は防げる

  • Java的制限(Pythonも同じ)
  • ファイル
  • スレッド
  • ソケット
  • 明示的なGC
  • JDKの一部が使えない(特にAWT等GUI系)

→ この仕組みだからこそ安くて安心できるともいえる

  • データストア(DB)
    • Bigtable(生のBigtableではない)、分散KVS
    • 特定の値での検索、クエリという概念は無い
      • インデックスを作る、という考え方
    • 複数行に対するトランザクションという概念が無い
      • エンティティグループ
    • RDBとは異なる概念、同じようには使えない
    • 単純なKVSよりは使い易い
    • 従来の設計パターンは通用しない
      • 非正規化を多用する
    • UIもデータ構造によって異なる設計が必要
      • 例)ページング:20/50とかは無理、そういうデータの取り方は出来ない
    • Javaの従来のフレームワークは使えない
      • 使えなくは無いけど遅い!
      • 起動に20秒とかかかる
      • 効率よく実装することが必要

今後のGAE

  • バックグラウンドプロセスに限り30秒制限の撤廃(30秒→10分)
  • スピンダウンしないインスタンスの確保
  • Task QueueベースのMap/Reduce
  • データストアのダンプとレストア
  • Browser Push(Comet)サポート(チャネルAPIという名前)
  • Next Gen Query
    • RDBっぽく使える
  • App Engine for Business
    • 専用の管理コンソール … 2010/4Q
    • SLA(99.9%) … 2010/4Q
    • 電話によるプロフェッショナルサポート(米国のみ) … 2010/3Q
      • もう始まっててよいはず…?
    • Hosted SQL(MySQL,最大1GB) … 2010/3Q
    • Custom Domain SSL(独自ドメインの使用) … 2010/末
    • 一ヶ月の使用量
      • $8-/User
      • 最大$1,000-

質疑応答

Q:メールが文字化けしてしまう

A:実現方法にJava MailとGAE独自のものがあるが、低レベルの方が優秀



感想

 1時間という短い時間ながら非常に盛り沢山な内容でした。極端に技術的な内容によらず、技術者から営業さんまで広く聞けて理解できる内容だったと思います。網羅的にGAEとその取り巻く状況を短時間で理解するには素晴らしいセミナーだったと思います。
 技術的な内容が少ないのも、元々冒頭の有料セミナーをアピールする為の意味合いがあるのでしょうから、深くやらないのはまぁ当然と言える訳でしてw。どうしても知りたい方は是非申し込んでみてはいかがでしょう?このレベルで集中的にやって貰えるなら、この値段は決して高くないと感じました。…まぁだからといってオレの懐事情がそれを許すかどうかは別問題なのですがw。

 

 個人的にはGoogle Apps Marketplaceの話は非常に興味深かったです。AppStoreから始まったこのアプリマーケットの考え方は、今後どんどん浸透していくんでしょうね。