8月3日に日本初(?)となるBaaS MeetUpが開催されました。最初にLIGの菅原さんより「スクーでBaaSの知名度の低さを知り、知名度をあげようと思って開催しました。メリットデメリットを知った上で使ってもらって盛り上げたいと思っている」との挨拶で開始しました。
発表1:mBaaS運用のはなしと、ユーザができること
森藤(muddydixon) 氏 @ ニフティ
Nifty mobile backendというバックエンドサービスをやっています。機能はプッシュ通知・会員管理・認証・SNS・データストア・ファイルストア・位置情報などがあり、SDKが4種類(iOS/Android/Unity/JavaScript)あります。強みとしては裏に独自のIaaS(ニフティクラウド)があるので安定していることです。
3つの怖い話
http://www.slideshare.net/muddydixon/20150803-baas-meetup
食リソース鬼(ヒト(リソース)を食べる鬼)
- ペイロードの変更(Java-apns):Java-apnsのバージョンがある日突然変わっていて、お客様トラブルになった。
- エラーチェック:エラーチェックが大変難しい。tokenがinvaliedなのもあるのですが、非同期で送ってしまうと応答が返ってこない。巻き戻ってエラーチェックして再送処理をしなくてはいけない。リストの順序などわかっていないといけない。コネクションをたくさんはって送らなきゃいけない。
- 接続の変更:マルチテナントなので接続が異なります。接続を使いまわさないといけないのですが、接続をたくさん持っておこうとすると、リソース管理が大変になります。
→ 鋭意退治予定です。
ろくろくえり
首を長くしても終わらないクエリ。クエリに時間かかって詰まってしまいます。自分でクエリを書くのなら対応しようがありますが、クエリはお客様のデータです。エキスパートプランのみですが、クエリのサポートもしています。
→見つけ次第退治します。
でぃすくなし芳一
書き込み続けないとサービスが止まってしまう。書き込みできる領域を開けておかなければいけない。MongoDBはたいそう辛い運用をしなければいけないので、自前のディスパッチを使って、自動で空容量が大きいところにいれるようにしています。
→無限に書き込む場所を増やす仕組みで対応します。
運用が怖くないように頑張っています。
質問:ゲームでの導入事例はありますか?
回答:個人・法人問わずで大口のお客様含めて事例あります。大きなトラブルなく使えています。
発表2:IoT向けバックエンドであるMilkcocoaの特徴とは?
部谷 氏@ テクニカルロックスターズ
去年からβ版を提供していたのですが、今年からIoTに特化するためリニューアルしました。DBもMongoDBからCassandraに移しました。
なぜIoTにプラットフォームが必要なのか
IoTにバックエンドのサービスをどう使うのかというと、風力発電や水族館の水槽などでセンサーなどを使って状態を監視しているとします。リアルタイムにログデータを取り、常時監視していて、センサーがおかしいなという時に操作できるようなネットワークを構築する時に使います。
https://www.slideshare.net/secret/Jh6tvXkKsLC3lY
- バックエンドなしにPub/Sub通信が出来る:柔軟なネットワーク構築が行えます。MQTTで通信しつつ保存もできます。
- 20〜2000までの同時接続数に対応(14円/1接続枠):いろんなデバイスで無料で20まで接続できて、最大2000まで上げることができます。
- MQTTをベースにしている:MQTTとはIBMが開発したM2Mのためのプロトコルで軽量なのが特徴です。ヘッダを短くして通信料が減ることで、結果として消費電力が少なくなります。
- 幅広い対応:ブラウザ、Raspberry Pi、Tessel(JSで使えるマイコンボード)などで使えます。
- MQTTクライアントで接続できる:MQTTが投稿したものがAndroidアプリやC言語で見れます。
- WebとIoTに対応している。
- アクセス制御のカスタマイズ、多様な認証方法
- データを永続的に保存可能
発表3:BaaSとAPI Managementの両製品並べてIoT時代のAPIとは
槌野 氏@ アピアリーズ
IoTの時代が来るとどうなるの?
http://www.slideshare.net/appiaries/baas-meetup
2010年に125億、2020年には500億デバイスがインターネットにつながると予想されています。2013年にはAPIが爆発的に増加し、インターネット系企業だけでなく、インターネットと関係ない会社でもAPIを使うようになりました。APIエコノミーという考えが生まれてきて、それを実現するために資産をAPI化するようになっています。今後、どんどん自社資産をAPI化して公開しなければいけなくなるので、いかにサーバを落とさずに環境を維持するかというAPIマネージメントが重要になってきます。APIマネージメントとはUS中心に出てきた考え方です。
アピアリーズの特徴
プッシュ通知に力を入れています。SDKを大幅バージョンアップしました。デバイスプッシュでこれまで予約のプッシュ配信中心でしたが、個別にアプリケーションからプッシュ通知を送ることができるようになりました。
ヤマハ、ライオン(スマホの加速度センサーを使って眠りの浅い時に起こしてくれるサービス)など大手企業がバックエンドに採用してくれています。
発表4:Kii Cloud の進化からみるBaaSの展開
石塚 氏@ Kii
事例紹介
- コガソフトウェア社:WebサイトでKiiの使用事例紹介
- 中国Yankon社:インターネットにつながる電球のクラウド側として
- 翔泳社「Unity5オンラインゲーム開発講座」:Unityでオンラインゲーム使う時のクラウドとして
特徴
http://www.slideshare.net/kiicorp/kii-cloud–51291782/1
機器管理が特徴です。クラウド内にアプリを作ります。そこにIoT機器を登録し、SNSアカウントでサインインします。さらにユーザーとIoTを関連づけ、リモートコントロールでデータ収集をすることができます。その他一つの機器をシェアしたりと、柔軟に対応することが可能です。
- エコシステム展開
- データセンターを選択可能。独自のサイトを作ることができる。物理的に離れたところに作って欲しいという要望が結構あるので。オンプレにも対応可能です。
BaaSの進化の方向
BaaSの機能にはユーザが少ない深い機能とよく使われる広い機能があるが、深い機能が大事かなと思う。
開発者との対話必要
メニューにない機能が結構あるので話しかけてください。こういうことできないかと聞いて欲しいです。
お客様の声
- クライアント主導で開発できる。
- バックエンドがなくなった分UIの作り込みが増える。考えるところがUIよりになってくる。
発表5:総合力で勝負!mBaaS、そしてクラウドを制する者は世界を制す。
日本マイクロソフト テクニカルエバンジェリスト 井上大輔 氏
Azureについて
http://www.slideshare.net/daisukei/azure-baas-meetup
過去12ヶ月でAzureの新しいリリースは500を超えます。mBasSもAzureの一つでmBasSとIoTが一緒になってきています。Azureのデータセンターは19リージョン(地域)にあり、一つの地域にデータセンターいくつかある場合もあります。
クラウドは規模の経済なので、故障しても一つ一つ直していません。人的コストがかかるからです。Azureはクラウドに最適化して作り直しているので、速いです。オンプレミスだと3ヶ月かかるものが一瞬でできます。毎秒数百万件のイベントデータを渡せます。
GUIで機械学習の分析ができます。APIで呼び出せて、SDKで提供しています。
パネルディスカッション
モデレーター: HTML5Experts.jp編集長 白石氏
パネラー:登壇者5名
- 森藤 氏 @ ニフティ
- 部谷 氏@ テクニカルロックスターズ
- 槌野 氏@ アピアリーズ
- 石塚 氏@ Kii
- 井上 氏@ 日本マイクロソフト テクニカルエバンジェリスト
テーマ1:推しBaaSを教えてください
白石:押しBaaSのここだけは負けない点など、ラブリーなところを一つだけ教えてください。
石塚(Kii Cloud):他の人と違うところは中国かなと。まさにその意味では箱入り娘なんですけど。中国の箱(金盾)を突破するのはみなさん苦労するみたいで。大きいメーカーさんやゲームの会社さんに中国でビジネスやるのはこんなに苦労したととうとうと言われるんですけど、うちは非常に優秀な中国のチームがいるのでちゃんとやりますよということで。
槌野(アピアリーズ):うちは中国ではやっていなくて純国産なんですけど、日本で先駆けとしてやっているんですが、引き合いに来るお客さんがなにやりたいかっていうとプッシュ通知、それだけなんですよね。いろんな機能があるのにぜひ使ってください。
白石:BaaSってプッシュ機能を備えているんですかね?結構いらっしゃいますね。割と備えているベンダーが多い中でそういう引き合いが多いという。
槌野:アピアリーズはIIJとピーシーフェーズのジョイントベンダーでやっています。請負案件もやってまして、会社としてO2Oのマーケティング案件を請けてもいます。その中で何やりたいかというと、プッシュやりたいとおっしゃりまして。もっと幅広くアナリティクスなどもやりたいのですが、会社の特性上プッシュ通知が多いですね。
部谷(Milkcocoa):私はFirebaseが好きです。
白石:グーグルの買収した?
部谷:FirebaseはMongoDBを使っていて、MongoDBは運用が大変なんですけど、力でねじ伏せるかのようにちゃんと運用しています。そのせいかちょっと高いんですけど、単純にすごいなぁと。MongoDBの運用の中で、Milkcocoaはプッシュ通信はやってなくて、mBaaSではなくてリアルタイム通信に特化したBaaSです。どうして堂々とFirebaseを推せるかというと、同時接続数という意味が彼らと違うからです。私たちの場合は同時接続デバイスで、FirebaseはWebなんでいろんな人が来るんです。だから瞬間同時接続数になります。全然意味が違うんです。その瞬間にに何人接続しているかの方が高いんですね。Milkcocoaもその瞬間に何人接続しているかなんですが、Firebaseの半分の金額なんです。
白石:安いということで
部谷:というのが特徴です。堂々と言えるわけです。FirebaseはWebのように頻繁に来る人が入れ替わることを想定しています。Milkcocoaは来る人が入れ替わる場合も使えるんですが、安定してデバイスが変わらないというときにも使えます。それで値段も下げています。
森藤(ニフティクラウド mobile backend):ベースが自社IaaSなのでリソースが潤沢に使えているところです。全体で IaaS・RDB・MQTTなど出していて、一般的にmBaaSはモバイルだけですが、統合的にIaaSやmBaaSのミドルウェアレベルのサービスとmBaaSをつなげてできるのは面白いと思っています。
白石:RDBにおっと思ったのですが、RDBに対応しているBaaSって他にあるんですか。MSさんくらいですかね。
井上(Azure):いままでコストやスキル面でなかなかできなかったことが、クラウドでできるようになっています。Azureは先ほどの分析のソリューションなど組み合わせてできるのが夢があるなぁと思っています。たとえば、先ほどの機械学習を自分でやろうとすると初期導入費用が2000万円かかるところを、AzureのMachine learningで運用費用含めて1ヶ月数万円でできます。停止と再開ができるので停止してしまえばお金がかかりません。Azureのサービスほとんどそうなんですが、データが三重構成になっていて、サーバが自動的にクラスタ構成となっているので、システムも止まらないし、データも無くならない。本来必要なサービスに力を注いでくださいということです。
白石:先ほど60ぐらいサービスがあるとのことでしたが。サービスを組み合わせるだけで簡単にできますよと。
井上:正直、Microsoftの社員も全部は理解できていません(笑)。
テーマ2:BaaSをdisってください。
白石:ここにいる方はBaaSの良いところも知っているが悪いところも知っているはずです。今のBaaSがイケてない。BaaSのコンセプトがイケてないなどあればお願いします。
井上:Microsoftのネーミングセンスをdisりたいです。Azureのサービスを汎用的な名前でつけるんですよね。IaaSをVirtual Machine、機械学習をMachine Learning、仮想環境をVirtual Network。これだとGoogleで検索しにくいです。Bingにも出てきません。後、ブラックボックスなんでカスタマイズしにくい点もあるかもしれないです。今後改善していきます。
石塚:BaaSの中の人がすごい大変です。先ほど言った広い機能・深い機能の両方やるとエンジニアが死ぬのでどちらか選ばなければいけないです。使って欲しいけど辛いんです。
白石:森藤さんが言っていたようにお客様がひどいクエリを投げられた場合、Kiiさんは独自のデータストアを持っていらっしゃって、クエリも自分で設計できるわけですよね。どう防ぎますか?
石塚:やめてって言います。「ゴメンなさい。こういう風に使ってください」とコミュニケーションとることもあります。どうしてもダメと言われたらゴメンなさいといってなんとかします。
白石:事業社さんの声を聞くことはないので、興味あるんですけど・・。ひどいクエリだったら、エキスパートのサービスがありますよって話でしたっけ。
森藤:エキスパートサービスの方にはゴメンなさいというわけにはいかないので、こうするとお客さんのサービスが速くなりますよと言っています。
白石:Milkcocoaはそういうクエリを投げられることは。
部谷:最初はなんとかしようとしていましたが、いろんなクエリが飛んできます。forループで一万回回すとか。怖いじゃないですか。日次のバッチ処理で…。やっぱり言いますね。BaaSをつかったアプリケーションの設計は独特でRDBじゃなくてNOSQLと同じような設計が必要で、難しいので、ちょっと違うやり方してしまったときは教えなきゃいけないですね。
白石:アピアリーズさんは?メインはBtoBなんですかね。
槌野:とはいってもBtoBtoCですね。うちはクエリで困らされたりしたことはないですね。
白石:プッシュ通知が欲しいから?
槌野:そうですね。ベンダーさんが開発から全部やってというケースがあんまりないので。あんまり困らされたりしたことはないですね。IIJさんのおかげですかね。
白石:すごいCPU使用率になると思いますが、それでチャリンチャリン入ってきたりとか・・・。どういう課金の仕方しているのかなって。
槌野:アピアリーズはサーバーリソースの消費で課金されたりすることは一切ないですね。ストレージの容量とプッシュ回数だけなんですよ。じゃんじゃん使ってくださいというのを売りにはしているんですけど、本当にじゃんじゃん使われたら勘弁してくださいというかもしれないですね。
森藤:うちもプッシュ通知を売りにしています。これはいい機能なんですが…プッシュAPIのコールは1回ながらも、そのコールに対してセレクトクエリを投げられるという便利な機能があるんですが、そのクエリがすごく重くて、プッシュを送るのが時間かかったりすることがあります。
白石:自ら提供している便利機能が自らの首を締めるという。他にここが今のBaaSでイケてないと思う点は?
槌野:各社仕様がバラバラじゃないですか。使われる方からしたら似たような機能をみんな提供していて、BaaSを使うと何が嬉しいのかは多少わかったけど、どこの会社のBaaSを使うと恩恵を得られるのかがすごくわかりづらい。選択ミスったと思って、リプレースするのにベンダーロックインという問題があってひっかかかっちゃう…。実際そういうのにハマった方ってゼロじゃないと思うんですね。そこについてご意見頂いたりできるといいかなと。
白石:標準化するとかですかね
槌野:使われる方からするといいかなと。
白石:ここで会場からの質問をお受けできればなと。
質問:バックエンドの中でどこまでがBaaSの役割か教えてください。
石塚:下からIaaS/PaaS/BaaS/SaaSなのかなぁと。 - IaaS:Amazon インフラ - PaaS:サーバーの開発 - BaaS:サーバーはブラックボックス。クライアント側を色々やる必要がある。 - SaaS:クライアント側もすることがいらなくなるとSaaS
なので開発の度合いとしてあるのかなと。SaaSとBaaSの境目があいまいで、課金だけなど専門のBaaSなどもあったりして、そういうのはなんとも言えないですね。
森藤:システムに線引きがあるのではなく、作りたいものにある方がしかるべきじゃないのかなと。モバイルでつくりたいものパッケージの名前として捉えていただくのがいいんではないかなと。
質問者:定義されているというかんじではなく、各社が独自の定義でやっているということですかね。先ほどの仕様の標準化につながっていくのではないかと。役割自体は定義されてないという感じですかね。
部谷:MilkcocoaはBasSと言ってないんですよ。リアルタイムなバックエンド、ハブといってますね。BaaSが定義できないのはバックエンドって何だろうってなっているからですね。
槌野:昔SNSでβと言われていたじゃないですか、あんな感じです。柔らかいもの。
石塚:ちなみに、USではBaaSという言葉はバズワードで使われていない。アメリカはBaaSの会社は買収目的で買われたら上がりって感じで。ビジネス的にちゃんとしたものって見えなかったみたいで。BaaSはUSではちょっと胡散臭いなという雰囲気があります。日本や中国は違いますが。BaaSの概念が再輸入されるかもなと期待しています。
井上:MicrosoftでBaaSと言ってたのは2年前くらいですかね。最近はIoTにシフトしてて、BaaSというキーワードでお話しすることがほとんどないですね。今日ご紹介したサービスに一つもBaaSがないんですね。
白石:そろそろお時間になるのですが、BaaSミートアップの最後が「BaaSという言葉はもう使われていない」というのはものすごく面白い終わり方ですね(笑)。