スケーラビリティをとるか、性能をとるか--トレードオフを考える
翻訳校正:石橋啓一郎
正しく作られれば、n階層アプリケーションは必要なだけの資源を加えることができ、堅牢で、99.999%を達成することができるという点では、スケーラブルなものになる。しかし、代償もつきものだ。
読者はスケーラビリティを備えたアプリケーションを作っているだろうか。私も作っている。私の長年の心の葛藤の1つは、スケーラビリティを確保するためにアプリケーションに加えるレイヤの1つ1つが--特にウェブアプリケーションでは--そのアプリケーションの性能低下に繋がるということだ。
よくあるパターンは、データベースとやりとりするデータアクセスレイヤとやりとりするビジネスロジックレイヤとやりとりするプレゼンテーションレイヤにクライアントとやりとりさせる、というものだ。これは筋が通っている。そして各レイヤの将来の拡張に向けた相互運用性と再利用性のためには、結局は最低でもXML、あるいはSOAPやそれに類するもの(CORBAを覚えている人はいるだろうか?)を使うことになる。これも筋が通っているので、またいくつかのレイヤを付け加えることになる。また、もしアプリケーションに十分な数のユーザーが付けば、各レイヤ内で状態を共有する手段が必要になるため、各レイヤにクラスタリング技術を付け加えることになる。最終的に、大量の同時要求を処理するために、セッションレイヤやアプリケーションレイヤなどでサーバ間での状態やロックを管理を行う必要が生まれる。
現実を直視しよう。ビジネスロジック処理サーバを加えることを考えなければならないほど大きさのシステムを考えているが、プレゼンテーションロジックサーバを加える必要がなければ(これらのスケールは異なる割合で増大する)、それは、ある程度の冗長性、フェイルオーバー、負荷分散などを必要とするだけの大きさと重要さを持ったアプリケーションだ。そしてそれは、共有される「もの」のクラスタリングが必要であることを意味する。
この規模のアーキテクチャが必要であり、2、3のXMLトランザクションのエラーの追跡と(最低限)3つの論理サーバ(それらはすべて同じハードウェア上にあるかも知れない)、そして監視ソフトウェアが必要だと仮定して考えてみよう。
厄介なことになった。言うのは簡単だ。「では、アプリケーションロジックとプレゼンテーションロジックとデータアクセスロジックを全部同じレイヤに入れよう。もしハードウェアが落ちたら、セッションは失われるけどな」。しかし、われわれは顧客に99.999%の信頼性とSLAと性能指標と仕事を売る世界に住んでいる。われわれのアプリケーションは高速で、スケーラブルで、かつ堅牢でなくてはならない。そして「スケーラブル」であることと「堅牢」であることは、「速さ」にはマイナスだ。
Javaのフレームワークの大失敗がよい例だ。一般的なJavaアプリケーションサーバ上でアプリケーションを構築し、その上に世に出ている無数のフレームワークを乗せたとする。Spring、Struts、FacesといったJavaのキーワードはいくらでもある。そして、例えばわざとNullPointerExceptionを起こし、スタックトレースを調べるようなばかなことをしたら何が起こるだろうか。このヌルの値は、例外処理に渡される前に80以上ものレイヤを通ることになる。ここでは例外が起こったことを問題にしているわけではない。私が問題にしているのは、その変数を処理するのにどれだけのオーバーヘッドが必要になるかということだ。PerlやPHPやRubyの小さなスクリプトで同じことをやれば、この変数がランタイムの例外レベルに到達するまでに、通り抜ける関数の数は少数だろう。
これが、.NetやJavaが決してネイティブコードほど速くならない理由だ。ネイティブコードを書ける人は、OSとアプリケーションの間に2、3以上のレイヤを置くことは滅多にない。これらの何でも詰め込もうとする大量のフレームワークでは、何かをやる度に50から150のデータをスタックにコピーする。
- 3人の推薦記事
- 1人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- ホワイトペーパー
- 企画特集
【徹底対談】運用管理ツールの賢い使い方
そのストレージで仮想化に対応できますか?
ストレージメディア特設サイト開設
◆エン・ジャパン厳選求人☆毎週更新◆
ESBでIT投資の無駄を劇的に解消する
中小企業のセキュリティリスクとは?
集積度も性能も、業界最高水準のブレードPC
インターネット上の悪意を未然に防ぐには?
今注目の「サジェスト検索」−デモ掲載中
御社のログ活用しませんか!?
SOA、BPM、SaaS −今、企業に必要なこと
ロリポップ!がリニューアル
仮想環境を実現するソリューション特集
セキュリティ&ユーザ事例【SIer Club】
パンデミック対策特集
- エンタープライズにおけるSUSEの強み
- サービス・ドリヴン・データセンター
- サーバー監視・運用のコストを削減するには
- ■ストレージ容量50%削減保証■
- 話題のタグ
Windows 7はLinuxへの切替が簡単:注目の仮想ディスクフォーマット「VHD」
iPhone OS 3.0で変わった「絵文字」
OSSのクラウド基盤「Eucalyptus」を使う(4)--インストール〜ノード構築
俳優経験者が指南する「人前で上手く話すためのティップス10選」
「うるまでるびペイント」登場:絵は上手下手ではなく制作過程に楽しみが
待てば回路の日和あり--「iPhone 3GS」発売、しかし――