谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

クラウドでプログラミングモデルは変わるのか。

エンジニアはエンジニアらしく、技術の話に戻りましょう。


クラウドがもたらすのは、インフラと、ビジネスの歯車を回す力以外に、何かないんでしょうか。
仮にエンドユーザメリットはゼロだったとしても、
プログラミングモデルや開発環境に、何かメリットはないのでしょうか。


クラウドのプログラミングモデルと言えば
「1スレッドの大きな処理から、小さな処理の複数スレッド化」とか
RDBMSからKey-Valueストア(KVS)への移行」というところが真っ先に思いつきます。


偶然にも、Slim3をGAE/J対応させたひがさんも、クラウドについて触れていました。

クラウドバズワード的で何がいいのか良くわからないという人も多いことでしょう。その感覚は正しい。クラウドという言葉だけだと、意味が広すぎて、焦点がぼける。
(中略)
それに対してGAE/Jは、できることをかなり制限して、しかもRDBMSをすててBigTableにのりかえるっていう非連続ぶり。
(中略)
破壊的イノベーションの特徴は、それが出てきたときには、機能的には既存のプロダクトに劣ることが多いということです。一部の機能が劣る代わりに、別のメリット(例えばコストが安いとか)を提供できる。

GAE/Jは破壊的イノベーション

引用の後半のようなことをサラっと書いてしまうひがさんは、さすがです。


小さい所で言えば、GAE/JのJavaは制限が多いし、DBMSだって好きなものは使えない。
クラウド全体で言えば、トランザクションがACIDからBASEに移っていくって言うけど
BASEなんてそもそもACIDのサブセット(機能制限がついたもの)じゃん、
って某悪ふざけ好きなエンジニアが言ってました。僕も大いに賛成します。


そんなトランザクション上のデメリットを被ってまで、
並列コンピューティングや、BigTableをはじめとしたKVSというのは、
乗っていく価値があるものなのでしょうか。


正直、それも良く分からないので、
エンジニアらしく、まずは手を動かしてみようと思って
Tokyo Cabinetの勉強を始めたのが、先週末の話でした。


さしあたり、RDBMSベースで作っていたアプリケーションを、
KVSベースに移植するためにはどうすれば良いのかを、考えている所です。
そもそも比較対象になんないだろ、って意見はガン無視して。


クラウドのメリットなんて風呂敷を広げておきながら、
KVSという小さな所に陥っちゃうなんて、ちょっとあんまりですかね。
引っ張っておいて、こんなオチで、なんか、すみません。