2008年6月4日水曜日

saasとしてデータベース

webにデータベースというかRDBMSがくっついてwebアプリケーションなどと言われるようになってかなりの時間が経過したと思う。

僕がweb業界に入ったときは、まだRDBMSをくっつけてwebを運用するのは新しい手法で、普通ではなかった。ファイルベースの簡単なデータファイルであったり、ハッシュ型のDBMでデータを突っ込んだりしてデータパシストを実現していたように思う。

ところがRDBMSがwebにくっつくようになって、web自体のサービスが変わってきた。
今までのCGIとテキストファイルやハッシュDBMで実現していたのは、単にデータが永続化されるというメリットだけを実現できていたのだが、RDBMSが使われるようになって、RDBMSの持つ集計や並び替えの細かな昨日だとか、きめ細かい更新などが行えるようになってきたのだ。

技術者以外の方はあんまり関係ない話と思うかもしれないが、僕が言いたいのは、その技術の進化によってweb企画者の企画の発想もそれに影響されるようになってきたということだ。
例えば、最新アクセストップ10とか、カテゴリ毎に集計数をだしてリスト化してみせるだとか、そういった手法はRDBMSがwebにくっつく前はあんまり実現しにくかった。故に、RDBMSがくっついてから、そういうのが容易にできるようになったことが影響して、web企画者は企画の発想がある意味RDBMSのもつ機能や実現できることに、逆にコントロール(規定)されるようになってきたと思うのだ。

作り手も企画者も、言葉には表さないが、なんとなくRDBMSが既に存在することを前提に企画の型にはまっているような感じだし、作り手は企画者の企画をシステムい落とし込むにあたり、RDBMSを使った手法に、まず第一に落とし込むことになる。

最初、RDBMSを使うwebアプリケーションは高価なOracleだとかが使われていて、結構、重かったり、アクセスが多くなると破綻していたように思う。
それが、MySQL等の安価なコストのRDBMSの出現で一気にコモディティー化した。
誰でも、何でもかんでもRDBMSを使うことがwebの決まり事であるかのようになっていった。
RDBMSの使い方も本来の使い方とは違うところで、単なる、ファイルシステムの代わりとして使われるようになっていった。

確かにMySQL等オープンソースのRDBMSの普及により、前よりはシステムが負荷によって落ちることは少なくなった。ノウハウも少しずつ蓄積されていったことも影響している。

ところが、そういったRDBMSの機能向上を上回る勢いでインターネットというかwebを取り巻く環境が成長していった。それによって、驚くほどのアクセス数がアクセスするようになり、未だにRDBMSをどうアクセス数に大してスケーラブルにしていくかに関するノウハウやそれにかかるコストは無視できない物になってきている。データも無くしていい軽い物から公共の財産という概念にかわり、よりいっそうデータをなくさないように運用することが求められてきている時代でもある。

同時に僕がかねてからいっているように、RDBMSに規定された企画の発想が故に、二つの大きな問題がwebシステムについて回るようになった。

一つはどうやってそのRDBMSを埋めるデータを個々のサービスは集めることができるのか。
もう一つはそのデータを良質なレベルに維持するため、メンテナンスをどうすればいいのかということ。

大概のweb企画はここで頓挫する。
これは大規模になったときの問題(twitterの残念な現状とか)とあわせ現状の問題点になっている。

ところが最近一つの流れが起きてきている。
インターネット自体を一つのプラットホームとして見なすクラウドコンピューティングの考え方である。

既に大きなクラウドコンピューティング環境を保持するgoogleとかamazonがそういったクラウドコンピューティング環境を一般webサービサーに解放していく流れが最近でてきている。

インターネットをプラットホームと考えたり、クラウドコンピューティングの考えを持つと、上記にあげた二つの現状の問題点は解決されてくるのではないか。

データをどう「自分んの物として」集めるか、ではなく、データは既にプラットホーム(インターネット)の中に豊富に存在してるのだという視点。また、プラットホーム(インターネット)のデータは公共財であるが故に、自分の集めたデータも公開していくというマナーといかルール。

また、膨大な負荷をさばくことも、既にあるクラウドコンピューティング環境がさばいてくれる。
個人やサービサーは安心してそういったことを気にせずにサービスだけを考えていくことができる。

そういった経緯もあり、最近、amazonのSimpleDBとかgoogleのApp Engineとかsaasとしてのプラットホームを活用できないかどうか調査している。

しかし、こういったサービスに共通していることだが、やはり既存のサービスと比べてできることが限られているし効率も落ちる。
それはちょうど昔、デスクトップアプリケーションとwebアプリケーションを比べて、やはりwebアプリケーションの方ができることに制限があったり(OSの内部にアクセスできないとか)使い勝手においてデスクトップアプリに負けていたことを思い起こさせる。

しかし最終的に、webアプリケーションの使用がデスクトップアプリケーションに勝りそうな状態になっている現代である。

これはwebアプリケーションの使い勝手やできることが進化したということもあるだろうが、やはり、ユーザ自体の使い方が変わってきたいうことだろう。全体的にリッチで複雑な操作系よりはシンプルな操作系、使い方も効率性よりはライトな使い方が中心になってきたからではないだろうか。

saasとしてのデータベースやアプリ環境も同じで、
現在のローカルにDBをもつwebアプリケーションに比べると、あまりできることは多そうにはおもわれない。

例えばamazonやgoogleが提供するデータストアに関しても、現在のRDBMSのような細かい集計機能はそなわっておらず、それを簡単に実現することはむつかしい。
つまり今までのweb企画者が発想する企画を実現するには、これらのサービスは「機能がたらない」。
プラットホームとのインターフェイスがSOAPなものもあり、細かい頻度の更新にも向いていないようだ。
だから、「今までの発想の企画」にこれらを使おうとすると、開発者は大変である。

おそらく、「違った切り口」か「よりいっそうのシンプルさ」を軸にサービス企画を立てないと、これらのsaasプラットホームはうまく企画にフィットしないように思われる。

しかし時代の流れは必然なので、webにRDBMSがくっついてweb企画者の発想が変わったのと同じく、saasプラットホームが中心の時代には、それにより発想が転換した「新種の企画者」が出てくるのではないかと思われる。

おそらくは、もっとライトなサービス。
(プラットホームの)部品としてのサービス。
それらの部品を利用したメタサービス。
お互いのサービスは利用しあうという発想。
そのためにインターフェイスが常に公開されているという姿勢(みんなの為は自分の為!)

僕が最後にいいたいのは、
技術者の人には非常にweb企画やサービス企画に関わるのに有利な時代が来ているということ。
サービス企画をやられる人には、技術を恐れないで、そこで提供されるプラットホームで何ができるのかを、さけないで、正面から見つめることをお勧めしたい。
それには多少の技術を知ることも必要になるとは思うが、この世界はやはりそれを知らないで通り過ぎることはできない。

新しいサービスをやりたいのならなおさらである。
もしあなたが、今の、自分の所で抱えた閉鎖的なデータベースでゴチャゴチャやってそれで満足している、楽しいのならばそれでもいいんだけど。

ユーザはあなたの所のトップ10とか新着とかにもう興味が無いんじゃないかな?
そのカテゴリに何件あるとかさ、全く関係ないんじゃないかな。

少なくとも僕はそうだし、時代は本当に変わりかけていると思う。

0 件のコメント: