ケータイの予備バッテリーは2つ持ってきたのにケータイを忘れましたが、気を取り直して出席します! ハッシュタグは#pw1012みたいです。
Session 01. mixiアプリとGoogle App Engine
mixiプラットフォームについて / 山下さん
- mixiはPerlの会社・・・Pethonについては別の方に
- 個人デベロッパーにも近日公開予定
- developer.mixi.co.jpも参照
- PC、モバイル、スマートフォンに対応
- mixiプラットフォームの利点 → ユーザを集めやすい
- 1ヶ月で40万ユーザとか1週間程度で200万ユーザとか
- ユーザ登録不要、ユーザによる宣伝
- Activity, Voice, Invite, Request, Message などのAPIの存在
- mixiアプリの構成
- Application ProxyとMedia Cache Proxyがある
- 1000万〜数億PV/日 (200-500 req/sec) → 普通のサーバだときつい
- インフラ構築支援サービス
App Engine for Mixi Apps / 松尾さん
- アクセスにばらつきがある → 時間によるアクセスの波、人気が出るか
- 人気が出なかった場合は、コストが0で済む!
- アクティブなアプリが15万、開発者が10万、PVは10億PV/日、最高実績1600QPS
- ポテンシャルは、この10倍いけるはず
- Quota → お金により増えるものと、増えないものがある
- 増えないもの → リクエスト、発信・受信帯域、CPU時間
- ただし、どうしても困った場合は松尾さんに連絡をすればなんとかなるみたい
- スケールのために気をつけること
- 必要最低限のことだけする → 1000msルールが守れないと、インスタンス数が抑制される
- データストアコンテンションを避ける
- Task Queueとmemcache をうまく使う
- DBオペレーションにデッドラインを設定 (mixiアプリの制約を避けるため)
- 「Best practices for writing scalable applications」を参照
- GAE1.4出たよ!
- ロードマップ
- 30秒以上走らせることができるバックグラウンドサーバ
- レイテンシィよりアベイラビリティを優先する設定が増える(メンテ時とかも書き込みが可能になる)
バスキュールについて / 田中さん
Session 02. Harvester - CG映像制作用ジョブディスパッチシステム / 齊藤さん、石川(@yusukei)さん
- デモ → DIVA 2ndのオープニング映像 (Ustream非公開)
- 80名ほどのチームで、ソフトは7名。インハウスのツールを開発
- CG業界ではPythonが使われている
- ジョブディスパッチとはなぜ必要?
- Havesterの歴史
- 初期バージョンは、定期的再起動が必要(cronを利用していた)
- バージョン2で安定
- バージョン3は、PushからPullへ設計変更
- Havesterの構成
- 特徴(1): サーバの区分けを台数ではなく割合で設定する
- 問題 → 台数固定だと、空いてるサーバが有効利用されない
- 空いているときは割合を超えて利用。混み始めると自動調整
- 特徴(2): タグにより、特定ノードへ振ることができる
- OSの種類や、ソフトのライセンスの問題などがあるため
- 特徴(3): ジョブテンプレートにより、新しいアプリケーションへの対応が簡単
- ExtJSによるGUI → WEB経由の利点がある
- ユーザがクライアントアプリを入れなくていい
- クライアントを強制的にバージョンアップできる
- クライアントのワークステーションにもサーバを建てている → mod_proxyで逆向きに再リクエスト
- APIはJSONベース → デバグしやすい、HTTPは安定している、ExtJSとの相性
- ただし、トランザクションしにくいのは、HTTPの欠点
- ドキュメント
- 運用面 → GUIからの再起動、Zabbixとの連動で監視
- 苦労話: レンダラーがメモリを使い尽くすと、Pythonがメモリを使えなくなる
- 予定 → PullとPush やはり両方したい、電力管理など
- 質疑応答
- Q. 実際にどんなタスクを設定するのかを見たい
- A. クライアントアプリに組み込まれている。
- Q. ユーザはタスクがどう分割されるかは考える?
- A. 考えなくてよい。依存関係などもツールが解決する
- Q. マシンの割合の単位は? ロードアベレージとかCPU時間を見る?
- A. 台数ベース。
Session 03. Pythonのここがイケてる、イケてない / 司会:郷田まり子さん
自己紹介
Pythonのイケてるとこ
- @yoshioriさん
- @tokuhiromさん
- @moriyoshiさん
- @takahashimさん
- @nishioさん
Pythonはここがイケてない
- @takahashimさん
- @moriyoshiさん
- インデント
- テンプレート言語として見ると非常によくない → HTMLに混ぜると、インデントが・・・
- 「式だけで書けば、インデントフリーです!」
- @tokuhiromさん
- @yoshioriさん
他の言語について
会場より
- Q. Pythonのselfはどうなの? めんどうくさい
- A. めんどうくさいです
- selfのせいで、引数の数が合わないときのエラーメッセージがわかりにくい
Session 04. ライトニングトーク
Python sf / 小林さん
遷移図生成ツールblockdiagの紹介/ @tk0miyaさん
- 遷移図 → 画面を箱、遷移を矢印 → visioで作るの大変
- blockdiag
diagram { A -> B -> C; D -> E; }
- デモ: WEB上でできる画面
- group化
- Sphinx 用のプラグインもある
- 今後 → ノード形状の切換え、レイアウトエンジン、遷移図以外への対応
- →画面設計書にも