ニフクラmBaaSお役立ちブログ

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

「サーバサイドエンジニアはmBaaSとどうつきあっていくべきか」 - ニフティクラウド mobile backend エヴァンジェリスト 小山氏インタビュー

ニフティクラウド mobile backend エヴァンジェリストである小山氏はPHPユーザ会や日本PostgreSQLユーザ会の運営にも参加されており、根っからのWeb開発者です。そんなWeb開発者としてmBaaSはサーバサイドの仕事を奪いかねない存在と言えます。しかし、見方を変えればサーバサイド開発者にとって多くの可能性があるはずです。このインタビューではそんなサーバサイドエンジニアにとってのmBaaSとは?という点に重点を置いて行っています。

koyama-interview-5

1. Web開発者としてmBaaSをどう捉えるべきでしょう?

「m」がつくモバイル専用のBaaSに限らず、サービス構築に必要なサーバサイドのバックエンド機能を単独で利用するケースは、どのような形であれ今後どんどん進んでいくと考えています。スパイクアクセスによる高負荷やDoSアタックによるサービス停止に対し、おのおののエンジニアが個別に対応するのは、すべてのサービス事業者にとって適切とはもはや思いません。有能なインフラエンジニアを抱えていない事業者にとってこそ、それらの問題をリーズナブルに解決する手段は求められていますし、BaaSに代表される外部サービスをうまく利用することは現実的な解決策の一つだと思います。

2. Webシステムは複雑化しています。その中でmBaaSが使える場面はありそうでしょうか?

複雑化しているということは、言い換えれば、様々な構成要素をモジュールとして組み合わせるのが普通になるということです。当然その中にはmBaaSの機能を要素としてうまく使える場面も多くあるでしょうし、mBaaS提供側もうまく部品として使える単機能なサービスをどんどんリリースしてくることでしょう。

サービスの裏側を一枚岩で小さくまとめて作ることも目的によってはアリでしょうが、一枚岩なシステムは柔軟に構成変更ができなかったり、スケールアウトによる処理量の拡大が難しかったりします。サービス内部の各機能を独立させて交換可能にすることによって、ボトルネックになっているところだけを差し替えて負荷対策を行うことができるようになるでしょう。その代替部品としてmBaaSが候補になることは当然考えられます。

3. 逆にマイクロサービスの中でmBaaSを使うことはできるでしょうか?

そのマイクロサービスの特性と使用方法によるのではないでしょうか。マイクロサービスといえどもサービスではあるので、設計の上で考慮する点は通常のサービスと何ら変わらないと言えます。多少の金銭的なコストを支払ってでも柔軟にスケールする必要があれば、バックエンドにmBaaSを利用するのは現実的な構成だと思われます。

4. mBaaSによってサーバサイドの開発需要が減るでしょうか?

mBaaSが現在よりも多くの機能を持ち、簡単に使える環境を用意できるようになれば、自前でサーバサイド環境を開発する需要は減るかもしれません。ですが、現状はまだそうはなっていないと感じています。基本的な機能のみが用意されている現状で、mBaaSを新しく覚えて使ってみようと言う開発者は問題意識をしっかり持っている人だけではないでしょうか。mBaaSを使うことで運用コストだけではなく開発コストの面でも有利になる状況が生まれれば、積極的に使っていこうという開発者もたくさんあらわれてくるでしょう。

koyama-interview-7

5. mBaaSに足りないと思われる機能・要素はありますか?

基本的な機能の上に位置する、より抽象度の高いAPIセットかライブラリが必要になると思います。現状では基本機能が単純なAPIで提供されているに過ぎず、各サービスのいわばビジネスロジック部分はゼロから開発者が作らなければなりません。人気のあるCMSがプラグインを導入することで定番の機能を増やせるように、mBaaSの低レベルAPIを使った一連の機能セットが上位APIやライブラリとして提供されると、サービスの開発スピードがぐんと加速されて開発者にとってメリットが増えるのではないかと想像しています。

また各mBaaS事業者での標準的な統一APIが定義されれば、開発者の利便性が高まり、その上で動く高機能APIがOSSで開発されるようになるかもしれません。APIが統一されることによって、Node-REDのようなビジュアルプログラミング環境をクラウド上で提供することが可能になるかもしれないし、そうすれば複雑なサービス構築の敷居もずいぶん下がることになるでしょう。

6. mBaaSに足りない機能を独自開発し、REST APIで接続する構成はWeb開発者としてどう思いますか?

既存の部品で足りない機能がサービスにとって必要ならば、どのみち自前で開発しなければいけません。そのインターフェースをREST APIのような標準的で交換可能な形で用意することは、サービス構成要素の独立性を保つ面では正しいと思います。ただHTTPによるREST API呼び出しは、蓄積された応答時間がシステム全体の処理速度の足を引っ張ることになる場合もありますので、APIの呼び出し粒度には気をつけたほうが良いでしょう。


いかがでしょうか。小山氏はオープンソース界隈で活動していますので、プラグインによる拡張というのは面白い視点ではないでしょうか。インタビュー中でもあったように、現状のSDKはAPIを薄くラッピングしているものが殆どなので、よりビジネスロジック側に寄り添い、よくある機能を簡単に呼び出せるライブラリがあると使ってもらいやすくなりそうですね。

ぜひサーバサイドエンジニアの方も、手軽に使えるmBaaSに触ってみてください!