appengine ja night 16 bt frontend cache control

33
appengine ja night#16 Beer Talk Fꝏ Fꝏ Fꝏ Fꝏ の Cꜳ Cꝏꝏ Cꜳ Cꝏꝏ Cꜳ Cꝏꝏ Cꜳ Cꝏꝏで CP CP CP CP使用量減す 使用量減す 使用量減す 使用量減す source: http://www.flickr.com/photos/katemonkey/122489910/

Upload: bluerabbit777jp

Post on 24-Jan-2015

2.671 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: appengine ja night 16 BT Frontend cache control

appengine ja night#16Beer Talk

Front Front Front Front EndのEndのEndのEndのCache ControlCache ControlCache ControlCache Controlでででで

CPUCPUCPUCPU使用量を減らす使用量を減らす使用量を減らす使用量を減らす

source: http://www.flickr.com/photos/katemonkey/122489910/

Page 2: appengine ja night 16 BT Frontend cache control

�� TwitterTwitter�� @bluerabbit777jp@bluerabbit777jp

�� はてなはてな

�� あおうさ@日記あおうさ@日記

�� http://d.http://d.hatenahatena..nene..jpjp//bluerabbitbluerabbit//

�� 仕事はSI系仕事はSI系

�� java, ASP.Netjava, ASP.Netがが多い多い

自己紹介自己紹介自己紹介自己紹介

Page 3: appengine ja night 16 BT Frontend cache control

devsumi2011

Page 4: appengine ja night 16 BT Frontend cache control

LT大会2011大会2011大会2011大会2011

Page 5: appengine ja night 16 BT Frontend cache control

ベストベストベストベストバリューバリューバリューバリュー賞賞賞賞

Page 6: appengine ja night 16 BT Frontend cache control

表彰状表彰状表彰状表彰状

Page 7: appengine ja night 16 BT Frontend cache control

さいきん作ったの

Page 8: appengine ja night 16 BT Frontend cache control

�� インストールするだけで地震の際にどこで、インストールするだけで地震の際にどこで、震度いくつの地震があったのかを通知震度いくつの地震があったのかを通知

earthquake Notify (緊急地震速報)

Page 9: appengine ja night 16 BT Frontend cache control

nanapiで紹介されたで紹介されたで紹介されたで紹介された

Page 10: appengine ja night 16 BT Frontend cache control

インストール数インストール数インストール数インストール数1万を万を万を万を

超えた辺りから超えた辺りから超えた辺りから超えた辺りから

Page 11: appengine ja night 16 BT Frontend cache control

課金が一日課金が一日課金が一日課金が一日7ドル超え・・・ドル超え・・・ドル超え・・・ドル超え・・・

Page 12: appengine ja night 16 BT Frontend cache control

課金が一日課金が一日課金が一日課金が一日7ドル超え・・・ドル超え・・・ドル超え・・・ドル超え・・・

��11ドルドル8080円円

��11日日77ドルはドルは560560円円

��560560円×円×3030日=日=16,80016,800円円円円円円円円

Page 13: appengine ja night 16 BT Frontend cache control

CPU Timeでででで6.53ドルドルドルドル

Page 14: appengine ja night 16 BT Frontend cache control

Cache Control使えばいいのに・・使えばいいのに・・使えばいいのに・・使えばいいのに・・

Page 15: appengine ja night 16 BT Frontend cache control

Cache Controlでででで0円に円に円に円に

Page 16: appengine ja night 16 BT Frontend cache control

earthquake Notifyの仕組みの仕組みの仕組みの仕組み

�� ChromeChrome拡張から定期的に拡張から定期的にajaxajax通信して通信してサーバに地震がないかチェックするサーバに地震がないかチェックする

�� 地震があったら通知地震があったら通知

Page 17: appengine ja night 16 BT Frontend cache control

earthquake Notifyの仕組みの仕組みの仕組みの仕組み

�� サーバは最新の地震情報をサーバは最新の地震情報を11レコードレコードだけ保持し、だけ保持し、JSONJSONをを返す返す

Key key =Key key = DatastoreDatastore..createKeycreateKey(Quake.class, 1);(Quake.class, 1);

Quake entity =Quake entity = DatastoreDatastore.get(Quake.class,.get(Quake.class,  key);key);

String String jsonjson == QuakeMetaQuakeMeta.get()..get().modelToJsonmodelToJson(entity);(entity);

response.response.getWritergetWriter().write(().write(jsonjson););

Page 18: appengine ja night 16 BT Frontend cache control

課金が一日課金が一日課金が一日課金が一日7ドル超え・・・ドル超え・・・ドル超え・・・ドル超え・・・

��11ドルドル8080円円

��11日日77ドルはドルは560560円円

��560560円×円×3030日=日=16,80016,800円円円円円円円円

Page 19: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 20: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 21: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 22: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 23: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 24: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 25: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 26: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 27: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 28: appengine ja night 16 BT Frontend cache control

earthquake Notifyの仕組みの仕組みの仕組みの仕組み�� サーバは最新の地震情報をサーバは最新の地震情報を11レコードだけ保レコードだけ保

持し、持し、JSONJSONをを返す返す

�� Front EndFront Endにに11秒キャッシュさせる秒キャッシュさせる

Key key =Key key = DatastoreDatastore..createKeycreateKey(Quake.class, 1);(Quake.class, 1);

Quake entity =Quake entity = DatastoreDatastore.get(Quake.class,.get(Quake.class,  key);key);

response.response.setHeadersetHeader("Cache("Cache--Control", Control",

                                        "public, max"public, max--age=1");age=1");

String String jsonjson == QuakeMetaQuakeMeta.get()..get().modelToJsonmodelToJson(entity);(entity);

response.response.getWritergetWriter().write(().write(jsonjson););

Page 29: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 30: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 31: appengine ja night 16 BT Frontend cache control

App Engine Stack

Page 32: appengine ja night 16 BT Frontend cache control

まとめ

Page 33: appengine ja night 16 BT Frontend cache control

まとめまとめまとめまとめまとめまとめまとめまとめ

�� 工夫すれば課金は抑えられる工夫すれば課金は抑えられる

�� Front EndFront Endののキャッシュは有効な場合が多キャッシュは有効な場合が多い。利用できないかまず検討い。利用できないかまず検討�� 例)ニュースサイトの例)ニュースサイトのTopTopページページ

��   画像の配信  画像の配信

��     RSSRSS配信配信

�� TwitterTwitterは強い見方は強い見方�� 有識者がアドバイスをくれる有識者がアドバイスをくれる

�� @@pomupomu03250325さんさん に感謝!に感謝!

�� ハッシュタグはハッシュタグは ##appengine appengine からから ##gaeja gaeja にに