開発を加速したいアプリケーション開発者の悩みを解決
2014年6月30日に正式版がリリースされたIBMアプリケーション開発環境「Bluemix」は、オープンなPaaSとして提供されている。その登場の背景には、開発の加速というニーズがある。
本セッションで最初に登壇した松井学氏は「Web系、モバイルアプリやゲームの開発者は日々痛感していることだと思うが、リリースした直後はユーザーが飛びついてくるものの、しばらく経つと、ライバルがあらわれたり、バグが発覚したりなどで、だんだんユーザーが興味を失っていく」と語る。その対処法として、ユーザーのフィードバックを得て、それをアプリケーション開発に戻していく。瞬発的な獲得数より、アプリケーションを使い続けているユーザーをどれだけ多くするかが重要になる。
開発サイクルを速めたい開発者は、どんな悩みを抱えているか。大きなものとして松井氏は、開発環境面の以下の4点を挙げた。
- 実行環境のセットアップに時間がかかる。
- バックエンドサービスのセットアップ、アプリケーションの連携設定に手間と時間がかかる。
- 開発言語やツールは慣れたものを使いたい。
- 独自仕様のインフラに縛られるのは嫌だ。
これらの悩みを解決するのが「Bluemix」だ。SoftLayer上でオープンソースのCloud Foundryをベースに開発したもので、PaaSとして提供されている。大きな特徴としてあげられるのは、実行環境を作るのが速いことだ。たとえばNode.jsの環境であれば約30秒でできる。またAPIやサービスも、非常に充実している。
DevOpsの実現ということでは、たとえばGitにコミットしたら、そのままBluemixにユニットテストを走らせて、ビルドしてデプロイすることも出来る。ユーザーからのフィードバックを受ける仕組みもある。
さらにオンプレミス上の既存システムと、シームレスに繋げることができる仕組みも提供している。
オープンであることも大きなメリットで、IBMの自社技術だけで作って完全にロックインしているのではなく、アプリケーションのポータビリティが非常に優れている。そのためBluemixから他に移ることが可能で、アプリケーションの資産を守ることができる。
アプリケーション開発を支援するAPI、サービスは80を超えており、たとえば人工知能のWatson関連では12個のAPIが公開されている。IBMが研究開発してきた成果に加えて、オープンソースでよいものがあれば提供している。さらにサードパーティ、たとえばTwitterと提携し、ツイートの情報に対して感情などの付加要素を独自に加えた検索なども可能にしている。
Bluemixへのアプリ移植の留意点と活用事例
Bluemixには豊富な機能、サービスがあるが、開発者が気になるのは、自分が慣れ親しんできた既存のアプリ、言語などが使えるか否かだろう。ここでスピーカーが木村桂氏に交代し、対応状況や、既存アプリの移植における留意点などが紹介された。
Bluemixはアプリケーション開発環境を簡単に構築できる。何か新しいものを作るときに便利だということはわかるが、では、既存アプリケーションをBluemixに移行したいと思ったとき、簡単にできるのだろうか。気をつけるとしたらどういうところか。
まず一般的に、このような移植をする際に考慮するのは以下の点だ。
- アプリケーションの開発言語
-
DBの互換性
- (必要であれば)他のミドルウェアの互換性
- デプロイ方法の違い
- DBのコネクション方法
- 運用時のログ
アプリケーションサーバーは、JavaやNode.js、PHPなど、ほとんどが含まれていると思っていい。初めから用意されていないのはPerlくらいだが、Cloud FoundryのBuildpackの仕組みを使うことでメニューに用意されていない環境を取り込むこともできる。環境構築は必要なく、基本的にアプリケーションサーバーを選ぶだけでよい。
データベースの選択肢も充実しており、DB2、MySQL、MongoDB、CouchDB、Memcachedもある。こちらも基本的に選ぶだけ。
PaaSというと、何か制約があるイメージかもしれないが、普段使っているミドルウェアなども、ほとんどそのまま使える。
デプロイについては、基本はJavaのwar/earファイルのままでデプロイ可能となっている。ここではCloud Foundryの機能をそのまま使い。標準コマンドラインインターフェースcfを利用している。
DBのコネクションについては意識する必要がある。アプリケーションサーバーとサービスをバインドして接続するのだが、バインドしたサービスの接続増情報は、アプリケーションサーバーの環境変数VCAP_SERVICESから参照できる。またIDとパスワードを環境変数からJSONフォーマットで取得できる。この方法だとIDとパスワードを直接入力する必要が無くなるので、比較的セキュアな形でデータベース接続が可能になる。
最後の運用時のログは、Bluemix側に用意されている。PaaSだから見ることができない、ということはない。
ここで木村氏は、Bluemixの豊富なサービスの中から、人工知能サービス、Watsonを紹介した。現在、WatsonのAPIが使えるのはBluemixだけだ。
まずWatsonがクイズ番組に挑戦した時のビデオが流された。3つの選択肢から作曲家名を答えるクイズでは、リスト96%、ショパン10%、ブゾーニ6%。ここまで確率を出してリストと答えた。他の問題も同様だ。つまりWatsonは人工知能なのだが、万能の神のようなものではなく、確実性を把握しながら回答している。
その実例としてWatson Relation Extraction APIというものを実装している。これは文章を解析し、単語間の関連性を調べるAPIで、残念ながら現時点では英語とスペイン語のみだが、入力はテキストと言語の種類のみを指定して使える。現時点ではベータ版で、無料で使うことができる。
こちらも環境変数から接続情報の取得を行う。実例として「John Smith lives in New York, and he has been living there since 2001.」という文章を解析する。
単語の連結と用途を推測し、
- John Smithは99.5606%の確率で1人の人間(Person)である。
- New Yorkは99.3534%の確率で場所(Location)である。
- Heは95.5652%の確率で代名詞(Pro)であり、John Smithのことを示している。
- 2001は82.0601%の確率で日付(Date)である。
さらに言葉と言葉の関係を推測し、
- John Smithとheは64.5765%の確率で、同じ人間である。
と解析した。さらに各単語同士の関係を推測し、
- John SmithとNew Yorkは52.5653%の確率で「常設/住む」(resides in)の関係がある。
以上の様に「数値根拠を示した推測」を行っている。
木村氏は「Watsonを使えば、単なる機械翻訳以上の翻訳が期待できる」と語った。Watsonの日本語対応については、ソフトバンクテレコムと戦略提携しており、2015年中にサービス提供開始を目指している。
続けて松井氏から、Bluemixの活用事例が紹介された。
まずアナリティクス。たとえばデータウェアハウジングおよび分析用のアジャイル・プラットオームであるDashDBサービスを活用する。そこではRスクリプトやHadoopの環境が提供されている。
今流行のIoTでは、MQTTサーバー機能を提供するクラウドサービス「IBM IoT Foundation」とBluemixとがシームレスに連携できる。デバイス/アプリケーションは、MQTTプロトコルを使用し、IoT Foundationに接続する。
またBluemixとしてもブラウザ・ベースのコーディネーションツールNode-REDを提供しており、IoTサービスを利用してIoT Foundationに接続する。
さらにBluemixはオンプレミス環境の既存資産とも連携可能で、資産を有効活用することができる。
松井氏は最後に「まずは30日間フリートライアルでBluemixに触ってみて、どういうことに使えるのか、体感していただきたい」と語りセッションを終えた。