カラクリスタ

dotcloudを使ってみた!

概要: 統一言語メーカーを dotcloud に移植してみた


追記: 2014-10-28

2014 年 10 月現在、統一言語メーカーは、公開を停止しています。


最近 Perl on Cloud ! が可能で、かの miyagawa さんが join した事で有名な

  • dotcloud ですが、最近というか、
  1. 2011-04-30 に beta 申し込み
  2. 2011-05-04 に招待コードが届く
  3. その日の内にアカウントを取る
  4. 放置(おい

という感じで試そう試そうと思ってたんで、昨日から本格的にコードを書き、 今日 deploy してコードを実行する所までこぎつけたので、今日はその事を書いてみたいと思います。

で、まず、本格的に Application for dotcloud を書く前に、 練習からし始めたい! ということで、題材を探してたんですが、 ちょうど昔に作って放置してた統一言語メーカーというのがあったので、 今回、これを dotcloud に移植してみました。

で、実際のコードとサイト:

  • サイト: <http://www.godowordmaker.com/ http://www.godowordmaker.com/>
  • コード: <https://github.com/nyarla/dotcloud-godowordmaker/ https://github.com/nyarla/dotcloud-godowordmaker/>

それで作ったみた感想とか。

まず、Application 自体は普通の PSGI Application と何ら変わらず、 ディレクトリ構成にちょっと制限というか制約がある感じですが、 そのあたりはまあちょちょっと調整してやれば、問題ナッシング! という感じ。

で、俺がはまったそれ以外のことで。

まず、Perl on dotcloud では、依存モジュールのインストールに、 Makefile.PLに記載された依存モジュールが、cpanmによってインストールされるんですが、 依存モジュールが、cpanmがパースできないバージョン番号使ってると、 cpanmがこけて、dotcloud への deploy が失敗します。マジで。

これはまあ変なバージョン番号を使ってるモジュールが悪いといえばそうなんですが、 なんとかしない限りでは先進めないので、Makefile.PLの依存モジュールを書く際に、

'Example::Module' => $invalid_version_numver

となってる部分を、

'Example::Module' => 0,

としてやると、なんとかインストールはできます。 が、おそらく変なバージョン番号使ってる依存モジュールがアップデートしたときに、 Makefile.PLで指定するバージョンを上げる事によってアップデートできないと思うんですが、 これは dotcloud の本番サーバに ssh でログインし、中に入ってるcpanmを使ってインストールしてやれば、 多分大丈夫だと思います。

ちなみに dotcloud の本番サーバに、ssh を使ってログインするには、

$ dotcluod ssh {namespace}.{app}

としてやれば OK。あ、{namespace}.{app}は各自の環境に読み替えてください。 あと、dotcloud の ssh はサーバが遠いのかなんなのか、入力がモッサリです。

まあ僕がハマったところはこんな感じ。で、実際使ってみて思った事。

ヤバイ、簡単すぐる 。

いや、本当、Python 使って Google App Engine 用の Application をシコシコと作ってたのが馬鹿らしくなるくらい簡単です。 ぶっちゃけた話、普通の Web Application を書くスキルさえあれば、dotcloud 用の Application は簡単に書けると思います。

で、まあそんな感じで、かなり素晴らしいと感じる dotcloud ですが、 最初の方にも書いたけど、 現在絶賛 beta 期間中 なので、 本格的な Web Application を書くには、まだパーツが足りないという感じです。

まあこれは時間が経てば解決してくれる問題でしょうが、 まあまだ本格的に使うには時間がかかりそうだと思います。 まあでも、簡単な Web Application を動かす分には問題ないので、 ちょっとしたモノなら dotcloud に deploy するのがいいんじゃないでしょうか。

あと今回は Perl を使いましたが、Perl 以外にも、PHP、Ruby、Python、node.js 等、 様々な Programming Langauges をサポートしているので、他の言語を使ってる方でも、 問題なく使えると思います。

まあ beta の招待コードは、メール送ってもずっと来ない、 ということはなさそうなので、dotcloud を試してみたい方は、 一度 beta に参加するのもいいんじゃないでしょうか。

というわけで以上、dotcloud を試してみたって話でした。

#FIXME