単純/安価/高速 : .NET から Node + Heroku に乗り換えた Playtomic
Simpler, Cheaper, Faster: Playtomic’s Move from .NET to Node and Heroku
http://wp.me/pwo1E-54r
Monday, October 15, 2012 at 9:15AM
http://highscalability.com/blog/2012/10/15/simpler-cheaper-faster-playtomics-move-from-net-to-node-and.html
This is a guest post by Ben Lowry, CEO of Playtomic. Playtomic is a game analytics service implemented in about 8000 mobile, web and downloadable games played by approximately 20 million people daily. Here’s a good summary quote by Ben Lowry on Hacker News:
Playtomic が提供する分析サービスは、2000万の人々が毎日のようにプレーする、モバイル/Web/ダウンロードを前提とした、約 8000 種類のゲームにインストールされたものである。以下は、Ben Lowry が Hacker News で発言した、きわめて明快な概要である:
Just over 20,000,000 people hit my API yesterday 700,749,252 times, playing the ~8,000 games my analytics platform is integrated in for a bit under 600 years in total play time. That’s just yesterday. There are lots of different bottlenecks waiting for people operating at scale. Heroku and NodeJS, for my use case, eventually alleviated a whole bunch of them very cheaply.
20,000,000人以上の人々が、昨日は 700,749,252回も、私の API にアクセスした。その解析プラットフォーム上の、8000弱のゲームをプレーすることは、600年分の時間を費やすに等しくなる。 ただし、それは、昨日の利用だけに過ぎない。 大規模スケールに取り組む人々にとって、それぞれのボトルネックが、たくさんの位置に存在している。 私のユース・ケースにおいては、最終的に Heroku と NodeJS が、きわめて低コストで、その多くを緩和している。
Playtomic began with an almost exclusively Microsoft.NET and Windows architecture which held up for 3 years before being replaced with a complete rewrite using NodeJS. During its lifetime the entire platform grew from shared space on a single server to a full dedicated, then spread to second dedicated, then the API server was offloaded to a VPS provider and 4 – 6 fairly large VPSs. Eventually the API server settled on 8 dedicated servers at Hivelocity, each a quad core with hyperthreading + 8gb of ram + dual 500gb disks running 3 or 4 instances of the API stack.
NodeJS を用いて完全に書き換えられる以前の Playtomic は、Microsoft の .NET と Windows のアーキテクチャを、ほとんど排他的な形式で、3年も採用してきた。この プラットフォーム全体は、専用のシングル・サーバー上の共有スペースから、専用の分散サーバーへと成長してきた。 そして、さらに、API サーバーは、4~6 社の大手 VPS 上へと、均等にオフロードされた。 最終的に、この API サーバーは、Hivelocity が提供する 8台の専用サーバー上に落ち着いたが。 しかし、その API スタックでは、Quad-Core のハイパー・スレッディング + 8GB の RAM + 二重化された 500 GB により、3 ~ 4 個のインスタンスを走らせるという状況であった。
These servers routinely serviced 30,000 to 60,000 concurrent game players and received up to 1500 requests per second, with load balancing done via DNS round robin.
これらのサーバーは、DNS ラウンド・ロビンを介したロードバランシングを用いて、30,000 ~ 60,000人のゲームプレイヤーに対して、コンカレントなサービスをルーチンとして提供し、また、1秒あたり 1500 のリクエストを受けている。
In July the entire fleet of servers was replaced with a NodeJS rewrite hosted at Heroku for a significant saving.
そして、この 7月には、全体的なサーバーの構成を、Heroku 上にホストされる NodeJS で、書き換え、また、リプレイスすることになった。 そして、大幅なコストの削減が実現されたのだ。
Scaling Playtomic with NodeJS
There were two parts to the migration:
Dedicated to PaaS: Advantages include price, convenience, leveraging their load balancing and reducing overall complexity. Disadvantages include no New Relic for NodeJS, very inelegant crashes, and a generally immature platform.
Dedicated to PaaS: アドバンテージとしては、価格/利便性/ロードバランシングの活用/全体的な複雑さの低減などが挙げられる。 ディス・アドバンテージとしては、NodeJS 用の New Relic の不在/とてもエレガントとは言えないクラッシュ/全般的に見て未熟なプラットフォームなどが挙げられる。
.NET to NodeJS: Switching architecture from ASP.NET / C# with local MongoDB instances and a service preprocessing event data locally and sending it to centralized server to be completed; to NodeJS on Heroku + Redis and preprocessing on SoftLayer (see Catalyst program).
.NET to NodeJS: ASP.NET / C# からローカルな MongoDB インスタンスへの、アーキテクチャの置き換え。 そして、ローカルでのイベント・データの処理と、処理を完了されるための、センタライズされたサーバーへの送信。具体的には、NodeJS on Heroku + Redis と、SoftLayer 上でのプリ・プロセシング( Catalyst プログラムを参照)。
ーーーーー
.NET と NodeJS の比較ということですが、この Playtomic のアプリケーション・モデルとビジネス・モデルにおいては、NodeJS の方が適しているという事なのでしょうね。 そして、このようなアプリケーション・モデルが、ものすごい勢いで増えてきているのだと思います。さまざまなサービスが、API という形式で提供され、さらに、それらを分析するためのプラットフォームが加わっていくわけです。こういう記事を読むと、理想的なコンピューティングが具体化しているのだと感じられますね。 ![]()
ーーーーー
<関連>
NY の地下鉄では、スマホ・チケットの試みが始まるらしい
エンタープライズ・ソーシャルって、どう捉えたら良いの?
Apigee は、テレコムのための SDN を考える
分散オブジェクト・ストアの Basho が CloudStack に参加
次世代ビジネスとして、Data as a Platform に注目する _1






















































































leave a comment