個人的に今 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 に対応するための修正は一切していません。