« 不安定であることの機敏性 | メイン | Processing »

アプリケーションにおける足回りの質的変化

 ただの感想文です。アプリケーションの足回りの状況がかなり変わってきていることを実感しています。

 足回り、というのはサーバ、CPU、メモリ、OSあたりの層です。トピックスとしては、並列・分散処理、仮想化、マルチコア、インメモリ、キャッシュという感じです。一昔前は理想論ばかりで現場で使えないという印象が強かったのですが、そんなこともなくなってきています。


 一時期は潤沢なサーバリソースを前提にサーバのことは気にしないで富豪プログラミングをしなさいということが言われていました。しかし、いま足回りに起きていることは量的な変化を超えて質的な変化になっています。むしろ足回りの特性を利用したアプリケーションを構築するという考え方にしていかなくてはいけません。

 たとえば1台のサーバにCPUを数百個乗せることは不可能に近いのですが、マルチコアや仮想化技術を使えばアプリケーションから見えるCPUを数百個にするというのは、それほど先の話でもないと思います(現場で使えるレベルという意味で)。問題はそれだけのCPUが載ったとしても活かすだけのアプリケーションが書けるかどうか。


 というわけで、twitterで注目されているErlangのように平易に並列プログラミングを実現させようという流れが強くなっています。twitterブームの陰で注目を集める“Erlang”という記事にもありますが、

Your Erlang program should just run N times faster on an N core processor

(あなたが書いたErlangのプログラムはNコアのプロセッサならN倍速く動くはずだ)

というメッセージに如実に現れているでしょう。ティム・ブレイがJavaにも関数や並列の要素を、といっているのもよく分かります(「Javaに並列処理と関数型言語の要素を」、ティム・ブレイ氏)。


 理想的なイメージはハードの追加に対して素直にスケールするアプリケーションです。かつ、複雑なスケールアウト戦略をとらなくてもすむようになっていなくてはいけません。このためにアプリケーションで考えるべきことはけっこう多い(ほとんどはデータ一貫性の保障)のですが、かなり現実的な選択肢になっています。

 これまでのサイジング計画とかスケールアップ・スケールアウト戦略は根底から考え直すことが必要になります。少なくともアプリケーションを作るだけの視点では難しい。サービスを運用するという視点にまでくる必要があるでしょう。

 これ楽しいですよ。何ができるのか、もっといろいろ試さないと。

追記:
これも同じことですね。「MS幹部のマンディ氏、未来のソフトウェアについて語る--WinHEC基調講演で」。
ちなみにSUNのT1チップが8コア、ソニー(IBM)のCELLチップが9コアを実現しています。まだ、パソコンには載りませんが。

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1965

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年05月15日 10:21に投稿されたエントリーのページです。

ひとつ前の投稿は「不安定であることの機敏性」です。

次の投稿は「Processing」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type