App Engine ja night #19 に参加したよー

参照: http://atnd.org/events/25386


以下参加メモ

■ セッション 18:30~19:30

PythonのDatastore APIの新モジュール “ndb” の紹介と、非同期プログラミングのすすめ

[twitter:@najeira]さん

Guido が作ってるもの。モデルのCRUDが簡素になった模様。

キャッシュについて
  • GAE はソフトスキーマなので、省略名をつけて、容量を抑えることができてコストを抑えることができるらしい。
  • キャッシュは1リクエスト、Memecacheはアプリ全体で使えるようになる。キャッシュは検索時、Memcache はページネーション時に使えそうな感じでしょうか。
  • ただし、キャッシュで戻ってきたもののオブジェクトは同じなので、書き換えることができて、ここは注意が必要。
  • クエリはキャッシュからデータを取得しない、取得したもののデータを利用する際にキャッシュが効く。
非同期処理について
  • データの取得時に非同期にフェッチできる。非同期に処理を実施した際は、多少処理待ちが発生するので、コールバックを登録し、処理を五月雨にできる。
  • 上記ではコールバック地獄になる。<-問題
  • 解決のため、tasklets がある。yield により処理の一時停止をりようして、処理を非同期にでき、嬉しい。


実験的機能ではあるけど、旧来のものに上記の機能を追加して、より使い易くしたもようです。GAEの課金問題もあり、よりローコストでパフォーマンスのよいものが作れるんだろうなーと聞いていて思いました。漸進的に進化できる環境って素敵。

■ BeerTalk(懇親会) 19:30~21:30

AZusaar!でのappengine活用事例

[twitter:@sue445] さん

  • Ajax で作るとよい。GAEでやるとサーバサイドで遅い、Ajaxで非同期にやって、処理を早くした。
  • Frontend Cache Control spin up Instanceの起動をやらないようにする。ただし、課金しておく必要がある。
  • Memcache を使い、キャッシュと効かせる。一ヶ月分載せている。容量が大きくなりすぎたのでgzip圧縮したが、特に性能面でオーバーヘッドはなかった。
  • リストなどのJSONファイルなど半静的化コンテンツを作成して使って予め作っておけば、課金対策にもなる。
  • appengine にていくつかの項目に特化して、全文検索を作成した。n-gram 検索できるようにした。
  • Production環境からUrlfetchできないことがあって、ProxyサーバをHerokuで立てた。
  • ステージングは別appIdで行った。
  • 課金は $2.1/week のみ。

$2.1/week ってのがすごいんだろうなと思った。GAEなのでスケールするんだろうし、面白い。

PicoTubeでのApp Engine活用事例

[twitter:@weboo] ヴェッテル山下さん

  • サイト上でDJっぽいことをできるサイト。
  • 静的ファイルをAWSで配信したり、全文検索AWSを利用したりしていて、それぞれ用途が分かれている。
  • Flask -> Kay -> webapp と利用しているフレームワークは変遷している。
  • キャッシュについては、独自に実装している。
  • 当たり前のことをコツコツやることがパフォーマンスに重要。
  • 問題
    • MemcacheのExpireが早い。
    • データセンターが日本から遠い。
    • 全文検索は今後に期待
    • ログ解析が面倒。

適宜必要な箇所にGAE/AWSを利用しており、面白い。

HRD移行したけど何か質問ある?

[twitter:@hanasoo] さん

スライドへのリンク(Google ドキュメント)

  • Master/Slave -> HRD
  • アプリの対応をし、 BlobStoreの移行をし、MigratoinToolを使えばいいよ。

データの内情がわかり面白い。

所感

おもろかったー
やべーって、話が根本的にわからない感覚が蘇って嬉しい
次回もまた参加してみたい。
というか、自分はインフラではなく開発なんだろうし、ひと通りVPSで鯖建てられるけど、今後はクラウドにチャレンジしてみたいですね。