クラウドの効率性:Salesforceの全サービスはわずか1,000台のサーバで運用されている

次の記事

Hulu、2月の閲覧者数は1000万増。米国内ビデオサイト第4位の地位を獲得

先ほどまでニューヨーク市で行われていたSalesforce.comのアナリストによるキーノートプレゼンテーションに参加していた。CEOのMarc Benioffや他のエグゼクティブもSalesforceの中からTwitterの会話を追跡する件について話をしていた。当然私はTwitterでメモを取っていた(下にそのメモを再掲しておく)。Salesforceはサービス内部からTwitterの会話をキーワードによって検索したりモニタリングするための追跡機能とでも言うべきものを実装している。この機能についてはTwitter自体にも実装して貰いたいと思う。

但し、本日もっとも興味深く感じたのはTwitter絡みの話ではない。Salesforceのバックエンドについて話が出たのだが、なんとこのサービスはたった1,000台のサーバを利用して運用されているとのことだ。かつ、それはミラーサーバーを含めた台数で、つまりは実質500台で運用しているということになる。少し考えてみて欲しい。Salesforceには55,000以上の会員企業が属しており、個人ベースでは150万もの参加者がいる。サードパーティー製のプログラムは3千万行に及んでおり、数百テラバイトのデータすべてが1,000台のコンピュータ上で処理されているわけだ。参考までにAmazonのWeb Serviceは、インフラ情報を知る人から聞いたところによれば約100,000台のコンピュータで運用されているそうだ。

EC2クラウドの処理などのWeb Serviceは利用者間で共有しているわけではないので、直接的に比較するのはナンセンスだろう(利用者にはインスタンス処理のための専用コンピュータないし占有部分が与えられることになる)。しかしそれでも大雑把に言ってSalesforceはAmazonのクラウドに対して100対1の効率性優位を持っていることになる。独自のプログラムを独自のデータベースにて、データを非常に効率的に処理するための「マルチテナントオプティマイザー」を実装することで、この優位性を実現している。

Salesforceのデータはすべて10のデータベースに格納されており、このデータベースは50台のサーバ上で稼働している。尚数千万もの生データを処理する方法についてはいくつもの特許を獲得している。中でも最も強力な武器は「オプティマイザー」で、データベースへの問い合わせを最適化してデータの効率性を上げている。これらはいずれも独占技術として保持されている。Benioffはオープンソースの試みを効率性の観点から否定している。「私たちはリアルタイムクエリーのためのオプティマイズを行っています。既存オープンソースのオプティマイザを利用したりはしていません。それらは利用に耐えないのです」。厳しい意見ではある。

以下、プレゼンテーションの最中に作成したTwitterでのメモを時系列で再掲(訳注:英文のまま)しておく(強調部分は太字にしておいた)。


# Listening to Marc Benioff at press/analyst event. Says Salesforce has 30M lines of code written by others via APPExchange.

# Marc Benioff claims writing an app on the cloud is 5X faster and 5X cheaper than creating conventional enterprise apps. Good talking point.

# Salesforce stole Genius features from Apple, shows related deals. Benioff loves to borrow from consumer apps and make them enterprise.

# Wow, customer service support is now an $8B business, up from $5B in 2004. But customer satisfaction is flat. All going to the cloud.

# At Salesforce event, they are finally talking about Twitter. They claim 8M Twitter users. Wonder where they get that from.

# Salesforce CRM for Twitter is basically Track. Lets you monitor, search, track topics inside salesforce.

# Salesforce Twitter Track searches both original Tweets and replies, even if the keyword is not in the reply. Twitter, please take note.

# Salesforce Twitter feature imports the entire conversation when it gets a search hit.

# Salesforce Twitter integration is two-way. Cos. can monitor Twitter conversations, and then reply back, and the reply appears on Twitter.

# Benioff on need for new development environments for cloud apps: “These are not things you buy out of the box from Frys!”

# Salesforce hosts 13M customizations to its apps on its database.

# Salesforce has over 30M lines of 3rd party code. How does that compare to how many lines of code are in an Oracle or SAP app? Anyone know?

# Starbucks CTO saying they have gotten 65K ideas from customers in a year, MyStarBucksidea. Only 25 ideas implemented (like anti-spill stick)

# Starbucks CTO Bruzzo: tried to raise 1M hours of volunteer service in January both from stores and online. Built app in 21 days.now 1.3M hrs

# Benioff: “We have real-time query optimization. We don’t use some out of the box open source query optimization. Those things don’t work.”

# Salesforce enterprise customers can open up tunnels and share data with each other. Cool. It’s EDI for the masses.

# Salesforce manages hundreds of terabytes. Salesforce runs less than 1,000 machines. Salesforce running on about 10 databases worldwide.

# Each Salesforce database supported by about 50 servers, 2 mirrors, one codebase.

# All of the data of all the billions of rows in salesforce fits into only about 20 tables. Patents on indexing pivot tables.

# Salesforce takes the raw data and compresses. Creates a “multi-tenant index”: “shared massive structures with tens of billions of rows.”

# Salesforce’s secret sauce: It queries its databases with “The Multi-Tenant Optimizer.”

# Salesforce database going from tens of millions of rows to billions of rows per tenant/customer.

(Photo by JohnSeb).

原文へ

(翻訳:Maeda, H)