appengine ja night #23 が終わりました
(まとめを書くのがすっかり遅くなってしまいました。。)今回のappengine ja night #23はひさびさにGoogleオフィスで開催されました。今回はGoogle米国本社からProppyとBrianを招いてApp EngineとCompute Engineのセッションを開催しました。
- App Engine アプリの最適化と Appstats
- Google Compute Engine 最新動向と App Engine 連携
- Brian Dorsey, Developer Programs Engineer, Google Inc.
- 昨年の Google I/O 2012 で発表された IaaS サービス、Google Compute Engine の最新動向を紹介するほか、Google App Engine との連携のテクニックを日本語で解説します。
Proppyのセッションでは中級程度のApp Engineノウハウがまとめられてましたが、とくに注目すべきはGlobal Queryのアンチパターン。つまり、Queryの結果得られるEntityの内容が古い場合があるってことです。これ、今までドキュメント等にわかりやすく書かれていなかったので、見落としている方も多いと思います。この問題によるトラブルを避けるためには、Proppyの資料にあるように、Keys-only QueryとMemcacheやローカルキャッシュを組み合わせることで、古い内容をつかんでしまうリスクをできるだけ避けます。ただ、この方法も完璧じゃないですし、依然としてQueryのeventual consistencyによる「直前にinsertしたEntityの取りこぼし」は起き得ます。よって必ず最新状態の取得が必要な用途には、やっぱりstrong consistencyが保証されるAncestor QueryとEntity Groupを使う必要がありますね。
BrianのセッションではGCEの現状が紹介されました。App Engineとは異なり、GCEでは計画停止などによりインスタンスがダウンするとサービスもダウンしてしまいます。そのため、例えば計画停止前に別のゾーン内のインスタンスにトラフィックを移す等の対処が必要になります。GCEではグローバルIPアドレスと各インスタンスの割り当てを動的に変更できるようになったため、そうしたインスタンス切り替えも比較的簡単に実現可能となりました。
皆さんのまとめなど
- FumiさんによるTogetterまとめ:appengine ja night #23
- @thorikiriさんによるかなり詳細なレポート:appengine ja night #23 #ajn23 に行ってきました
- Hangout on Airのビデオ:appengine ja night #23
- これは恐ろしく詳細な @vierjp さんによるProppyセッションのレポート:Google App Engineパターン (appengine ja night #23)