teratail Report vol.6

2017/12/15

無料でWebアプリをデプロイできる!及川卓也氏がIBM Cloudの魅力に迫る

無料でWebアプリをデプロイできる!及川卓也氏がIBM Cloudの魅力に迫る

こんにちは。teratail Report編集部です。

“teratail Report”は、エンジニア一人一人の中に隠れている「貴重な情報」を、日本中のエンジニアに届けていくメディアです。技術の最前線を走るエンジニアたちの「考え方・捉え方・経験や思想」には、オンライン上には出てこない「貴重な情報」がたくさん隠れています。teratail Reportは、実際にエンジニアに接し、その根幹を明らかにしていきます。

第6回の今回は、2017年11月から名前を変え新しく生まれ変わった「IBM Cloud」にフォーカス。「ライトアカウント」の設定によりクレジットカードを登録せずとも無料で256MBのCloud Foundryメモリまで使用することができる上、クレジットカードを登録したらさらに無料で使用できるということで注目を浴びています。IBMでDeveloper Advocateとして活躍する萩野泰士氏に加えて、Microsoft、Googleを経てエンジニアリングアドバイザーとして活躍する及川卓也氏をインタビュイーとしてお呼びし、IBM Cloudがどんな風に生まれ変わったのかその実情に迫ります!

はぎの たいじ萩野 泰士

IBM Developer Advocacy Worldwide, Developer Advocate

元美容師にて元音楽家。ソフトウェアエンジニアへ転身後、外資系ベンダー、起業、商社系SIerを経て、現在はIBMグローバルチームのDeveloper Advocateとして技術者一人ひとりへリーチした技術者のためのAdvocacyを展開。また、Developer Relationsという新しい技術者マーケティングにも注力。

  • Twitterアカウント
  • GitHubアカウント
  • Facebookアカウント

おいかわ たくや及川 卓也

フリーランス エンジニアリング・プロダクトアドバイザー

大学を卒業後、外資系コンピュータメーカを経て、マイクロソフトにてWindowsの開発を担当。Windows Vistaの日本語版および韓国語版の開発を統括した後、Googleに転職。
ウェブ検索やGoogleニュースをプロダクトマネージャとして担当。その後、Google ChromeやGoogle日本語入力などのプロジェクトをエンジニアリングマネージャとして指揮する。2015年11月より、Incrementsにてプロダクトマネージャとして従事後、独立。

  • Twitterアカウント
  • GitHubアカウント
  • Facebookアカウント

OSS活用との相性良し。”ベンダーロックインしない”のが魅力

及川卓也氏(以下、及川)AWSやMicrosoft Azure、IBM Cloudなど、大手ベンダーのクラウドサービスはそんなに差がなくなってきましたよね。

萩野泰士氏(以下、萩野)そうですね。少し前はそれぞれ特色があったんですけど、いまはどこもIaaSもPaaSも備えていて、機能としてできることに大きな差はないですね。

及川その上で「IBM Cloudを選ぶといいぞ」という特色をあげるとしたらどんなところなんでしょうか?

萩野1人のエンジニアとして言うと「ベンダーロックインしないこと」は魅力的だなと思ってます。PaaSを支えるフレームワークからその上に乗っているサービス各種まで全てオープンソースで、いざIBM Cloudを使いたくなくなった場合も乗り換えやすいんですよ。

及川その姿勢はすごく面白いですね。IBMさんは以前はエンタープライズ向けなどに一括したサービス提供を推すスタイルが強かったと思うんですが、オープンな技術を積極的に採用し始めたのはなぜなんでしょう?

萩野IBMのグローバル全体で「よりデベロッパー側に立ち、よりデベロッパーにリーチする」という方針を打ち出しているので、自然な流れでサービスもオープンになってきました。もともとEclipseやApache、LinuxなどOSS活動は昔からやってきていて、IBMは地球が生まれた頃からオープンだ、とも言えるんですけど(笑)

オープンにすることの理由(ワケ)とは

及川僕ももともとIBM Bluemix(現在はIBM Cloudに改名)の頃から使ってみていたんですけど、PaaSとしてCloud Foundryを使っているときにはそれ自体がOSSかどうかってあまり感じないですよね。技術がオープンであることで、ユーザ側のメリットはどういうところにあるんでしょうか?

萩野一つはUI(ユーザ・インターフェース)の問題です。サービスがベンダー独自のものだと、UIもやはりベンダー独自に寄ってくるんですよ。サービスを乗り換える度にコマンドを覚えなおしたり、システムを覚えたりという必要があると面倒ですよね。

IBM CloudにもBluemixコマンドがありますけど、内部ではCloud Foundryインターフェースをラップしています。ユーザはIBM CloudのUIを意識することなく、cfコマンドを使ってCLIで操作することができます。

及川Cloud Foundryのツール群やシェルなど、IBM Cloudに限定しないようなOSS的なエコシステムを広げていけそうですね。

萩野もう一つの利点は、ユーザ同士が技術をオープンにできるという点です。例えばNode-RED(※1)はNodeを作ったらライブラリとしてクラウド上に公開できますし、「よく使うフローのパターン」を公開することも容易です。みんなで作り上げていく、オープンソースならではのスタイルです。

Node-RED(※1):Node.jsが動く環境であればどこでも動かせるオープンソースソフトウェアであり、Nodeと呼ばれるNode.js処理のハコを繋げて視覚的な開発ができるフローエディタサービス。Nodeを自作することもできる。

及川IBM Cloud Functionsについても他社で似たようなサービスが出ていますが、「IBMのサービスはOSSである」ということの旨味があるんでしょうか。

萩野IBM Cloud FunctionsはOpenWhiskをベースに作られているので、自分のローカルでの実行環境などで作ったものをクラウドに投げて動かせるのがいいと思っています。いちいち、確認するために、クラウドに投げる必要がありません。

Node-REDもIBM Cloud Functionsも開発の即時性が強いサービスなので、ハッカソンの技術サポートに行くと登場シーンが増えていますね。

及川Node-REDもIBM Cloud FunctionsもIoTの開発シーンで利用されることが多い印象ですね。もともとそういう利用を想定していたのでしょうか?

萩野Node-REDの開発は「IoTのサーバサイドを簡単に作れないか」というところを端緒としているので、意図として正しいですね。プログラミングをしないで開発できるIoTプラットフォームという位置づけです。最近ではWebアプリケーションの開発や実行環境として使われる例も増えてきました。

及川開発の即時性が強いのでハッカソンなどのPoCには向いていますよね。逆に重厚な開発やチームでの開発は難しいのかなという印象を持っているんですが、どうなんでしょうか。

萩野Node-REDは、基本的には一つのフローエディタなので難しいところはあるのですが、作ったNodeはJSONの定義体にエクスポートできるので、そのような形でチーム開発することは可能です。また、それぞれ作ったNodeを読み込みなおして繋げることができますし、git管理することも可能です。

99.9%を担保するIBM Cloudの可用性

及川商用利用する上で、開発面とは別に運用面についてはいかがでしょうか?

萩野現在4つのRegionが選択できますが、2つ以上のRegionにまたいでアプリケーションを置きロードバランサーを設定することで、99.9%の可用性を担保することができます。運用面でいうと、多少設計の工夫は必要ですが十分商用に耐えうると思います。

及川アプリケーションをRegion、組織、スペースそれぞれに設置するということですよね。データの同期やスケールアップも手軽だと嬉しいところなんですが。

萩野スケールアップについては、トグルスイッチなどで簡単に設定しインスタンス内で完結することができすごく手軽だと思います。オートスケール用のツールもあって、閾値を決めておくだけでスケールアップできますね。

データについてはCloudantというNo SQLデータベースであれば、デフォルトでリージョン間を同期できる機能を持ってますので、これを使うとこちらも難しくなく実現できると思います。

及川なるほど。ちなみに日本にRegionを置かないのか、というところは日本のユーザは結構気になっていると思うんですが(笑)距離的な問題で、パフォーマンスは気になるところです。

萩野いずれTokyo Regionを、とは言われていますが、レイテンシーの観点でいうとパフォーマンスは現状でも、相当瞬発力を求める処理でない限り十分商用に耐えうると思います。ただ、それ以外にデータを国外に置くという問題がありますね。IaaSにはTokyo Regionがあるので、ポリシー上どうしても国外に出せないという方にはこちらをオススメしています。

Watson APIのConversationで、会話Botを5分でつくってみる

及川IBM Cloudの特徴でいうと、やはりサービスの多さとWatson APIですよね。そういえば最近、トライアルアカウントの仕組みが変わったと伺ったのですが。

IBM Cloudで利用出来るWatsonのサービス一覧
ライトアカウントで利用することができるWatsonのサービス一覧。ほとんどの機能を試すことができる。

萩野30日間の無料トライアルアカウントが廃止され、新たに「ライトアカウント」が設けられました。クレジットカードの登録なしでミニマムの機能を使い始めることができるようになりました。ライトアカウントでも、30個程度のサービスが使えます。

及川かなりたくさんのサービスが試せるんですね。やはり人気のVisual Recognitionが使えないのが少し残念ですが……。

萩野PAYGアカウント(※2)に登録していただくと、実は無料枠が用意されていて結構試すことができるのでオススメです。

PAYGアカウント(※2):Basicプランの従量課金方式のアカウント。月額料金は無料。

及川すぐに課金というわけではないので、気になっている方は登録して試してみると良さそうですね。Watsonの中で特にこれがオススメってサービスはどれですか?

萩野僕自身もよく使うのが「Speech to Text」と「Text to Speech」の機能です。それぞれ音声を文字に、文字を音声にしてくれるサービスです。

チュートリアルページに、この2つのサービスを使った「Unityちゃんと会話する」というサンプルアプリケーションがあって、先日のAR/VRハッカソンでも紹介しました。

「Watson×Unity!初心者でもできる、VR 空間で Unity ちゃんとおしゃべりアプリ!」(IBM×teratail)

テキストだけのBotならもっと簡単で、Conversationというサービスを使って30秒くらいでセットアップしてすぐ会話できます。ちょっとやってみましょう。

萩野Conversationのツールを立ち上げると、会話に必要な設定を追加できます。今回は拾いたいキーワードとして「お腹が空いた」、ダイアログ(返答するワード)に「何が食べたいですか?」を設定してみます。

すぐにテストツールが立ち上がるので、「お腹が空いた」と入力するとダイアログどおり「何が食べたいですか?」と返ってきました。会話を自動で学習するので、「おなかすいた」などのゆらぎも吸収して返答するようになります。

及川これと先ほど説明のあったSpeech to TextとText to Speechを組み合わせてスマートスピーカーなどでも利用できそうですね。

萩野結局この機能を利用したいのはチャットツールなどで、ツールへの連携が面倒なところだと思うんですが、他のサービスに簡単にデプロイする機能があります。

簡単にチャットサービスと連携してデプロイすることができる。

及川このサービスはアプリケーションをIBM Cloud上に置かなくても大丈夫なんでしょうか?

萩野大丈夫です。サービスのインスタンスを作って、資格情報を使ってRESTで呼び出すだけです。学習させる場合はクラスを作らないといけないのですが、オンプレや他のクラウドサービスと簡単に繋げることができる点を推しています。もちろん、IBM Cloud上のアプリとであればバインドするだけで使うことができます。

及川疎結合でかなり自由度が高いですね!

IBM Cloudを使ったレシピも続々公開!AdvocateチームのDA活動とは!?

及川IBM Cloudはすごくデベロッパー寄りになってきた印象なので、もっと気軽に使い始めてほしいですね。

萩野そうですね。これまでのIBM Cloudは「対営業」の情報が先行していたので、「対デベロッパー」の情報が増えるよう目指しています。サンプルの中ではGoogle APIのような他社さんの良いと思うサービスを使うなど、IBMのサービスに限定しない活動をしています。GitHubからコードも取得できますし、よりデベロッパーにとって嬉しい仕組みを作っていきたいと思っています。

現在世界中のDA(Developer Advocate)がIBM Code Patternsという、各分野のサービスを使ったアプリケーションのレシピを作成し公開しています。

IBM Code Patterns - IBMのDAが作成したさまざまな言語、分野のサンプルを見ることができる。

萩野Code Patternsは英語のみですが、僕ら日本のDeveloper AdvocateがMediumのブログで日本語での解説を書いたり、「IBM だチャンネル」というPodcastで解説をしたりといった活動を進めています。

及川ライトアカウントが設けられたことでよりスタートが手軽になりましたし、デベロッパーにとって使いやすい思想になっているのがいいですね。まずは興味のあるサービスを試してみて、魅力を感じたらストレージや他の機能を使ってみて、というのがよさそうです。今後にますます期待しています!

まとめ

リニューアルしてより使いやすく、よりデベロッパー寄りになったIBM Cloud。魅力的なサービスの一部を「ちょいかじり」して試してみるだけで楽しそうですね。

サンプルアプリケーション、DA活動など、エンジニアの皆さんに耳寄りな情報をこれからも追いかけていきたいと思います!

IBM Cloudのライトアカウントについてもっと知りたい方、アカウント登録ご希望の方はこちらからどうぞ。

それではまた次回のレポートで!