はいどうも。 最近、麻婆春雨の作り方を訓練中のおっぴーです。
暑い夏にむけて、いいですよね、マーボー。 食欲をそそるごま油の香り、ピリッと爽快な辛さ、そして、少し濃い目の味。 夏でもご飯の最高のお供ですよね。 麻婆春雨と白いご飯でこれから来る夏でも夏バテ知らず、でゆきたいと思います。
ということで、今回はBluemixのご紹介です。
BluemixはHerokuのアドオンではありません。
IBMが提供するPaaSであり、Herokuの後発サービスにあたる競合サービスです。 競合サービスとして、調べる機会があったのでまずは基本のキ、アプリケーションのデプロイ、Herokuでいうところの
git push heroku master
を行うところまでを紹介したいと思います。
このチュートリアルを実行するまえには、このページにしたがってBluemixのフリートライアル用アカウントを作成してください。
さて、Bluemixのウリの1つはwatsonというIBMが誇るコグニティブコンピューティングの機能をAPIとして利用できることです。 そのAPIの1つであるPersonality Insightsのチュートリアルが紹介されているページを発見したので、これで試してみましょう。 このチュートリアルを完了すると、文章からその人の性格をわりだす、というサービスができあがります。
なお、Bluemixのフリートライアルアカウントの作成以外にも事前準備が必要な点があるかもしれません。 下記の手順でうまくいかない!など、お困りでしたらコメントをいただけると幸いです。
まずはCloudFoundryCLIのインストール
BluemixはSoftlayerというIaaSサービスを基盤として、Cloud Foundryを利用して構築されているPaaSです。
このため、デプロイにもCloudFoundryのCLIが提供するコマンドを用います。 なお、Bluemixのコンソール画面でも、アプリケーションを作成する際に、CloudFoundryをもちいるか、などを選択する箇所があります。
まずは、CloudFoundryのCLIのgithubから利用しているOSにあわせてStable Installersのなかから選んでダウンロードします。 ダウンロードをしたら、インストーラーを実行しましょう。
インストールが完了したら、ターミナルを立ち上げて下記のようにcf -v(CloudFoundryCLIのバージョンを表示)コマンドを打ってみましょう。
cf -v
下記のように表示されれば、正常にインストールされています。(※表示されている日時は実行時に変化します)
cf version 6.11.3-cebadc9-2015-05-20T18:59:33+00:00
次にBluemixを利用するために必要な初期設定を行います。
下記は、localeを日本語に設定しています。 デフォルトが英語になっているのですが、むしろ、そのほうがエラー内容から解決策が検索しやすかったり、設定してもメッセージが英語のままだったりするのであまり意味はないかもしれません。(が、設定できるよ、ということで紹介します。)
cf config --locale ja_JA
次はCLIを通じてアクセスするapiのエンドポイントを設定します。 APIのエンドポイントは、リージョン(現在は、米国と英国のみ)によってドメインが変わります。 今回は、米国のリージョンを利用したので、下記のように設定しました。
cf api https://api.ng.bluemix.net
次に、上記のエンドポイントのどこにあるアプリケーションを扱うのか、loginコマンドで指定します。
cf login -u アカウント名(Bluemixアカウント作成時に登録したメールアドレス) -o 組織名 -s スペース名
上記で何を入力するのか、という点は下記をご参照ください。
コマンドを実行するとパスワードの入力を求められますので、入力します。 認証が成功すると、APIのendpointや組織名やスペース名、などが表示されます。 一連の流れは下記のように、表示されます。
API endpoint: https://api.ng.bluemix.net Password> Authenticating... OK Targeted org 組織名 Targeted space スペース名 API endpoint: https://api.ng.bluemix.net (API version: 2.27.0) User: アカウント名 Org: 組織名 Space: スペース名
以上で、Cloud FoundryのCLIの導入と初期設定は完了です。
アプリケーションをつくる
アプリケーションの作成もサービスの追加も、コンソールから簡単に行えます。
まずは、「Cloud Foundryアプリ」の「アプリの作成」をクリック。
今回はWebアプリを作成するので「WEB」を選択します。
その後、プログラミング言語を選択します。今回はサンプルアプリケーションがnode.jsですので、それを選択しましょう。
プログラミング言語を選択すると、下記の画面が表示されるので「続行」をクリックしましょう。
最後にアプリ名を入力し、「完了ボタン」をクリックすればアプリケーションの作成は完了です。
サービスを追加する
サービスの追加も同様にコンソールからやってみましょう。
まずはダッシュボードにもどり、作成したアプリケーションのアイコンをクリックしましょう。
画面が切り替わったら、「サービスまたはAPIの追加」をクリックします。
サービスの一覧が表示されますので、そこから「Personality Insights」をクリックします。
どのスペースのどのアプリにサービスを追加するか、などが表示されますので、確認したのち「作成」をクリックします。
最後に、アプリケーションを再ステージするか、の確認が行われますので、再ステージを押下します。
これでPersonality Insightsが有効になります。
プログラムをデプロイする
さて、Personality Insightsのチュートリアルが紹介されているページの内容に戻ります。 まずは、githubからコードをcloneします。
git clone https://github.com/watson-developer-cloud/personality-insights-nodejs.git
次に、cloneしたディレクトリに移動して、manifest.yml を編集します。 これは、Bluemix上にデプロイするアプリケーションについての設定ファイルです。 manifest.yml自体は、Cloud Foundryの機能の一部ですので、詳しくはこちらあたりをご参照ください。
cd personality-insights-nodejs vi manifest.yml
編集はそれほど面倒ではありません。 applicationsのnameをアプリ作成時のアプリケーション名に、servicesは追加したサービス名を記載します。
declared-services: personality-insights-service: label: personality_insights plan: 'IBM Watson Personality Insights Monthly Plan' applications: - name: 登録したアプリケーション名(※ここ編集します) command: node app.js path: . memory: 256M services: - 追加したサービス名(※ここ編集します)
ちなみにサービス名ですが、コンソールの下記の画面から確認できます。
さて、編集が完了したらデプロイしましょう。 デプロイコマンドはcf pushです。さっそく打ってみましょう。
cf push
pushがうまくゆくとデプロイが開始されます。 デプロイ中はいろいろと表示されますが完了すると下記のような画面が表示されます。
さて、urlsに表示されているURLにアクセスしてみましょう。 画面が表示されたら、デプロイは無事完了です。
最後の方は駆け足になってしまいましたが、Bluemixもアプリの作成から高機能なサービスの利用、デプロイが簡単できることはご理解いただけたのではないでしょうか。 サービスの料金体系は?リージョンは?Herokuとくらべてどうなの?など気になることはたくさんありますが、それはまた別の機会にご紹介したいと思います。
補足
ちなみに当初はこのURLで紹介されているチュートリアルを実行する予定でした。 が、途中まで行ったところで、Uesr ModelingがPersonality Insightsにサービス名が切り替わった(と思われる)ことに気づきブログの内容を変更しました。
ドキュメントはしっかりされているようなのですが、突然の変更によるハマりポイントもまだまだありそうな予感です。