個人的に今 dotCloud がアツいです。無料枠を無制限に使える、WebSocketに対応している、設定の自由度がメチャ高いので、ちょっと作ったものを他人に見せたり自分の携帯から見たりするために気軽に作れちゃいます。
さて、 dotCloud で golang を使うとか、 Tornado を使うとか言った話題になると、出てくるサンプルはたいてい type: custom で設定されています。
type: custom の柔軟性は確かに魅力なのですが、もし使っている言語に type: *-worker が存在しているなら、そちらを使ったほうが PaaS の旨味を引き出せます。
試しに Tornado のチャットデモを dotCloud で動かして見ました。 tornado-on-dotcloud
type: custom の場合は virtualenv を作るところから自前でやらないといけなかったのですが、 type: python-worker を使うと勝手に confg: python_version: v3.2 で指定した Python バージョンで virtualenv を作って、そこに requirements.txt をインストールしてくれるので、 dotcloud.yml と requirements.txt だけでセットアップが完了しています。
dotcloud.yml:
www:
type: python-worker
config:
python_version: v3.2
ports:
www: http
approot: chat
process: ./chatdemo.py --port=$PORT_WWW
requirements.txt:
tornado
chat/ ディレクトリ配下は、 Torando に同梱されているサンプルアプリで、 Python 3.2 を使うために xrange を range に書き換えただけで、 dotCloud に対応するための修正は一切していません。