(いまさらながら)#ajn8へ行って来た

6/4にあった#ajn8へ参加した記録。1週間もブログに書かなかったけど、いまさらながら書きます。
@kazunori_279さんのGoogle I/Oの発表目当てだったんだけど、Skip Listネタで時間がおしたので残念ながら聞けず!

appengineでの開発

@najeiraさんのお話。appengine hack-a-thon #2の時に開発中って言っていたサービスなのかな?
内容としては、興味があるけどなかなか採用・導入できない。。。なんて思ってる人を後押しするお話だった。

PHP+MySQLでできた既存サイトのリニューアル

システムの拡張が難しかったので、フルリニューアルになったとの事。移植ではなく新規に作成。
これはPHPだからできたことだと思う。Javaとかそのままappengine上で動く言語だと、ライブラリの流用とかメリットもあるけど、オンプレミスより自由度が低かったりデメリットが目立ちそう。

設計は流用せず、仕様を流用

これもPHPPythonだからかなと。
実際Javaで設計の流用してエンティティの設計を行ってしまうと、キーではなくクエリでのgetになりがち。Datastoreへの最適化が必要。

SNSなのでいずれデータが多くなる

性能用件として月間1億PVとか想定したことないのでわからないのだが、データベースのパーティショニングとか必要らしい。
その場合は正に自動的にスケールアウトするappengineは最適ではないかと。AWSは自分で設定する必要があるらしいし。

距離が遠い

ケータイ向けサイトばかり作ってるので、正直200ms位かかるのが遅いのかわからないのだけど、プロキシを挟み静的コンテンツは国内のサーバーで捌くという話。
また、ネイキッドドメインを使ったり、SSL独自ドメインで使いたいときとかは必須。←この発想は全く無かった。プロキシって便利ですね!!!
ただし、メリットだけじゃなく、以下のようなデメリットもある。
・プロキシの障害がサービスの停止につながってしまう
・プロキシの性能が理由でスケールアウトできない可能性

データのバックアップ

行っていないが、いずれは行うとの事。
bulkloaderとか使えばよいが、使いづらい。誰か便利なフレームワーク作ってくれないですかね。
蛇足だけど、Pマークとか取得する場合って、クラウドとかってどーなんでしょう。

Quotaに関して

CPUのほとんどはDatastoreらしい。
RPCを減らす必要アリ。(すべての呼び出しはRPCになる!)
forでのDatastoreへのアクセスとかはご法度!←これ結構やってます。。。
batchPut/batchGetを活用する。RPCの呼び出しが減る。
keysOnlyを使ってデータの転送量を減らす。(これはRDBでキーだけを取得するのと同じイメージ?)


この後@koherさんのSkipListのお話や、@shuji_w6eさんの「泣かないAppEngine開発」のお話があった。

SlipList

SlipListを使うと、RDBでは当たり前の集計関数がDatastoreで使えるようになる可能性もあるようなので、かなり期待が大きい。(前半の話は理解できたが、後半になるにしたがってついていけませんでした。。。)
slim3 Datastoreとかの中に入って、使う側が意識しなくて済むになるようになれば非常に嬉しい。

泣かないAppEngine開発

GAE/Jでアプリを作るときのネックになる、spin upをいかに早くするかなど。
初期化は可能な限り減らし実行時にがんばるという、現状作っているアプリと逆のことが求められる。
コントローラはT2を使いたいので、Pageを作りAPTでslim3のControllerを生成するとか、JSPではなく独自テンプレートエンジンを利用するなど。


メモはココまで。


発表や懇親会でのお話から、けっこう実案件での導入が進んでいるという印象を受けたました。

会場を貸してくださるリクルートメディアテクノロジーラボ様には感謝です!
また、主催者の@kazunori_279さん、参加者の皆様ありがとうございました!
次回も参加できるよう、仕事中マメにATNDチェックしますw