BluemixとJazzHubを使ってNode.jsアプリやJava Webアプリを作ってみた:Cloud FoundryベースのオープンPaaS(1/3 ページ)
IBMが提供しているコードネーム「Bluemix」というPaaSがあります。2014年6月の時点ではベータ版で無料で使えるということなので、使ってみました。他のPaaSと同様に、手軽に開発ができる環境が用意されています。今回は、同じくIBMが提供する「JazzHub」というサービスも使って、Webブラウザーでの開発についても紹介します。
Bluemixとは
Bluemixとは、IBMがベータ版で公開しているPaaS(Platform as a Service)のことです。現在はいろいろな機能が無償で利用できますが、正式リリースされると有償となるようです。これは「Cloud Foundry」をベースにして開発されているサービスで、基盤にはIBMのIaaSである「SoftLayer」を使っています。ユーザーインターフェースやサードパーティのサービスとの連携機能は独自に開発しているようです。
Cloud Foundryについては、「DevOps時代のJavaプログラマのためのオープンクラウド入門(2):Vagrantで手軽に構築してオープンPaaS「Cloud Foundry」を理解する (1/4) - @IT」などをご覧ください。
Bluemixの紹介ページは「IBM developerWorks 日本語版 : Codename: Bluemix」にあります。Cloud Foundryを使ったことがあれば、すぐに使い始めることができそうです。実際にアカウントを登録して使ってみましょう。
IBM IDの取得
まず、Bluemixを始めるには、「IBM ID」が必要なので取得しましょう。Bluemixのサイトで、「Sign up for the free beta」をクリックすると登録画面になります。
必要事項を入力して「Submit」をクリックすると、指定したメールアドレスに「Codename: Bluemix - Confirmation of your trial」という件名で確認のメールがきます。本文の「Click here to complete your registration.」をクリックするとWebブラウザーが表示されます。そこでログインをすれば登録が完了します。
うまくいかないときは本文内の「If clicking the link does not work, then copy the following URL to your Web browser:」の下にあるURLをWebブラウザーで開けば同様にして登録を完了できます。IBM IDの登録ができたら、Bluemixのサイトへログインした状態になります。
ちなみに、アカウントはIBM IDを使っているため、Bluemix上でアカウント情報を変更することはできません。例えば、IBM IDのパスワードを変更するには、「IBM ID 登録」から申請するといったように、IBM IDの管理画面で変更をすることになります。
一度、右上のアイコンをクリックしてメニューを表示し、「Log out」をクリックしてログアウトします。Bluemixのサイトへ再度ログインするには、「https://ace.ng.bluemix.net/」へアクセスします。右上にある「LOG IN」をクリックして表示される画面でIBM ID(登録したメールアドレス)とパスワードを入力して「Sign in」をクリックします。
ログインした直後は、ダッシュボードが表示されます。「MEMORY: 0B/2GB」という表示から使用可能メモリは2GBで現在は使っていないこと、「APP HEALTH」が0となっていることから動いているアプリケーションは0だということ、「SERVICES:0/10」という表示から利用できるサービスは10でまだ1つも使っていないことが分かります。この画面で自分が管理しているBluemixのアプリやサービスの概要を知ることができます。上部のメニューにある「DASHBOARD」をクリックすると、この画面になります。覚えておきましょう。
使えるテンプレートや実行環境、拡張機能、BaaS、DB、開発ツールを見てみよう
ダッシュボードからアプリやサービスを作成することもできますが、先にどんなアプリを作成したり、どんなサービスが使えたりするのか、確認をしたいところです。上部のメニューにある「CATALOG」をクリックすると、カタログが表示されます。カタログで紹介されているものをクリックすると、そこからすぐにアプリやサービスを作成することもできます。
「Bolierplates」には次の6つのテンプレートがあります。テンプレートであらかじめ用意されたサンプルアプリが生成されるので、すぐに使い始めることができます。「Node-RED」は知らない人も多いと思いますが「モノのインターネット(Internet of Things、IoT)」で注目されているNode.jsのオープンソースプロジェクトです。
- Internet of Things(IoT)
Node-RED、TimeSeriesDatabase、InternetOfThingsを使ったアプリ - JAVA Web Starter
Java Web Runtimeのアプリ。IBM DataCache Serviceを使っている - Mobile Cloud
AndroidやiOS向け向けのモバイルアプリ。端末のデータ共有やプッシュ通知のデモが含まれている。BaaS(Backend as a Service)機能といえそう - NODE JS WEB STARTER
Node.js Runtimeのアプリ。IBM DataCache Serviceを使っている - Node-RED
Node-RED、TimeSeriesDatabaseを使ったアプリ - JAVA+DB Web Starter
Java JPAを使ってSQLのデータベースへ接続をするアプリ
「Runtimes」は実行環境です。使える実行環境は「Liberty for Java」(Java)、Node.js(JavaScript)、Ruby on Rails(Ruby)、Ruby Sinatra(Ruby)、Bring Your Own(好きなプログラミング言語)となります。「Bring Your Own」は自分でカスタマイズした環境を用意したい場合に選択します。Liberty for JavaとNode.jsはIBMが実行環境をサポートしますが、Ruby on Rails、Ruby Sinatra、Bring Your Ownはコミュニティにより提供されるものをそのまま使うことになります。
「Add-Ons」は拡張機能です。アプリケーション管理と監視のための機能が提供されています。アプリケーションインスタンスを自動で増やしたり減らしたりすることができる「Auto-Scaling」やアプリケーションの稼働状況を監視したり分析したりするための「Monitoring and Analytics」といったアドオンがあります。
「Web and Applications」はアプリケーションの性能を強化する機能を提供します。データキャッシュやセッションキャッシュ、シングルサインオンといった機能を提供するものがあります。クラウドベースのメール配信サービスである「SendGrid」や、クラウドの電話APIサービスを提供する「Twillio」も使えるようです。
「Mobile」はモバイルアプリのバックエンド開発に便利な機能を提供します。iOSやAndroid端末へプッシュ通知をする機能を提供する「Push」や、DBaaS(Database-as-a-Service)のプロバイダーである「Cloudant」が提供するデータベース機能をモバイルアプリで簡単に使えるようにする「Mobile Data」といったものがあります。
「Data Management」ではデータベースの機能を提供します。MySQL、PostgreSQL、MongoDBといったコミュニティベースのものから、IBMが提供するDB2ベースのSQLDB、サードパーティが提供する「ClearDB MySQL Database」「ElephantSQL」といったものが使えます。
「Big Data」では、ビッグデータを管理するための機能を提供します。Hadoopベースの「MapReduce」や、時系列のデータを追加したり集計したりするのに便利な「Time Series Database Service」があります。
DevOpsでは、CI/継続的デリバリをサポートする機能を提供します。「DevOps Services」「MobileQualityAssurance」といったものがあります。
大体どんな環境が用意できそうか分かったでしょうか。全部使うわけではありませんから、興味のあるものや、必要そうなものから使っていけばいいでしょう。柔軟な選択ができるのはPaaSの良い点の一つです。
Copyright © ITmedia, Inc. All Rights Reserved.