クラウドを感じる瞬間

MindmapModeling勉強会の後の懇親会で、SimpleModelerについて、CSVファイルをアップロードして、Webブラウザ上で利用できるMindmapエディタでMindmapModelを編集してという感じでWeb上だけで開発ができそうですね、というようなコメントを頂いた。
言われてみたら確かにそうかもしれない。
SimpleModelerの場合、モデルのリポジトリMaven project+Scala DSLなのでSubversionなどのテキスト向けバージョン管理システムで管理することができるし、ここからチェックアウトしてEclipseなどを使ってハードボイルドな開発を行うことができる。そういったやり方は担保しつつ、Web上でMindmapを使ったモデリングWiki的なテキスト指向のモデル記述も仕組みさえ作れば可能なはずである。作成したモデルは、Web仕様書自動生成器をバックグラウンドで回して置けば、いつでも最新状況をWebから確認できる。CI的に進捗状況の管理や検証器による品質確認の見える化も簡単に行うことができるだろう。

さて、そのような運用を行う場合、システムをどのように構築するのか。
具体的に考えていくと、これはクラウドが圧倒的に楽である。自社内にサーバを立てるとすると、(1)ハードウェアを調達しなければならない、(2)ハードウェアの設置とOSなどの基盤ソフトのインストールをしなければならない、(3)マシンの運用管理をしなければならない、(4)社外の利用者との共有を行うためにインターネットに口を出す方法を考えなければならない、といった問題が発生する。これらの問題をクラウドは簡単に解決してしまう。
もちろん、クラウドを導入するにあたっては解決しなければならない問題もいくつか存在するけれど、それらの問題に折り合いがつけば魅力的な解であるのは間違いない。
ただし、この場合のクラウドは大規模並列・分散がメリットではないことには注意が必要である。このようなささやかなサービスが、クラウド時代のサービスの大多数を占めると考えられる。ロングテールである。ここで重要なことはハードウェアと基盤ソフトインフラを空気のように使えるというプラットフォームの存在である。
もちろん、こういったささやかなサービスであってもクラウドのunder the hoodの大規模並列・分散がまったくの無関係かというとそういうことではない。このようなささやかなサービスが空気のように利用できるインフラは徹底的に低料金でなければならないからである。
この低料金を担保するためには、規模のメリットを追求しなければならない。つまるところ、大規模並列・分散は、クラウド時代の必要条件の一つということになる。

なお、何かの拍子にこのサービスが当たって利用者が激増することになると、今度は大規模並列・分散に真面目に立ち向かわなければならないことになる。この「何かの拍子」を多少の期待をこめて最初からある程度意識しておくとすると、ささやかなサービスであっても、このような突然の事態に対応できる技術を用いておくことが得策である。
そのような技術、たとえばクラウドに対応したフレームワークモデリングといったものを利用するのがクラウド時代の作法となるのだろう。

SimpleModelerのようなささやかなツールも、クラウド時代的に考えると面白いものがでてくる。CSVの移入の話題から色々とイメージが沸いてきた。このような触発が起きるのは、時代のエネルギーが高まってきているということかもしれないなぁ。