BaaSって聞いたのですがサービスとしてもそうなのですが、個人的にはエンジニア視点でMicroService的な観点でGoodだなと思いました。
というのも、Web-AP-DBの3層アーキテクチャを考える上で、改めてWeb-APとの関係ってどうあるべきだろ、と考えるきっかけとなりました。
BaaS is What!?
モバイルアプリに必要なサーバー機能はいつも似ている
サーバーの構築とサーバーサイドのプログラム開発は、アプリ自体の開発と同等に時間とコストを要し、アプリビジネスの成否を決める重要な要素です。
こういったアプリに共通で必要なサーバー機能をクラウドサービスとして提供するのが、アピアリーズをはじめとしたBaaS(Backend as a Service)です。
BaaSを利用することでアプリの開発者と運営者は、同じようなサーバーの準備・開発を繰り返すことなく、アプリそのものにリソースを集中させることができるようになります。
フロントエンド開発のおけるコスト増大
フロントエンドにおける開発のコストが以前にも増して増大したように思えます。RIAからSPAの流れになり,HTML5+CSS3+JSでGUIを構築すると言う要求が高まりました。
そのため,フロントエンドはユーザと接触する面であり,以前よりも増して非常にリソースを掛けないといけない状況になったと考えています。
What's benefit
http://gihyo.jp/dev/feature/01/milkcocoa-baas/0001
人的リソースの不足や時間コストが掛けられないとき
BaaSは既にバックエンドそのものが提供されるため,バックエンドを開発する必要性がなくなり,その結果開発コストの削減に繋り,より高速に少ない人的なリソースで,サービスを構築できる可能性があります。
My Comment
BaaSの利用という意味だと、やはりベンチャーとかAgile開発向きの印象が強いですね。forEnterpriseであれば、ほぼ100%自前開発ですね。
BaaSが不適切な場面
バックエンドに,自分達の独自のビジネスロジックを組み込みたいとき
BaaSはバックエンドが最初から構築されているため,BaaSのバックエンドに自分達のビジネスロジックを含めることは当然ですができません。バックエンドに対して最適化を行いたいとき
BaaSはバックエンドとして汎用的に作られている場合が多いので,必ずしもサービスに最適な振る舞いになっていない場合が多いでしょう。
BaaSではなくチューニングされたサーバが必要だと思います。
んで、いろんな会社がサービスをリリースしているらしく、勢力図などはこちらがGood.
http://www.atmarkit.co.jp/ait/articles/1209/28/news146.html
Thanks,