ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

mBaaSを導入検討する上で考えたいメリット&デメリット

ニフクラ mobile backendではmBaaSを提供している訳ですが、その実際の利用実績をどう捉えているかと言えば、まだまだこれからだろうといった考えです。国内においては他社の利用動向がサービス導入において大きく影響を及ぼすのですが、mBaaSはバックエンド(つまり裏側)の仕組みであるためになかなか表に事例が出てきません。そのため個別に事例は出てきていつつも、一気に流れ込むと言った状況にはなっていません。

ではmBaaSを使っていく上でのメリット、デメリットについてご紹介したいと思います。導入の際の参考にしていただければ幸いです。

導入のメリットは?

まず最も大きいのはアプリをリリースするまでの速度が数倍速くなります。サーバサイドを一から組む場合、数ヶ月はかかる所がゼロになるからです。mBaaSはWeb開発で言えばWordPressに似ています。最近のWebシステム開発において基盤にWordPressを利用するシーンは増えています。WordPressをベースにすることでブログはもちろん、CMSやコマースなど様々なWebサイトを素早く作り上げることができるからです。

mBaaSについても同様で、アプリを作るための基盤として採用するのがベストだと言えます。ユーザ管理やデータストレージ、プッシュ通知などアプリ開発において欲しくなるサーバサイドの機能が開発なしで手に入るのです。

mBaaSを使い始める2つのパターンとは?

mBaaSを使い始めるパターンとしては、主に2パターンあると考えられます。1つ目は1からアプリを作成する場合です。最初からmBaaSを組み込んでしまえば、データ管理はシンプルです。

2つ目のパターンとしては、複数のアプリをリリースしていく中でサーバ管理が煩雑化していくケースです。例えば1つ目のアプリをリリースしたとき、app1.comというURLを使ったとします。それをコピーする形で2つ目のアプリを作ったとしますが、その場合1つ目のアプリのURLを変更するというのは簡単ではありません。なぜならアプリの中にURLが文字列として埋め込まれているからです。そこで1つ目のアプリで使っているサーバサイドの仕組みをコピーして動かします。これがapp2.comです。ドメイン代が勿体ない場合はapp2.app1.comかも知れません。今後を考えるとapp1.com/app2などとしたいでしょうが、既に動いているアプリケーションを修正するのは面倒ですし、汎用化するのはそうそう簡単ではありません。データベースのスキーマをコピーして、app1とapp2の接続先を変える方が簡単です。

そして次に3番目のアプリです。さらにドメインを増やすのは面倒ですし、サーバ台数が増えれば管理も煩雑になります。そこで一旦構成を見直して一元管理したいというニーズが出てくるのです。そのとき、アプリで使われている機能を見直し、mBaaSで事足りるのかどうかを調査します。小さなアプリを幾つも作っていたり、他社向けにアプリを受託開発しているシステム会社に向いた方法だと思います。

既に自前のサーバーがある場合

既にサーバサイドがある中で、それをmBaaSに乗り換えるというのは現実的ではありません。そこでお勧めしたいのが前述のスクラッチとmBaaSによるハイブリッド構成です。mBaaSを導入検討する際によくあるのがゼロサムで考えてしまうことです。つまり全てmBaaSか、一つでも機能が足りなければすべてスクラッチという二極化です。mBaaSはアプリ開発時に良くある機能を実装しています。その中では全ての機能がある訳ではなく、多くの場合足りない機能が多少あります。そこで既にある機能についてはmBaaSを使い、足りない機能はスクラッチで開発するというのがハイブリッドです。mBaaSはアプリとJSONでデータを送受信するものが多く、RESTFulなAPIを備えています。それを使えばサーバサイドとmBaaSも通信が簡単にできます。mBaaSにポストしたデータを引き出したり、自社のWebサービスと連携させるのも簡単です。

mBaaS導入のデメリット

では逆にデメリットを挙げたいと思います。ここでは3つほど挙げます。

1. 機能の網羅性に欠ける

まず網羅性に欠けるということです。殆どの機能は満たせても、最後のちょっとした機能が足りないといったケースがよくあります。

この問題については解決手段が2つあります。1つはmBaaS事業者によってはサーバサイドスクリプトによる拡張をサポートしています。何でもできるという訳ではありませんが、それでもある程度自社で開発できます。もう1つは自分でサーバを立てて、Web APIを通じてサーバと連携させるという方法です。

mBaaSはアプリと通信する際にWeb APIを使っています。特にWebアプリケーションをサポートする際にはRESTfulのAPIを提供するのが一般的です。これはニフクラ mobile backendでも同じで、データの追加/更新/削除を含めたRESTfulなAPIを提供しています。mBaaSに保存したデータをWeb APIを使って取得したり、逆にデータをmBaaSに保存するのは難しいことではありません。そういったスクラッチ×mBaaSというハイブリッド構成はおすすめです。100% mBaaSかスクラッチかと言ったゼロサムで考えるとmBaaS導入に躊躇してしまいますが、mBaaSの良いところや必要なところだけを使うというのはおすすめです。

2. 速度面

次に速度面があります。各サービスベンダーとも強化していますが、それでもリアルタイムレベルの高反応性が求められるゲームでの導入は難しいと思われます。ただしユーザ認証やゲーム結果を保存してランキングを作ると言ったような方法であれば十分活用できます。

3. 移行

最後に、データ移行が難しいと言うのがあります。詳細は省きますが、Webサービスでデータベースを移行する以上に難しいでしょう。


まとめ

mBaaSはベンダーロックインの強いサービスだけに、メリット/デメリットを慎重に見極めた上で判断する形になるかと思います。とは言え、アプリは日々たくさん生まれており、開発に時間をかけていてはあっという間に取り残されてしまうことになりかねません。スピード感は大事です。

もし導入しようと思った際にもベンダーは幾つもありますので、その際にはぜひmBaaSベンダー選定でチェックしたいことを参考にしてください。

eBookのご紹介

さらに詳細は下記のmBaaSのメリット(eBook)にて紹介しています。この他、モバイルのバックエンド開発の種類と違い、日本や海外のmBaaSベンダーについてや、mBaaSの今後などのトピックについて掲載しています。ご興味がありましたらぜひダウンロードしてください!

f:id:mbaasblog:20180927103344p:plain