CloudbeesでPlayframework for Javaを使ってみるテスト

■Playframework for Javaでアプリ作成
ドキュメントはhttp://playdocja.appspot.com/documentation/1.2.2/homeを参考。

  1. 環境作成&最初のアプリケーションを生成
  2. eclipsifyコマンドで作成されたアプリケーションをelcipse project化
  3. HellWorldアプリを実装

■HelloWorldアプリケーションをCloudbeesで動かす環境作成〜デプロイ

  1. Cloudbeesへのユーザー登録
  2. Cloudbeesで無料サービスを申し込み、データベースを作成。
  3. http://wiki.cloudbees.com/bin/view/RUN/Playframework に従う。

うpしたアプリケーションはこれです。*1ちゃんと動いてますねー。
http://firstapp.minokuba.cloudbees.net/

以下、自分向けの覚書。

・myAppに対して行うのは以下の設定。

  1. application.confにJDBCの設定を、dependencies.ymlにcloudbeesモジュールへの依存関係を定義
  2. play deps myApp -syncでcloudbeesモジュールとの依存関係を生成

JDBCの設定は「Datasource configuration tips」を見ながら書く。上記のwikiにあるサンプルは間違ってます。たぶんこんな感じ


db=mysql
db.url=jdbc:mysql://(DBサーバ):(ポート)/(データベース名)
db.driver=com.mysql.jdbc.Driver
db.user=xxx
db.pass=xxx

jpa.dialect=org.hibernate.dialect.MySQLDialect
(xxxは環境依存。Datasource configuration tips見ながら設定)

・bees:app:deploy コマンドで指定する公開鍵・秘密鍵は以下のURLで取得できる
https://grandcentral.cloudbees.com/user/keys

感想としては、すげー楽。まだ全然使い込んでないけど、playframework自体生産性は偉い高いし、プロジェクトの雛形まで作ってくれるので事前準備もとても楽。cloudbeesへのアップロードもplayの実行環境でコマンド叩くだけ出できてしまう。playframeworkは自分自身でサーバを持っているので、開発手順的には

  1. elipse上でHTMLファイルとクラスを作る
  2. play run myAppを実行してローカルでサーバー起動*2
  3. 動作確認したらplay bees:app:deploy myApp --app-name firstapp --app-domain minokubaでアップロード

以上終了!ですもんねーこりゃ楽だわ。

あとこうやって動かしてみると、仮想化考慮しないとクラウド(特にPAASとかIAASとか)ってホスティングサービスと変わんなくね?と思ってしまう自分がいます。まぁ個人的に使う分には、使いやすいから便利だよね。ちょっとWeb関連のお勉強しとこうかと思っていたので、この環境でちょろアプリとか作ってみようかと考え中です。今時Play for JavaScalaじゃねーのってツッコミは回避で一つ。(Scalaまで手を出すと挫折しそうなので…)

以下は自分向けTODOタスク

  1. mysql環境を構築。ローカルPCからCloudbeesのDBが使えればいいのにな…→できた。サーバ直接指定すればおk!記載例を合わせてみた。
  2. デプロイまでの手順を自動化
  3. play for javaにあるサンプルブログを開発してひと通り学習
  4. 何を作るべきかを考えるw お遊びだとbotとか?D&D関連のツールとか作ってもいいかな…。

*1:実験しながらちょこちょこいじっているので、原型とどめていませんがw

*2:実行時にWTP動的Webプロジェクト的にeclipseプロジェクトを直接参照できるのでデプロイ作業なし。同期をとるのではなく直接見に行くのでコストもかからん。