選ぶだけで即座にアプリケーションサーバーが起動、すぐに開発スタート
Bluemixの「ランタイム」とは、アプリケーションの実行環境(アプリケーションサーバー)のことです。例えば、Liberty for Javaを選択すると、Javaアプリケーションサーバーのインスタンスが30秒~1分で起動します。
同じクラウドサービスでも、IaaS(Infrastructure as a Service)では、サーバーの起動自体には1分もかかりませんが、開発が始められるまでには手間と時間がかかります。例えばJavaのアプリケーションサーバーを作りたい場合は、起動したインスタンスにJavaの実行環境、アプリケーションサーバー、HTTPサーバーなどをインストールして設定する必要があります。
PaaSであるBluemixでは、ランタイムを使うことでアプリケーションサーバーのインスタンスを起動し、すぐに利用できます。
ビルドパックで標準以外のランタイムを利用する
デフォルトではLiberty for Java、SDK for Node.js、Go、PHP、Python、Rubyが用意されています。それ以外のランタイムを利用するためのしくみがビルドパックです。
ビルドパックはCloud Foundryのコミュニティにより開発され、GitHubに公開されています。例えば、Liberty for JavaはJava 7に対応していますが、Java 8対応のアプリケーションサーバーが必要な場合には、GitHubからJava 8対応のビルドパックをダウンロードして利用します。
ランタイムにアプリケーションをデプロイする
開発したアプリケーションを実行するには、ランタイム上にデプロイする必要があります。通常はコマンドラインからデプロイ用コマンドを使いますが、より簡単にデプロイを実行する方法があります。
一つは、IBM Eclipse Tools for BluemixというEclipseプラグインを使う方法です。Eclipseにインストールすれば、EclipseからBluemixにデプロイできるようになります。
もう一つは、IBM Bluemix DevOps Servicesを使う方法です。IBM Bluemix DevOps ServicesはSaaSとして提供されている開発環境で、開発したアプリを直接Bluemixにデプロイできます。
Watson、IoT、DB……豊富なサービスもBluemixの魅力
Bluemixの「サービス」とは、アプリケーションの機能を拡張するコンポーネントです。
サービスは必要に応じて連携(バインド)して利用します。例えば、データベースと監視機能を利用するJavaアプリケーションを開発する場合、ランタイムでLiberty for Javaを選択し、サービスでSQL DatabaseとMonitoring and Analyticsを選択します。サービスを選択すると、30秒ほどでバインドが完了します。
Bluemixは、アプリ開発に必要な機能を提供するサービスを数多く提供しています。IBM製だけでなく、IBMのビジネスパートナーやCloud Foundryコミュニティが開発したサービスの利用が可能です。IBMのビジネスパートナーが自分のサービスをBluemixに登録し、ユーザーに公開するマーケットプレイスのようなしくみもあります。
荒木飛呂彦先生の実年齢を推測!? Bluemix注目のサービス
サービスは日々更新されており、コグニティブ(認知)・コンピューティング・システムであるWatsonや、ビッグデータ、IoTなど最先端技術のサービスがあります。
種類 | 名称 | 提供元 | 説明 |
---|---|---|---|
Watson | Personality Insights | IBM | 人と人とのエンゲージメントをサポートするために、ソーシャルメディアなどの分析による、個々人のプロファイリングを行う |
AlchemyAPI | IBM | 自然言語処理とコンピュータによる画像認識機能を活用し、スマートなアプリケーションを構築する | |
データ管理 | Cloudant NoSQL DB | IBM | NoSQLデータベース。分散DBaaS(Database as a Service)を提供する |
SQL Database | IBM | オンデマンドのリレーショナルデータベースをアプリケーションに追加する | |
IoT | Internet of Things(ベータ版) | IBM | デバイスデータにアクセスするためのAPIを提供する |
モバイル | Mobile Application Security | IBM | 基本的なアプリケーションセキュリティフレームワークを提供する |
Mobile Data | IBM | オブジェクト指向のAPIを経由し、スケーラブルで完全に管理されたデータベースへのアクセスを可能にする | |
Mobile Quality Assurance | IBM | 異常終了ログ、バグレポート、ユーザーフィードバック、品質メトリックなどを収集し、アプリの品質を計測する | |
Push | IBM | iOS/Android デバイスへのプッシュ通知を作成およびスケジュールする | |
ビッグデータ | Analytics Warehouse | IBM | データウェアハウジングおよび分析用のアジャイルプラットフォームを提供する |
Geospatial Analytics(ベータ版) | IBM | アプリケーションの境界を拡張し、リアルタイムの地理空間分析により、定義された地域でのデバイスの利用情報を取得する | |
Insights for Twitter | IBM | Twitter Decahose(Twitterの公開ツイート全体からランダムに10%分ピックアップしたデータ)を検索し、リアルタイム分析を行う | |
Webとアプリケーション | Data Cache | IBM | メモリキャッシュ機能を提供する |
Geocoding | サードパーティ | 住所から位置情報を取得して地理的位置を特定する機能を提供する |
顔認識アプリを開発できる「AlchemyAPI」
AlchemyAPIは、Watsonサービスの一つで、自然言語処理機能や画像認識機能のAPIを提供します。AlchemyAPIの画像認識機能を使えば、画像から人間の顔の位置、人数、性別、年齢などを識別する、非常に高度な顔認識アプリを開発できます。
年齢判定サイトで「27歳」と判定されたのも記憶に新しい、「ジョジョの奇妙な冒険」の作者 荒木飛呂彦先生の年齢も、AlchemyAPIなら高い精度で推測できます。荒木先生の写真で年齢を推測したところ、「Age 45-54」と、実際の年齢(55歳)に近い結果となりました。ぜひ試してみてください。
ツイートをリアルタイムに分析できる「Insights for Twitter」
Twitterの公開ツイート全体からランダムに10%分ピックアップしたデータを検索します。その際、ツイートした人の性別や居住地、感情(ポジティブ、ネガティブなど)でリアルタイムに分析するAPIを提供します。Twitterをもとにマーケティングや調査を行う際に便利です。
よく使う組み合わせはボイラープレートとして提供
Bluemixでは、ランタイムとサービスは自由に組み合わせることができますが、典型的な組み合わせは、ボイラープレートと呼ばれるテンプレートとして提供されています。例えば、データベースを扱うWebアプリを作りたい場合、Java DB Web Starterを起動すると、Liberty for Javaのランタイムに、データベースと監視のサービスがバインドされた環境が用意されます。