知られざる「マルチテナントアーキテクチャ」(1)~SaaSはみんな同じではない?
クラウドが備えるスケーラビリティやアベイラビリティ、そして膨大な処理能力を実現する技術として、MapReduceやキーバリュー型データベースが注目を浴びています。「リレーショナルデータベースはもう古い」という人さえいるほどです。
ところが、そんな話題の新テクノロジーに背を向けて、既存技術であるリレーショナルデータベースを核にしつつクラウドを構築し、絶大なスケーラビリティと信頼性を実現している企業があります。セールスフォース・ドットコムです。
彼らはMapReduceもキーバリュー型データベースも使わずに、どうやってスケーラビリティや信頼性を備えたクラウドを実現しているのでしょうか? 同社が公開している情報はそれほど多くないのですが、それらをつなぎ合わせて見えてきたいくつかの技術的な仕組みを、何回かに分けて紹介したいと思います。
Salesforceはどれほどスケーラブルか
同社のクラウドが提供するスケーラビリティと信頼性について把握しておきましょう。まずはユーザー数です。同社が発表した最新のユーザー数を探してみると、2007年12月に発表された「セールスフォース・ドットコム、100万ユーザ突破へ - salesforce.com」が見つかります。3万1800社、100万人がユーザーとなったとしています。これらは1年以上前の数字ですから、現在はこれより増えていることは間違いありません。
つまり、基本的にSalesforce.comでSaaSとして提供されている1つのアプリケーションが、この約3万社、100万人以上のユーザーで利用されていることになります。
この大規模システムは、わずか1000台程度のサーバで構築されていることが今年の3月に明らかになり、話題になったことは記憶に新しいところです(参考:クラウドの効率性:Salesforceの全サービスはわずか1,000台のサーバで運用されている - TechCrunch)。
1000台の中にはディザスタリカバリ用のサーバなども含めたワールドワイドのサーバ数ですから、多めにみて3分の2が本番稼働用のサーバだとしても、わずか700台弱のサーバで100万ユーザーの面倒を見ていることになります。驚くべき効率性といえます。
信頼性については今年3月に「過去24カ月にわたって99.9%以上の稼働率である」と発表しています。エンドユーザー企業の求めるサービスレベルとしてはまだ十分ではないかもしれませんが、グーグルのGoogle Appsのサービスレベル保証は1カ月99.9%ですから、比較としては遜色ないといえそうです(アマゾンのAmazon EC2のSLAは年99.5%ですが、これはアプリケーションを含まないインフラのSLAですから直接比較はできないと考えます)。
「マルチテナントアーキテクチャ」がカギ
3万社以上の企業ごとにセキュアな方法でアプリケーションを提供する方法を単純に考えれば、1社ごとにサーバを用意して運用したくなりますが、それをセールスフォースではわずか1000台のサーバで実現しています。この効率性はどこからくるのでしょう? 彼らは「マルチテナントアーキテクチャ」こそカギであると主張しています。
マルチテナントアーキテクチャとは、マルチテナント、つまり複数の顧客に対して、どのようなアーキテクチャでサービスを提供するかを決めるSaaSのアーキテクチャのことです。
専門家の意見をまとめると、マルチテナントアーキテクチャには次のような3つのレベルがあるとしています(参考1、参考2、参考3、参考4)。
(レベル1)全利用者が同一データベース、同一スキーマを共有
全利用者が1つのインフラを共有し、運用も共通化できるため、もっとも効率の良いマルチテナントアーキテクチャ。セールスフォースはこの方式を採用。
(レベル2)全利用者が同一データベースを共有。スキーマは個別。
あるいはスキーマは同一で、データベースは個別
工夫次第でインフラの共有は可能だが、スキーマ管理や運用管理は個別に行うことになり、運用に手間がかかる。
(レベル3)利用者ごとに個別のデータベース、個別のスキーマ
利用者からの個別のリクエストに柔軟に対応しやすくなるが、しかしデータベースの種類が増えて管理が面倒になり、運用の手間がかかる。共有部分も減り、インフラの利用効率も悪い。
セールスフォースはレベル1のマルチテナントアーキテクチャを採用しているからこそ、サーバリソースを最大限に高い効率で稼働させることができているうえに、管理のコストが低く抑えられている、というのが専門家の共通認識です。これによって高品質低価格のサービスが実現できている、とセールスフォース自身も主張しています。
このアーキテクチャでは全利用者が同一のインフラを共有できるため、例えばアジア、ヨーロッパ、アメリカのようにビジネスアワーが分散した顧客がいれば、サーバはつねに高効率で稼働させることができます。
セールスフォースの資料を読むと、明言こそしていませんが「SaaSはすべて同じではない」などの表現から、レベル1だけが本当のマルチテナントアーキテクチャだという考えがうかがえます。
一方で、レベル1のアプリケーションの実装は複雑です。同じデータベースに複数の企業が利用するデータを保存しつつ、どうやって企業間のデータのセキュリティを維持するのか? 同一のスキーマを利用しつつ個別のカスタマイズにどうやって対応するのか? などの課題が待ち受けているのです。
こうした課題があるため、ライバルとなるオラクルが提供する「Oracle CRM on Demand」やSAPの「SAP CRM on Demand」では、レベル1のマルチテナントアーキテクチャは採用しておらず、シングルテナントアーキテクチャを用いているようです(参考1、参考2)。
さて。マルチテナントアーキテクチャの採用で高効率性は実現できても、それだけではスケーラビリティやアベイラビリティの実現にはなりません。そこにはまたマルチテナントアーキテクチャによる別のテクノロジーが用いられています。それについては次回に説明します。
ここで説明しているセールスフォースのマルチテナントアーキテクチャについては、同社が公開している資料などに基づいて僕が理解したことをまとめたものです。できるだけ正確な説明を心がけていますが、推測に基づく部分があること、同社の公式見解とは異なる部分などがあるかもしれないことをお断りしておきます。参照した情報は以下をご覧ください。
(「知られざる「マルチテナントアーキテクチャ」(2)~スケーラビリティのカギは組織ID」へつづく)
関連記事 on Publickey
- 知られざる「マルチテナントアーキテクチャ」(1)~SaaSはみんな同じではない?
- 知られざる「マルチテナントアーキテクチャ」(2)~スケーラビリティのカギは組織ID
- 知られざる「マルチテナントアーキテクチャ」(3)~スキーマとメタデータの謎
- セールスフォースがサーバをサンからPCへ。コスト4分の1、性能2倍に
- パッケージソフトからSaaSへと主戦場が変わるCRM市場
- Salesforce CRMレビュー - SaaSの代名詞ともいえるアプリケーションの営業支援機能を試す
参考情報 on the Web
- マルチテナントプラットフォーム: オンデマンドで成功する決め手 - salesforce.com
- JP Multi Tenant Architecture:Force.comのマルチテナント型アーキテクチャ - developer.force.com
- Data Architecture Webinar「Multi-Tenant Magic:Under the Covers of the Force.com data Architecutre.」
- セールスフォース・ドットコム、100万ユーザ突破へ - salesforce.com
- セールスフォース、有償ユーザー数が100万人を突破、企業をつなぐSNS的新製品も発表へ:ニュース - CNET Japan
- サンからデルにサーバーリプレースで75%のコスト削減 - Analyst Day 02:セールスフォースとクラウド/SaaS
- マルチテナント データ アーキテクチャ - msdn
- クラウド的な世界へ > クラウドにはやっぱりマルチテナントだけど : ITmedia オルタナティブ・ブログ
- Many degrees of multi-tenancy | Software as Services | ZDNet.com
- Part3 アーキテクチャがもたらす特性を理解しSaaSの真の実力を知る | IT Leaders
- ASCII.jp:選択肢を提供する――日本オラクル、SaaS型CRMアプリケーションの新版を発表
- SAP ジャパン - SAP CRM On-Demand:IBMとのパートナーシップ| CRMソリューション