16bit!

エンジニアじゃなくなっちゃった人が何かを書くブログ

【雑記】Parse.comがしんだ

というわけで、BaaS(またはmBaaS)の代表格というか、業界ダントツトップだったParse.comが来年1月に終了することが発表されました。
僕個人としてはParseは趣味用に無料で使わせてもらってたクチなので、なくなっちゃうと遊び道具が減って困る感じですね。
個人用の簡単データベースとして使わせてもらってたので、移行とかどうしようか。

とはいえ彼らもボランティアでやってるわけじゃないので仕方ないです。
個人的には、もういっそこういうITインフラ的なサービスを提供してくれる会社に納税したいという気持ちもありますが。
だって確かに東京都に住んでますが、それと同じくらいインターネットにも住んでいるので。

http://liginc.co.jp/236499liginc.co.jp

で、そのニュースを受けて、日本国内のBaaSベンダーとしてmilkcocoaというサービスの開発に関わっていた人が、上記のような記事を書かれていました。
読んでみて面白かったので、ちょっと引用しながら自分なりの雑感を書いておきます。

雑感

理想的にはバックエンド技術はどんどん抽象化されて、フロントエンド技術も次々にツールに置き換えられて、サービス開発はあっという間にコモディティ化するはずなんです。技術的文脈から見れば、そうであってしかるべきだし、そうあって欲しかった。

僕も同意で、サービスの差別化に繋がらない裏の部分は本来自前で作る必要はないので、特にバックエンドの部分はBaaS等の外部サービスに置き換わっていくのが正しいと思っています。
もちろんDAUがウン千万とかいう巨大サービスはバックエンドの処理自体が差別化に繋がるので、そういうケースは別ですが*1

ただ、現状だとBaaSでできることってすごくシンプルで、ある程度の規模になってくると自前でバックエンド書かないとどうしても回らなくなってくるようなレベルのため、「課金せずに済むくらいの規模の間はBaaSでも大丈夫だけど、課金が必要なくらいの規模になったらもはやBaaSでは対応できない」という、サービス提供側にとっては本末顛倒な状態になっていて、どう頑張ってもBaaSベンダーは儲からない。

自前でサーバーを立てる気も起きないくらいの圧倒的な利便性を備えた技術スタックが出てきて、フロントエンドやアプリのエンジニアが喜んで使うような感じになればいいなと思います。

だから結論としては上記の通りで、まずは課金が必要になるくらいの運用規模に耐え得るレベルにまで、サービスのレベルを上げないといけない。
そうでないとそもそもお金が入ってくる道理がないので。

AWSは自社でサーバ持つよりも早いし運用も簡単だしやれることも多いという圧倒的な便利さを提供してオンプレのサーバを駆逐しました。
そのレベルの便利さを提供できないと、自前で書いてるサーバーサイドの処理を置き換えることは不可能だと思います。

相対的に割合が多いであろうリレーショナルデータベースでのテーブル設計を主におこなうタイプのサービス開発に慣れているユーザーにとって「BaaSは”いわゆるNoSQL”」ですし、

ちなみに最後にこれ。
ParseのダッシュボードってまるでRDBみたいにデータが並んでて、「やっぱRDBライクにデータを扱いたい需要はかなりあるんだろうな」と感じていました。
個人的には、NoSQLってRDBと比べて確かにデータベース設計は難しくなりますが、逆にRDBだと多少めちゃくちゃな設計でも結合とかで何とかできちゃったりして、それが逆に技術的負債になっている部分もあると思っているので、おかしなDB設計絶対許さないマンとしての良い面もあると思うんです。速度は言わずもがな。


いずれにせよ、個人的には小中学生が簡単にデータベース使ったプログラミングを組めるくらいにはDBアクセス周りは簡単にして欲しいので、BaaS含めその辺のサービスは今後も出てきて欲しいです。
2016年はエンタープライズ系のスタートアップが流行りだすとか言われているタイミングでもあるし。

ちなみに僕はツールやサービスの中身で何をやっているかまでは小中学生は知らなくて良いと思っていますが、せっかく授業でプログラミングをやるなら、データベース周りの処理も含めてちゃんと授業で「実験」して欲しいとは思っています。
小中学生は理科で「電流が流れて豆電球がつく」とかは習いますが、「電池を繋ぐと何故電流が流れるのか」までは習いません。
電球に明かりをつける実験は行いますが、リチウムイオン電池を作る実験はやりません。
それと同じで、データベースにデータを保存しておき、それを加工して取り出しているから画面に表示されるのだということを習って実験すれば十分で、何故"put(key,val)"と書けばデータが保存されるのかまではまだ知らなくて良いと思っています。

「高度に発達した科学は魔法と区別がつかない」という言葉がありますが、IT技術もだんだん魔法の域に達してきていると思います。
ただ、魔法について何の理解もしていないのと、「何故かはわからないけどこうするとクラウドにデータが保存されるらしい。そしてこうすると別のデバイスからそれを受け取れるらしい」まで理解しているのでは雲泥の差があると思うので。

最後ちょっと話が逸れましたが、個人的にはBaaSみたいなサービスは今後必要とされるはずです。
「既存のプログラマRDBに慣れすぎている」という文化の問題はその内時間が解決するとして、あとは「自前で書くより圧倒的に便利で拡張性の高いサービス」にまでレベルを高められれば、各企業がそれぞれバックエンドの技術者を雇わなくちゃいけないようなこともなくなってくるはずです。


*1:ちなみにフロントエンドは、Webに関して言えばマテリアルデザインとかBootStrapなんかで大分ツール化されている気がしますが、もっと簡単になるのでしょうか?