読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

CloudBeesのPaaSでJava EEアプリをクラウドへ簡単に展開!

GlassFish Jenkins CloudBees Java EE 7 Java EE 6

現在ではCloudBeesではPaaS環境の提供がなくなっているため本記事は古いものとなります。itpro.nikkeibp.co.jp

無償でJava EE系APがのるPaaSとしてはOpenShiftなどがあります。kikutaro777.hatenablog.com

Java 8が無事にリリースされて、Javaの世界が盛り上がってる気がします(^^)

今日はこれから「JJUGイベント 「祝☆Java 8 Launch」」に参加予定です。
http://jjug.doorkeeper.jp/events/9344

この勢いでJava EE 7も盛り上がると面白そうだなーと思っているのですが(笑)

……

3月の初めにTechCrunch Japanで「Java PaaSのCloudBeesが早くもシリーズCで$11.2Mを調達」という記事になっていたCloudBeesを触ってみたところ、なんじゃこりゃーー、ズコーッ、ってくらい簡単にJava EEが使えるクラウドサービスでした。

意外にも日本語で画面キャプチャ付の情報とか少なかったので、まとめてみました。

Herokuや他のクラウドサービスを全て確認したわけではないのですが、GlassFish4やWildFly8まで含めて提供されてるクラウドサービスが他にあるのかなぁ?と(^^;知りたいです。

CloudBeesとは?

主にJavaを中心としたPaaS基盤を提供していて、ソースコード管理からJenkinsを利用したビルドやデプロイまでトータルに含んだサービスとなっています。

英語のWikipediaはこちら
http://en.wikipedia.org/wiki/CloudBees

http://www.cloudbees.com/

f:id:kikutaro777:20140320191329j:plain

自分がCloudBeesの存在を知ったのは、JJUGでよくJenkins開発者である川口耕介さんの名前を聞くのと、Jenkins勉強会に過去何回か参加していたためですが、実際に使ったのは今回が初めてです。

そういえば今年のはじめ、CloudBees社のCTOに川口さんがなられて話題になっていました。
海外で日本の方がCTOって…しびれるなぁ。

まずは登録(Sign Up)

サイトにある「Try it for Free!」または右上の「Sing Up」から登録をします。

GitHubやGoogleのアカウントを利用することもできるので、簡単に登録するならそちらが良いかと思います。

f:id:kikutaro777:20140321002917j:plain

無料枠は当然ながら色々制約があるのですが、詳しくは以下Pricingの表にあります。
http://www.cloudbees.com/platform/pricing/devcloud.cb

ユーザ数が3、Jenkinsのビルド時間トータルが月100分、その他に容量やサポートなどありますが、登録時にクレジットカード情報などは不要で、ちょっと試しに使ってみるには、とてもお手軽な感じです。

豊富なメニュー

Sing Up後、以下のような画面が表示されます。

f:id:kikutaro777:20140321003521j:plain

左上の「Click Start」を押すと、アプリケーションの選択肢メニューが出るのですが、これがすごい豊富。
一通りキャプチャしてみました。

f:id:kikutaro777:20140321003604j:plain

f:id:kikutaro777:20140321003622j:plain

f:id:kikutaro777:20140321003627j:plain

f:id:kikutaro777:20140321003632j:plain

f:id:kikutaro777:20140321003638j:plain

f:id:kikutaro777:20140321003644j:plain

Java系ではTomcatをはじめ、Jetty、GlassFish3、GlassFish4、JBoss71、Wildfly8などが選べますし、Play Framework2もあります。GroobyのGrailsやScalaのLift、Node.jsやVert.x、GoやCloujure、Erlang、Rubyなどもあったり。Senchaなんかも。

GlassFish4以外は試せてないのですが、なんかすごい(^^;

あと個人的には「PrimeFaces Showcase」があるのと「with SendGrid」系があって面白かったです。どんなのか、是非試してみなければ。

GlassFish4 Appを選択してみる

とりあえず今回はGlassFish4 Appを選んでみました。
Full PlatformとWeb Profileがちゃんと選べるのですが、とりあえずWeb Profileで。

f:id:kikutaro777:20140321004848j:plain

メニュー選択後、自分の場合は以下Jenkinsのprovisionedの画面が出てきて、少し待つ必要がありました。5分程度でしたが。

f:id:kikutaro777:20140321004934j:plain

f:id:kikutaro777:20140321004944j:plain

で、メニュー選択後、アプリケーションの名前を入れます。

f:id:kikutaro777:20140321005104j:plain

名前を入れて進むと、ソースのリポジトリ、Jenkins、アプリケーション、DBの準備が開始されます。

f:id:kikutaro777:20140321005151j:plain

f:id:kikutaro777:20140321005310j:plain

完了したので、ダイアログを閉じます。

f:id:kikutaro777:20140321005506j:plain

ホーム画面をみると、それぞれできてます。

f:id:kikutaro777:20140321005651j:plain

アプリケーションをみてみると、以下のように表示されます。

f:id:kikutaro777:20140321005842j:plain

URL叩くと、テンプレート的に作成されたアプリケーションが表示されます。

f:id:kikutaro777:20140321005920j:plain

これだけでもうGlassFish4の上にデプロイされたアプリケーションが使える状態です。なんて簡単なんだ!!!

個人的にはすごい感動したのですが(^^;

でも、さらにすごいのはこれから。

コードの取得

ここまででテンプレができていて、Gitのリポジトリも生成されてるので、コードを取得してみます。

メニューの「repos」をみると、GitのURLが確認できます。

f:id:kikutaro777:20140321010412j:plain

普通にコマンドでgit cloneとかしていってもいいのですが、とりあえず自分はNetBeansを使いました。(ちなみにNetBeans 8)

f:id:kikutaro777:20140321010615j:plain

メニューでコピーしたURLと認証情報を入れて、淡々と進めていきます。

f:id:kikutaro777:20140321010713j:plain

f:id:kikutaro777:20140321010758j:plain

f:id:kikutaro777:20140321010804j:plain

f:id:kikutaro777:20140321010812j:plain

cloneされたプロジェクトが表示されます。以下のような感じ。

f:id:kikutaro777:20140321010852j:plain

JSF書いてみた

取得したコードは一旦消して、JSFの簡単なサンプル作ってみました。

プロジェクトのプロパティでGlassFish4を選んでおいて

f:id:kikutaro777:20140321011017j:plain

フレームワークからJSFを選択します。ここではついでにPrimeFacesもつけときました。

f:id:kikutaro777:20140321011109j:plain

f:id:kikutaro777:20140321011116j:plain

f:id:kikutaro777:20140321011123j:plain

で、index.xhtmlを以下のように定義して

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>My First app on CloudBees</title>
    </h:head>
    <h:body>
        <h:form>
            <p:panel header="PrimeFaces Panel Header">
                <p:calendar />
            </p:panel>
        </h:form>
    </h:body>
</html>

ローカルで実行するとこんな感じ。しょぼしょぼですが(^^;

f:id:kikutaro777:20140321011234j:plain

プロジェクトはこんな風に変わってます。

f:id:kikutaro777:20140321011304j:plain

で、コミットしてプッシュします。

f:id:kikutaro777:20140321011437j:plain

f:id:kikutaro777:20140321011445j:plain

f:id:kikutaro777:20140321011453j:plain

f:id:kikutaro777:20140321011535j:plain

f:id:kikutaro777:20140321011542j:plain

f:id:kikutaro777:20140321011602j:plain

これで終了すると…なんと、CloudBees側でJenkinsがプッシュトリガーに自動ビルドを開始して、そのままデプロイしてくれます。マジすか。

自動ビルド&自動デプロイ

上記の操作後にCloudBeesのJenkinsをみるとタスクがピコピコしててビルドしてました(^^;

f:id:kikutaro777:20140321011753j:plain

で、成功すると、そのままデプロイまでしてくれて、さっきローカルで動かしたのと同じアプリケーションがあがってるーーーーー

f:id:kikutaro777:20140321011855j:plain

すごい!

GlassFishやWildFlyをクラウドで利用したい場合って、今の段階だと多くが、仮想マシンを一旦立てて、インストールして…という流れだと思いますが、CloudBeesならAzureのWebサイトみたいな感覚でお手軽に使えてしまうのが嬉しいですね。

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村