Hatena::ブログ(Diary)

スティルハウスの書庫 このページをアンテナに追加 RSSフィード

2013-04-12

appengine ja night #24 が終わりました

appengine ja night #24がリクルートMTLで開催されました。今回はGoogleでAPAC地域のCloudセールスを統括するCory Frantzmeierがたまたま東京に来ててぜひ皆さんに挨拶したいというので簡単なキーノートをお願いしました。そこで「年内には台湾、香港、シンガポールにApp Engineのデータセンターを設置したい」っていう情報も飛び出してました(正式なところは私もよく分からないのですが...)。これが実現すると、いまよりぐっとレイテンシが短くなるはずで、App Engineエンジニアには嬉しいニュースですね。

今回のおしながきは以下のとおり。

セッション1:「Google Cloud Endpoints & BigQuery」
発表者:Ryo Yamasaki @vierjpさん
資料:こちら

セッション2 「Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った in GAE/J」
発表者:@vvakameさん
資料:こちら

ヤマサキさんのEndpointsセッション、この資料はGoogleのドキュメントよりもさらに実践的で、Endpointsを実際に使う人にはとっても価値のある内容になってます。私自身もEndpointsの使い始めのころはドキュメントも不足していていくつか何度かハマっていたのですが、そうしたハマりポイントが網羅されてます。さらに、AngularJSと組み合わせようとするとまずは初期化の順序や方法で悩むのですが、そのあたりもきちんと触れられてますね。これらの点でいちど慣れてしまえば、Endpointsはとっても快適で、もうサーブレットやMVCをサーバー側で自前で用意する気にはなれなくなります。つい先ほど松尾さんもチャットで「もうEndpointsだけでいいじゃん」と言ってましたよ!

わかめさんのMemvache、ApiProxyにフックを入れてPBをいじって、、っていう手法は、ajnの初期にしばしば熱く議論されたテーマで、昔のajnが思い出されますねー(遠い目)Datastoreアクセスしてるコードを一行も変えずにMemcacheキャッシングを挟めるという便利ツールです。さらに自前でキャッシングStrategyを入れ替えたりできるのいいですね。というかこういうのをSDK標準に入れてPythonのndbみたいなAPIにしてほしい、、と思いました。わかめさんSlim3コミッター就任おめです!shin1さんを乗り越える日も近い。。

BeerTalk

今回のBeerTalkはこんな内容。いつものごとく、私とshin1さんのBTは時間が足りなくて次回持越しとなってしまいました。。

BeerTalk2:「Google App Engineを使って仕事をするということ」
発表者:塩瀬悠樹さん(吉積情報)

BeerTalk4:「Dig・基幹系でAppEngineを掘る」
発表者:清野克行さん
資料:こちら

吉積情報さんは大手のお客様向けの業務システム構築でたくさんのApp Engine実績をお持ちで、とくに印象深いのがApp Engineでは難しい事前の運用コスト見積もりのノウハウを蓄積されてる点(これができないと業務案件の見積もりは難しいですよね)、そして数万ユーザー規模の業務システムでも月額費用が驚くほど安い点(確か2万円くらい?)でした。すごーい。。

清野さんのセッションはブラウザのWebSQLとCloudSQLを組み合わせてオフラインファーストな業務アプリを構築する手法を解説したもので、BeerTalkには収まりきれない密度でした。時間が足りなくなってしまって残念です。。しかしデモでは入力に瞬時に反応してマスタ内容を引っ張ってくるUIとか、Channel APIでサーバーからクライアントに変更内容をプッシュ通知してブラウザ内容を書き換えとか、かっこよかったです!

皆さんのまとめ

いつもながらthorikiriさんのまとめの密度と素早さはすばらしい( ;∀;)

会計

今回はビールたのみすぎたーっ。。

  • ビール&ピザ:57880円
  • 集金:30000円
  • 前回繰越:30108円
  • 次回繰越:2228円

いつもいつも会場提供&運営でご協力いただいておりますリクルートの黒田さん、今回もありがとうございましたm(__)m

2013-02-09

appengine ja night #23 が終わりました

(まとめを書くのがすっかり遅くなってしまいました。。)今回のappengine ja night #23はひさびさにGoogleオフィスで開催されました。今回はGoogle米国本社からProppyとBrianを招いてApp EngineとCompute Engineのセッションを開催しました。

  • App Engine アプリの最適化と Appstats
    • Johan Euphrosine (proppy), Developer Programs Engineer, Google Inc.
    • App Engine アプリ設計や Datastore 利用におけるアンチパターンとベストプラクティスをはじめ、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アドレスと各インスタンスの割り当てを動的に変更できるようになったため、そうしたインスタンス切り替えも比較的簡単に実現可能となりました。

皆さんのまとめなど

会計など

なんと今回、ピザとビールはGoogle持ちでした!しかもいつものピザよりおいしかった。。ぐぬぬ。

ふみさん、西村さん、横田さん、運営ありがとうございましたっ!

2012-12-01

appengine ja night #22が終わりました!

すっかり半年に1回ペースになってしまったappengine ja night、22回目がニフティさんの会場で先日開かれました。今回はこんな内容:

  • Google Cloud Endpointsでかなりラクするモバイルアプリ開発 by @kazunori_279
  • Google Cloud Platformの海外エンタープライズ事例紹介 by グーグル株式会社エンタープライズチーム 福田潔さん
  • 世界有数規模のApp Engine事例の開発ノウハウとBigQueryによるログ解析 by 株式会社アプリボット 永井友之さん

(いずれも公開資料は残念ながらありません。。代わりに @thorikiri さんの超詳細なまとめブログをご覧ください)

私の方からはGoogle Cloud Endpointsのご紹介。これはGoogle I/O 2012で発表された、Android/iOS/JSクライアント向けアプリAPI提供のためのWebフレームワークです。例えばサーバー側コードのメソッドfooに"@ApiMethod"ってアノテーションを付けてEndpointsのツールをゴニョゴニョ動かすと、Android/iOS/JS側で"obj.foo(bar)"って書くだけでサーバー側メソッドを呼び出せるようになります。REST APIやJSONの定義やそれを呼び出すクライアント側ライブラリの生成、そしてOAuth2認証まわりをまとめて面倒みてくれます。Endpointsは現在Trusted Tester向け公開の段階ですが、いずれ正式公開されるといいですね!

グーグル福田さんからはApp EngineやBigQuery、Cloud Storage等のCloud Platform製品に関する国内外の事例を紹介していただきました。AKB総選挙やRoyal Weddingみたいな瞬間風速トラフィックを扱うにはApp Engineぴったりですね。

つづいてアプリボット永井さんは、同社の大人気iPhoneアプリ(米国AppStore総合ランキング2位、国内総合1位など)のサーバー側を支えるApp Engine開発のノウハウを紹介されてました。1つのアプリで数千ファイルもデプロイしたり、デプロイに何時間もかかったりって、あまり他では例がなさそうですね^^; またBigQueryを使ったログ解析のデモを実演されてました。BQはインデックス使わないフルスキャン検索なので、CONTAINS(LIKEみたいなの)や正規表現を使った部分一致検索をバカでかいテーブルに対して実行しもさくっと結果が得られるのが便利ですね。

BeerTalk

BeerTalkは以下の2つ。

  • VPSとGCSとGAEをハイブリッドで使う事例 by @stakezaki
  • NEWSTRAINERのご紹介 by ENQUIRE 岩堀慶輔

たけざきさんは、VPSサービスとGoogleクラウド(App EngineとCloud Storage)を組み合わせて1千万件PDF文書の検索サービスを構築されたお話。Cloud Storageは速い!って強調されてたのが印象的。それと、VPS上のWebSocketsサーバーを使ったリアクティブなUIがかっこよかったですね!データが更新されると、WebSocketsでpush通知されてユーザーのUIが動的に更新されてました。

続いて岩堀さんは機械学習を使って記事を自動振り分けするRSSリーダーNEWSTRAINERをApp Engineでつくったお話。これ、RSSリーダーとしてすごく便利そう。ちょっと試してみます。機械学習の実装の解説ではベイジアンフィルタをApp Engineで実装する際の苦労話等がためになりました。

まとめなど

会計

  • ビールとピザ:34,270円
  • 集金:57,000円
  • 前回繰越:7,378円
  • 次回繰越:30,108円

今回も会場の準備等でニフティの飯塚さんはじめ皆さまにたいへんお世話になりました!ありがとうございます。

2012-06-23

appengine ja night #21が終わりました!

appengine ja night #21が終わりました。今回は銀座のリクルートMTLにて。今回も盛況でしたね〜18:30の開始時点ですでに会場はほぼ埋まっていて、後半はイスが不足気味でした。

今回のセッションは以下の2つ。

  • 「GAEで使えるぞ!!SPDYとその実践」by 小松健作 @komasshu
  • 「数十億件をインデックスなしで数秒で全検索できるGoogle BigQueryってどんな仕組み?」 by @kazunori_279
    • すみません、公開資料はありません。。BigQueryのサイトはこちら

@komasshuさんのSPDY解説、これは分かりやすかった! なぜTLSが必須か? WebSocketとSPDYはお互いどんな位置づけにあるか? SPDYの"server push"といわゆるserver pushの違いはなにか? 。。などなど、これまでモヤモヤしていたところがかなりスッキリしました。。App Engineではhttps://を使うだけでSPDY対応サイトとなるし、Channel APIもSPDY対応済み。

わたくし@kazunori_279のBigQuery解説では、BigQueryの概要やデモを紹介したのち、実際にGoogle社内ではBigQuery(社内ではDremelと呼ばれてます)がどう活用されてるかを、かなりぶっちゃけトークを交えながら紹介しましたw

BeerTalkは以下の3つです。

  • 「BigQuery + Google Apps Script」 by @soundTricker
  • 「App Engine Search API で嵐を見逃さない方法」by @ikasamt
  • 「写真共有アプリのバックエンドサーバー」 by @tokibito

@soundTrickerさんのBTは、Google Apps ScriptからBigQueryのクエリを実行してSpreadsheet上にグラフを描くというデモ。GASにはちょっと前からBQのAPIがありましたので、やればできるんだろうなぁ〜と思いつつも、実際に動いているところを見ると感動ですね! @ikasamtさんのBTではSearch APIの実際の使い勝手のところがレポートされてました。というかむしろ本題は最後のPyCharm絶賛タイムと@yukopさんのラテアートですよねわかります。私もJetBrainsにすっかり汚染されてるんで何も付け加えることはありません。最後、@tokibitoさんのBTは、写真共有サイトCottoをApp Engineで構築した事例の紹介。App Engineによるソーシャルメディアのproduction開発で必要となる実践的なノウハウ(画像のキャッシュ手法、タイムラインの実装方法、実際のコストとか)が紹介されてて大変ためになりました。

まとめなど

皆さんまとめありがとうございます!

運営など

  • ビールとピザ:57340円
  • 集金:84000円
  • 前回繰越:-19282円
  • 次回繰越:7378円

いつもいつも会場の準備から後片付けまで大変お世話になっておりますリクルートの黒田さん、本当にありがとうございました!

2012-04-19

appengine ja night #20が終わりました!

先週の金曜日にappengine ja night #20が終わりました。今回はニフティさんが西新宿にお引越しされてから初めての開催で、用意した80席がびっしり埋まる盛況でした。以下はおしながき。

  • @superelmer(清野)さんのセッション:App Engineアプリ作成をブラウザのJavaScriptだけで行うgaedirect
  • @shin1ogawaさんのセッション:Full-text Search APIの紹介

私が会場についたのが8:30ごろだったので、残念ながら@superelmerさんのセッションは見逃してしまいました。。しかしtogetterまとめ等を拝見すると、gaedirectはjsonengineと同じBaaS的ツールのようですね。こうした方向性のツールがいろいろ出始めているということは、BaaSのブレークスルーも近いのかもしれません。セキュリティの確保とデプロイの簡単さをいかにして実現できるかがカギと思います。shin1さんのセッションは、現在Trusted Tester向けに公開されている全文検索機能の紹介。これはさらなる成熟と正式リリースを期待したいところです。全文検索に限らずドキュメントDB的にも使えるとこがミソですね。

  • @KazumaAndohさんのBeer Talk:「楽勝なはずなのに・・・、かるーい業務アプリの無料枠奮闘記」
  • @hidemotoNakadaさんのBeer Talk:「データセンター?の電力量のログをGAEで」

日経BP安東さんの社内アプリ開発記はいかにして無料枠に抑えるかの工夫、そして開発工期の短さ(数日?)が印象的でした。こういうの外注すると100万以上するでしょうから、App Engineって「ちょっとした内製」にもピッタリのソリューションかもしれません。産総研中田さんの事例は産総研のビル内で実際に自家製スマートメーターを導入したお話。スマートメーターのハードからApp Engineによるログ集計まで、徹底したローコスト設計がすばらしい。これこのまま電力会社さん等に大規模導入してもらってもApp Engineなので難なくスケールアウトするのがいいですよね。

まとめなど

皆さんまとめありがとうございます!

もしこのほかにもまとめ等を書いていただいた方がいらっしゃれば、@kazunori_279 までツイートでお知らせください。

運営など

  • ビール13,068円+ピザ53,240円=66,308円
  • 集金34,000円
  • 前回繰越13,026円
  • 次回繰越-19,282円

# ピザちょっと多かった。。

今回もニフティの飯塚さんはじめ社員の皆さんに大変お世話になりました。ありがとうございます!m(__)m

次回ですが、shin1さんから依頼があって私がBigQueryについて担当することになりました。勉強しときます! 5月はずっとUS出張なので6〜7月になると思います。