Agile Cat — in the cloud

Google App Engine が PHP をサポートする: なぜなら 75% の Web をカバーしているから

Posted in .Selected, DevOps, Google by Agile Cat on July 4, 2013

Google App Engine finally supports PHP, the language that runs 75% of the web
http://wp.me/pwo1E-6kp
May 17, 2013 –
John Koetsier
http://venturebeat.com/2013/05/17/google-app-engine-finally-supports-php-the-language-that-runs-75-of-the-web/

_ VB Dev

Two days ago, Google announced it would finally support the most popular computing language on the planet, PHP, in its platform-as-a-service offering, Google App Engine.

二日前 (5/15) のことだが、Google は自社の PaaS において、つまり Google App Engine において、地球上で最も人気のあるコンピューティング言語 PHP をサポートすると発表した。

That means that yes, at some point you’ll be able to run your little WordPress-powered blog on the biggest server farms on the planet. But it also means that major companies will be able to use Google’s famously reliable services to run their enterprise-scale “big data,” backend, and, yes, consumer web projects, all in the PHP language that that is increasingly penetrating corporations.

そう。 いくつかの点で、とても興味深いところがある。 たとえば、WordPress パワーを供給する、あなたの小さなブログを、地球上で最大のサーバーファーム上で実行できるようになる。しかし、その一方で、大手の企業群が、自身のエンタープライズ・スケールのバックエンド・ビッグデータを、Google が提供する高信頼性のサービス上で実行できることも意味する。さらに、どんどんとエンタープライズに浸透している、すべてを PHP 言語で記述されたコンシューマ Web プロジェクトも同様である。

I talked to one of the three founding fathers of PHP and current Zend CEO, Andi Gutmans, about the implications for PHP.

私は、PHP を創りだした3人のうちの1人であり、また、Zend の CEO である Andi Gutmans に、そこに含まれる 要素について話を聞いた。

It’s a busy time for the Gutmans, the open-source programming language, and Zend, the company Gutmans formed to offer commercial support and tools for PHP. Engine Yard just recently added PHP to their Platform-as-a-Service as well. And Zend is expanding quickly in the enterprise as it has recently released integrated development tools for cloud-enabled mobile applications.

いま、Gutmans は、このオープンソース・プログラミング言語と Zend のために、多忙を極めている。 そして、Gutmans は同社により、PHP に関するサポートとツールを、商用化しようとしている。つい先日だが、Engine Yard の PsaS にも PHP が追加されている。さらに言えば、クラウド対応モバイル・アプリのための、統合開発ツールをリリースしたときから、Zend の勢いがエンタープライズの領域でも急速に拡大している。

But Gutmans, though busy, is thoroughly upbeat.

たしかに Gutmans は忙しいが、とても元気である。

And for good reason: The biggest web company on the planet just added support for the most widely used programming language on the planet. And in that support is a massive implied compliment to PHP — the first non-Google programming language to be supported by Google App Engine — and a potentially major boost to Zend’s business.

それには理由がある。つまり、この地球上で最大の Web 企業が、地球上で最も広く使われているプログラミング言語をサポートし始めたのだ。その企業がサポートすることは、PHP に対する最大級の賛辞である。つまり、Google App Engine がサポートされる、Google 以外から提供されるプログラミング言語となることで、Zend のビジネスが大きく後押しされる可能性が生じたのだ。

Andi Gutmans at ZendCon 2012.

VentureBeat: Did Google talk to you before adding PHP to Google App Engine?

Google App Engine に PHP を加えるという話が、この件に先立って Google からあったのか?

Andi Gutmans: I don’t know how to answer that. I was aware that they were going to make that announcement … I’ve worked with the product manager on the project before.

どのように答えたら良いのか、よく分かららない。 彼らが発表をするつもりだったことを、私は知っていた… つまり、このプロジェクトのプロダクト・マネージャーと、一緒に働いてきたのだ。

VentureBeat: Google didn’t formally brief you?

Google からの、正式な説明は無かったのか?

Gutmans: Let’s put it this way: It’s not a surprise that a platform-as-a-service (PaaS) player that’s serious about gaining market share added PHP support. Google App Engine was almost a science project for the first few years, only supporting languages that Google used internally. But in the past few months, there’s been a real attitude from Google that we’re going to go and compete with Amazon and with Microsoft, and we’re going to do it all fronts. They’ve become very aggressive on differentiating on performance and billing.

以下のようなロジックがありあるだろう。 つまり、マーケットでのシェアを真剣に獲得しようとする PaaS プレーヤーが、PHP をサポートすること自体は、それほどの驚きではない。Google App Engine における、最初の数年間は科学的なプロジェクトとも言えるものであり、Google の内部で使用される言語だけがサポートされていた。しかし、最近の数ヶ月において、Amazon および Microsoft と競合していくという、Google からの真摯な表明があり、私たちも前線に立つことを決意した。Google は、性能と料金における差別化も、とても積極的になってきた。

VentureBeat: What does this announcement say about PHP?

今回のアナウンスメントにおける、PHP への言及は?

Gutmans: We have internal jokes about PHP’s web penetration and have used the stat that PHP runs 39 percent of the web because it was the only number we could get from Netcraft. But I love Google’s stat, that 75 percent of the web runs PHP. No one knows the web better than Google. If they’re trying to gain market share and gain it quickly, there’s no other language to do it with. And this is the first non-Google language they’re supporting.

PHP の Web への浸透については、内輪で冗談を言い合っていた。 また、PHP が、39% の Web で走っているという統計データを持ってはいたが、それは Netcraft だけから得られるものであった。しかし、Google は、75% の Web で PHP が使われているという、独自の統計結果を持っている。 この点について、Google 以上に、正しい情報を持つ者はいないだろう。もし、Google がマーケット・シェアを得ようとし、また、短時間で達成したいなら、他の言語という選択肢はないだろう。そして PHP は、Google がサポートする、初めての Google 以外の言語である。

VentureBeat: How’s that feel? And how are your customers reacting?

一連のことを、どのように捉えている? そして、カスタマーたちの反応は?

Gutmans: I’m definitely excited about it. When any player does something like this — especially Google — it’s a huge validation. We got emails from some of our largest customers, saying this is great … it gives our enterprise customers a higher sense of confidence. And that stat that 75 percent of the web runs PHP is great for Zend – anything that is good for PHP, by proxy is good for Zend. In addition, they said that PHP was their top-requested feature, which means the developer community was very supportive of us.

ほんとうに、素晴らしいことだと思っている。なんらかのプレイヤーが、とりわけ Google が、この種の方針を選択するとき、それは大きな検証となる。私たちの大手カスタマーからも、自身を持って使い続けるという、喜びのメールが届いている。そして、75% の Web で PHP が使われているという統計は、Zend にとって素晴らしいことである。 つまり、PHP にとって素晴らしいことは、その代理人である Zend にとって素晴らしいことになる。それに加えてカスタマーたちは、最も必要なのが PHP だと発言しているが、それは、開発者コミュニティがとても協力的だったことに他ならない。

VentureBeat: Will you offer Google App Engine Support within Zend Studio, so developers can publish to Google right from within their Zend development environment?

Zend Studio 内で Google App Engine Support が実現するのか? そうなると、デベロッパーたちは、Zend の開発環境から 、Google が所有するソフトウェアをパブリッシュ できるようになるのか?

Gutmans: We don’t know yet … it’s early and we’re exploring what kind of relationship we can have with Google. We do support Google Compute Engine — that’s a full integration and some of the larger companies who run PHP already use it — but Google Apple Engine is just launched, it’s still in experimentation mode.

その点については、まだ不明である。 時期尚早だと思うし、Google との関係を、どのようにするのかを模索しているところだ。私たちは、Google Compute Engine もサポートする。 それは、完全なインテグレーションであり、すでに PHP は使用しているエンタープライズは、それを走らせることになる。しかし、Google App Engine 用のものは、まだ、立ち上がったばかりであり、まだ、実験モードにある。

VentureBeat: What took Google so long to add PHP support?

PHP をサポートするまでに、かなりの時間が経過したが、その間に Google の得たものは?

Gutmans: I can’t speak for Google, but my assumption is that I felt that Google App Engine in the first few years was something they knew they wanted to do really well but … they kinda went down the simple easy route. But we’ve seen a significant acceleration in the past 12 months. This will be a $20 billion market by 2016, and they moved from testing the waters to being very very aggressive right now. We recently surveyed 5,000 PHP developers, asking them where in the cloud do you think you’ll deploy. Fifty-one percent said Amazon Web Services, but Google was 21 percent … and we just support Compute Engine right now. It wasn’t even on the list last year, so that’s a big jump.

Google に代わって何かを話すことはできないが、最初の数年間において Google App Engine で本当にやってみたいことを、彼らは知ることになったと、私は推測するし、そう感じている。しかし、彼らは、シンプルで容易なルートを受け入れることになった。そして、この12ヶ月における、大幅に加速を確認してきた。このマーケットは、2016年 までに  $20 billion の規模に成長するとされ、また、Google はテストからビジネスへと向けて、積極的に転換していこうとしている。 5000人の PHP デベロッパーに対する、私たちの最近の調査では、どのクラウドにデプロイメントするつもりなのかを尋ねている。 Amazon Web サービスだと  51% が回答しているが、Google も 21% だった。 そして、私たちも、Compute Engine のサポートを決めたところだ。昨年の段階では、検討もされたなかったことであり、そこには大きな躍進があったことになる。

VentureBeat: What does this mean for the little guy building in PHP or hosting a WordPress blog?

WordPress ブログを PHP で構築しホスティングする、若干の人々にとって、どのような意味があるのだろう?

Gutmans: I think it gives another option for the guys who do the small stuff, who are using shared hosting for $20/month. What’s really great for the small developer is that it’s a nice value proposition — you can start at a lower cost. And, it’s a modern platform versus shared hosting, which is quite constrained.”

小規模な開発を行う人々に対して、$20/month でシェアード・ホスティング提供するという、別の選択肢が出てくると、私は考えている。小規模な開発者にとって、ほんとうに素晴らしいことは、適切な価値で提案がなされることだ。つまり、低コストでスタートできることである。そして、私たちが提供するものは、かなり制約を受けているシェアード・ホスティングに対向する、現代的なプラットフォームである。

VentureBeat: So what does this mean for PHP overall?

今回のことは、PHP 全体に対して、どのような意味を持つのだろう?

Gutmans: The number of requests that Google got from developers was very very significant. It exemplifies what we’ve been talking about … that PHP is very broadly adopted, but also by enterprise. And that is driven by web, mobile, and cloud, which is where PHP’s sweet spot is. We’re seeing a strong tailwind behind us.

デベロッパーたちから Google への要求は、きわめて意味のある、膨大なものとなっている。それが例証するのは、私たちが話していたことである。 つまり、きわめて広範囲で、PHP が採用されているが、それがエンタープライズによるものだという事実である。そして、それは、PHP のスイート・スポットである、Web/Mobile/Cloud によりドライブされている。私たち、大きな追い風を認識している。

ーーーーー

関連:PHP サーバー 1台で 30000人のユーザーを同時サポート: 5つの簡潔なレシピとは?

ーーーーー

TAG indexプログラミング言語も開発環境も、クラウドのフレームワークに合わせて、大きく変化していくのでしょう。 PHP というと、WordPress と Facebook が頭に浮かびますが、そのあたりについては、『Facebook を 1.8 倍速に、WordPress を 2.7 倍速にする、HipHop とは ?』という抄訳を参照してください。 また、先日にポストした『開発環境をクラウドに移行できれば、デベロッパーは幸せになれるはず』という抄訳には ーーー クラウドはアプリケーションの、デザイン/テスト/ディプロイの手法を変化させ、アプリケーション開発における優先順位に大きな影響をもたらしているようだ。ーーー という、Gartner のコメントが添えられていました。これも、とても面白いコンテントなので、ご参照ください。__AC Stamp 2

ーーーーー

<関連>

Google App Engine ケース・スタディ:その API が Angry Birds を元気にする
PHP のクラウド API とオープンソース
PHP SDK for Windows Azure
Heroku の Java サポートと、その背景について
f8 終了後の 24時間で、34000本の Facebook アプリが Heroku 上で量産された
単純/安価/高速 : .NET から Node + Heroku に乗り換えた Playtomic

Facebook が発表した Folly は、宝石のような オープンソース C++ ライブラリなのだ!

Posted in .Selected, Big Data, Facebook by Agile Cat on June 6, 2012

Facebook unveils Folly, a treasure trove of open-source C++ gold
http://wp.me/pwo1E-4hA

Jolie O’Dell – June 2, 2012 3:00 PM
http://venturebeat.com/2012/06/02/facebook-folly/

_ VB Dev

“Facebook’s Folly” — sounds like a mid-life-crisis-type watercraft, doesn’t it? But it’s actually a huge bundle of C++ utilities focused on speed, ease of use, and interoperability with other C++ libraries you already use.

Facebook の Folly(愚行)って、中年の危機みたいな名前をヨットにつけるようで、なかなかイカしていない? しかし、それは、スピードと使い易さを考慮し、また、既存の C++ ライブラリとのインターオペラビリティも実現する、大規模な C++ ユーティリティーなのである。

Gemenacom, Shutterstock ⇒ 

The collection of reusable C++ library artifacts was developed in-house at Facebook to meet the needs of Facebook’s engineers. As they have done in the past with other open-source projects like Cassandra, HipHop, and Thrift, Facebook’s developers have now placed Folly into the realm of open-source software.

この、再利用が可能な C++ ライブラリのコレクションは、Facebook エンジニアの要求を満たすために、インハウスで開発されたものである。これまでに、Cassandra/HipHop/Thrift などをオープンソース化してきたように、Facebook のデベロッパーたちは、この Folly をオープンソース・ソフトウェアの領域に置いた。

“The development of [Folly] was fueled by the desire to create complementary utilities that allowed us to move fast and not reinvent any wheels,” a Facebooker told VentureBeat last night in an email. “We worked to make this library as fast and easy-to-use as possible.”

「 この Folly の開発は、補足的なユーティリティーを作成したいという要求により促進された。それは、私たちにスピードを与え、また、煩わしさを取り除いてくれた。 このライブラリを、可能な限り高速であり、また、使い易いものにするために、私たちは作業してきた」と、昨夜のことだが、ある Facebooker が VentureBeat にメールを送ってくれた。

The rep noted that Folly is obviously going to be useful for developers of large-scale, distributed apps with significant performance challenges. But he said the library is also “of general utility” for other types of C++-using developers, as well.

この代表者は、パフォーマンスという大きな課題を持つ、ラージ・スケールの分散アプリケーションに取り組むデベロッパーにとって、Folly は明らかに有用であると指摘した。そして、このライブラリは、他の C++ を使用するデベロッパーのための、「一般的なユーティリティ」にもなると付け加えている。

“Folly also contains state-of-the-art work-alikes for two common C++ standard library utilities (std::string and std::vector), which may be useful for anyone who does not have access or a license to a quality C++ standard library, or who might want to use those classes in an embedded setting where they are avoiding most of the rest of the standard library for code size reasons,” he said.

「さらに Folly には、2つのコモン C++ スタンダード・ライブラリー・ユーティリティー(std::string と std::vector std)に似た、最新のテクノロジーが取り込まれている。まず、高品質な C++ スタンダード・ライブラリにアクセスするための、ライセンスを有していない開発者に有用だろう。あるいは、コードサイズの理由から、スタンダード・ライブラリを避けたいエンベディッド設定で、それらのクラスを使う開発者にも有用だろう」と、彼は発言している。

facebook_logoAlso, because it breaks dependencies on Facebook’s internal code, Folly will allow Facebook to open-source even more of its homebrewed software — an exciting prospect, given the caliber of engineer the company hires.

さらに、そこでは Facebook のインターナル・コードへの依存性が断ち切られているため、Folly は Facebook に対してさえ、自家製のソフトウェア以上のオープンソースを提供する。 つまり、同社が採用するエンジニアの力量を前提とした、エキサイティングな展望が開けてくる。

The company announced the library today during the C++ conference at its Menlo Park headquarters.

今日のことだが、Menlo Park HQ で開催された C++ カンファレンスにおいて、このライブラリが発表された。

“This is code that runs on thousands of servers doing work on behalf of 900 million users every day,” wrote Facebook software engineer Jordan DeLong today on the company blog. “The over-arching theme for all of the components is high performance at scale.”

「これは、9億人のユーザーをサポートする、何千というサーバー上で実行されるコードある。これら全てのコンポーネントにおけるテーマは、大規模スケールでのパフォーマンスである」と、Facebook のソフトウェア・エンジニアである Jordan DeLong は、今日のブログにポストしている。

DeLong said that Folly was built for comfort as well as speed, meaning it’s easier to use and faster to work with than other alternatives. He also said Folly plays well with others (other C++ libraries of quality, that is). “We have a low tolerance for “Not Invented Here” syndrome,” he said.

DeLong は Foolly について、快適さだけではなく、その実行スピードも考慮しているため、それらの点で他のライブラリより優れる、と発言している。 さらに、Folly は、その他のソフトウェア(他の 高品質 C++ ライブラリ)とも協調できる。 「 私たちは、Not Invented Here シンドロームに耐えられないのだ」と、彼は付け加えている。

You can check out Folly for yourself on Facebook’s Gitub page.

Facebook の Gitub ページ で、Folly を確認して欲しい。

ーーーーー

TAG indexちょうど 1年ほど前のことですが、High Scalability  Todd Hoff さんの記事である「MySpace を殺したのは Microsoft ソフトウェア・スタックなのか? いや、それは違うだろう」を訳しました。 そこでは、「Myspace には、Facebook と競合するために、自身のサイトをスケールしていくだけの、プログラミングに関する能力が備わっていなかった」、「Microsoft スタックの選択は、Facebook と競合するために必要な、人材の確保を困難にした」、「Facebook の選択である LAMP スタックは、スケーラブルを知っている人材の確保を容易にし、それを迅速に実現する」といった指摘がなされていました。 この Folly の発表を見て、そんなことを思い出しました。 ーーー ac-stamp-232

ーーーーー

<関連>

Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか
Facebook Billion 単位のメッセージを処理していく
Facebook は、毎月 1350億メッセージを処理する!
Facebook における 1300万/秒クエリーの秘密
Facebook 20分間で、2.7M Photos/10.2M Comments/4.6M Messages を処理する!

Facebook を 1.8 倍速に、WordPress を 2.7 倍速にする、HipHop とは ?

Posted in Facebook by Agile Cat on August 23, 2010

HipHop for PHP: six months later
by
Scott MacVicar on Saturday, August 14, 2010 at 12:42am
http://www.facebook.com/note.php?note_id=416880943919

8d84663f-1669-4a2f-89b1-f954e342c8ec

It’s been six months since we released HipHop and I wanted to share an update on its progress. In February we released 693,613 lines of source code which on average reduced our CPU usage here at Facebook by about 50%. Since February, the team has made HipHop another 1.8 times faster and all of that code is open source. We’ve also seen improvements to PHP itself with the additions to PHP’s trunk in April being about 10% faster than 5.3.

私たちが HipHop をリリースしてから 6ヶ月が経過したが、その進歩におけるアップデートを共有したいと思う。 この 2月には 693,613 行のソースコードをリリースしたが、それにより、Facebook における CPU の使用量が、平均で 50% ほど低減した。 その後、このチームは、HipHop を 1.8 倍ほど高速化することに成功し、また、それらのコードは、すべてオープンソース課されている。 さらに、4 月に PHP のトランクに付け加えたときには、PHP 自身が 5.3 と比べて 約 10% ほど高速化されているのも確認した。

Over the past few months we’ve worked with the Drupal, MediaWiki, phpBB and WordPress teams to get their software running under HipHop. This really means helping them remove some dynamic code and fixing bugs found by the compiler. Today Drupal.org and WikiPedia are all testing versions of their sites under HipHop, with others having plans to do so soon. While this statistic isn’t final, we found WordPress has become 2.7x faster when running under HipHop.

この数ヶ月の間に、HipHop 上でソフトウェアを実行するために、Drupal や、MediaWikiphpBB、そして WordPress のチームと共同で作業してきた。 いくつかの動的なコードを削除し、コンパイラにより発見されたバグを修正しながら、彼等をサポートすることは、ほんとうに意味のあることだった。 ちょうどいま、Drupal.org と WikiPedia は、彼等のサイトにおける、すべての HipHop バージョンをテストしてる。 そして、他の仲間たちも、すぐにテストに入る予定だ。HipHop 上の WordPress が、2.7 倍ほど速くなったと認識しているが、その数値は最終的なものではない。

From a community perspective, there have been about fifteen external patches submitted that went straight into trunk and about another five that focused on the open source build system. The speed of these patches have started to increase in the past month. As ocProducts started using HipHop in production, they reported a small number of crash bugs which we hadn’t yet encountered in production but likely would have in the future. Chris Graham ran RoadSend and phpc test suites against HipHop which resulting in it our passing 98% of tests and forty language oriented bug reports.

コミュニティという視点から見ると、外部から提供され、そのままトランク入りした 15 のパッチがあり、その他にも、オープンソースの構築システムにフォーカスした 5本のパッチがあった。 これらのパッチにより、この 1ヶ月間の開発が加速した。 ocProducts が実運用環境で HipHop を使い始めたときには、私たちが遭遇することになる深刻なバグに関して、いくつかのレポートが提供された。 Chris Graham が RoadSend と phpc テスト・スイートを HipHop に適用したときには、98% のテストをパスするという結果がもたらされたが、言語に関連する 40種類のバグ・レーポートも提供された。

Hui Chen, a Summer of Code student, has worked to add support for FreeBSD and 32-bit environments. We’ve also added preliminary support for OS X. While we’re not planning to use these platforms at Facebook, they’ll go a long way to getting even more community involvement around the project. For example, there are a number of developers who want to test and develop with HipHop on their 32-bit laptops.

Summer of Code の研究者である Hui Chen は、FreeBSD と32 bit 環境のサポートを、その作業に加えた。 私たちも同様に、OS Xに対する予備的なサポートを加えた。 それらのプラットフォームを Facebook で使う計画は無かったが、このプロジェクトを取り巻きながら、私たちとは遠い距離にあるコミュニティを、彼等は引き連れてきた。 たとえば、32 bit のラップトップ上で、HipHop の開発とテストを望む、数多くのデベロッパーがいる。

Thanks again from the entire team for helping make HipHop better and thus the web faster!

HipHop を高速化して、さらには Web まで速くしてしまった、このチームにおける全ての人々に Thanks Again!

Scott, an engineer, likes moving fast

ーーーーー

いやぁ~~~ 痛快ですね、ここまでキメてくれると! これが、超大規模システムで具現化されていること、そして、コミュニティがドライブしていることに注目したいですね。 我が WordPress の名前も入っていて、とても気分がよろしいです! ーーー A.C.

ーーーーー

<関連>
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか
Facebook、Twitter、Digg などでの Cassandra の状況について
わずか四半期の間に、サーバー数が倍増した Facebook の事情
Facebook の HDFS クラスターは 21 PB !!!
Facebook のスケール感覚に驚愕!

Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _3

Posted in Facebook by Agile Cat on July 9, 2010

Exploring the software behind Facebook, the world’s largest site _3
Posted in
Main on June 18th, 2010
by Pingdom
http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/

image_thumb2

いよいよ最終回です。 前回は Facebook が利用しているソフトウェアをリストアップしていましたが、そこには含まれなかった運用に関するノウハウを、今回は紹介してくれます。 スケールという視点からして、参照できる事例のない Facebook としては、道なき道を切り開いていかざるを得ないわけです。 したがって、他では聞くことのできない貴重な情報が、たっぷりと含まれている記事となっています。 楽しんでくださ~~~い。 ーーー A.C.

ーーーーー

Other things that help Facebook run smoothly

We have mentioned some of the software that makes up Facebook’s system(s) and helps the service scale properly. But handling such a large system is a complex task, so we thought we would list a few more things that Facebook does to keep its service running smoothly.

ここでは、Facebook のシステムを構築し、サービスのスケールを適切に支援する、いくつかのソフトウェアを説明してきた。 ただし、このような大規模システムの取り扱いには、複雑なタスクがつきものだ。 したがって、Facebook がサービスを円滑に提供するために用いている、いくつかの事柄についてリストアップしておく。

Gradual releases and dark launches

Facebook has a system they called Gatekeeper that lets them run different code for different sets of users (it basically introduces different conditions in the code base). This lets Facebook do gradual releases of new features, A/B testing, activate certain features only for Facebook employees, etc.

Facebook は、それぞれのユーザーのグループに対して、異なるコードを実行させる、Gatekeeper というシステムを持っている(基本的にコードベースに異なる条件を導する)。 それにより Facebook は、新しい機能の段階的なリリースや、A / B テスト、従業員に限定した特定機能のアクティベーションなどを実現している。

Gatekeeper also lets Facebook do something called “dark launches”, which is to activate elements of a certain feature behind the scenes before it goes live (without users noticing since there will be no corresponding UI elements). This acts as a real-world stress test and helps expose bottlenecks and other problem areas before a feature is officially launched. Dark launches are usually done two weeks before the actual launch.

さらに Gatekeeper は、Facebook における運用前の機能を、“Dark Launche” と呼ばれる仕組みの中で実施していく(そのための UI は存在しないため、ユーザーは気付かない)。それは、現実世界のストレス・テストの役割を担い、また、対象となる機能が公開される前に、ボトルネックなどの問題点を明らかにしていく。Dark Launche には通常、公開前の 2週間が費やされる。

Profiling of the live system

Facebook carefully monitors its systems (something we here at Pingdom of course approve of), and interestingly enough it also monitors the performance of every single PHP function in the live production environment. This profiling of the live PHP environment is done using an open source tool called XHProf.

Facebook はシステム(ここで Pingdom が取り上げている)を慎重にモニターする。 そして、きわめて興味深いことに、実運用環境における全ての PHP 機能にいたるまで、そのパフォーマンスルをモニターする。PHP 運用環境のためのプロファイリングは、XHProf と呼ばれるオープンソース・ツールを用いて実施される。

Gradual feature disabling for added performance

If Facebook runs into performance issues, there are a large number of levers that let them gradually disable less important features to boost performance of Facebook’s core features.

Facebook はパフォーマンスの問題に遭遇すると、そのコア機能の性能を引き上げるために、それほど重要ではない機能を段階的に停止する、たくさんのレバーを持っている。

The things we didn’t mention

We didn’t go much into the hardware side in this article, but of course that is also an important aspect when it comes to scalability. For example, like many other big sites, Facebook uses a CDN to help serve static content. And then of course there is the huge data center Facebook is building in Oregon to help it scale out with even more servers.

この記事では、あまりハードウェアについて取り上げていない。 しかし、もちろん、スケーラビリティの話になると、それも重要な局面となる。 たとえば、他の大規模サイトのように、スタティック・コンテントのサービスを促進するために、Facebook も CDN を活用している。 それに加えて、Facebook は Oregon に巨大データセンターを構築しており、さらに多くのサーバーを用いたスケールアウトを促進していく。

And aside from what we have already mentioned, there is of course a ton of other software involved. However, we hope we were able to highlight some of the more interesting choices Facebook has made.

また、ここで取り上げてきた内容とは別に、もちろん Facebook は膨大なソフトウェアを活用している。 とは言え、Facebook の興味深い選択に、スポットライトを当てることができたと信じている。

Facebook’s love affair with open source

We can’t complete this article without mentioning how much Facebook likes open source. Or perhaps we should say, “loves”.

この記事では、どれほど Facebook がオープンソースを好むのかという点を、充分に説明することができなかった。 それについては、『 Love 』と言うべきかもしれない。

Not only is Facebook using (and contributing to) open source software such as Linux, Memcached, MySQL, Hadoop, and many others, it has also made much of its internally developed software available as open source.

Facebook は、Linux や、Memcached、MySQL、Hadoop などを単に利用するだけではなく、オープンソースとして利用できるソフトウェアを、その内部で開発している。

Examples of open source projects that originated from inside Facebook include HipHop, Cassandra, Thrift and Scribe. Facebook has also open-sourced Tornado, a high-performance web server framework developed by the team behind FriendFeed (which Facebook bought in August 2009).

Facebook がオリジナルを開発したオープンソース・プロジェクトには、たとえば HipHop、Cassandra、Thrift などが含まれる。 さらに Facebook は、オープンソース化された Tornado を有している。 それは、FriendFeed(Facebook が2009年8月に買収)のチームにより開発された、ハイ・パフォーマンス Web サーバーのフレームワークである。

(A list of open source software that Facebook is involved with can be found on Facebook’s Open Source page.)

(Facebook が関連するオープンソース・ソフトウェアのリストは、Facebook’s Open Source page で参照できる)

More scaling challenges to come

Facebook has been growing at an incredible pace. Its user base is increasing almost exponentially and is now close to half a billion active users, and who knows what it will be by the end of the year. The site seems to be growing with about 100 million users every six months or so.

Facebook は、信じ難いペースで成長している。 そのユーザー数は急激に増加していて、現時点では約 5億人のアクティブ・ユーザーがいることから、この年末の状況も予想できるだろう。 このサイトでは、6カ月ごとに、約 1億人のユーザーが増えているように思われる。

Facebook even has a dedicated “growth team” that constantly tries to figure out how to make people use and interact with the site even more.

さらに Facebook は、彼らのサイトの用法と運用について、継続的な理解を促進するための、Growth Team を盛り立てている。

This rapid growth means that Facebook will keep running into various performance bottlenecks as it’s challenged by more and more page views, searches, uploaded images, status messages, and all the other ways that Facebook users interact with the site and each other.

この素早い成長が意味するのは、さらなるページビューや、検索、アップロード・イメージ、ステータス・メッセージ、そしてFacebook とユーザーの相互作用がもたらす挑戦につれて、様々なパフォーマンス・ボトルネックに、Facebook が遭遇し続けるという状況である。

But this is just a fact of life for a service like Facebook. Facebook’s engineers will keep iterating and coming up with new ways to scale (it’s not just about adding more servers). For example, Facebook’s photo storage system has already been completely rewritten several times as the site has grown.

しかし、Facebook のようなサービスにとって、それこそが生き抜いていくための現実である。 Facebook のエンジニアたちは反復を実施して、スケールを維持するための新しい方法を考え続けるだろう(単にサーバーを追加するだけではない)。 たとえば、Facebook の写真ストレージ・システムは、その成長につれて、スクラッチから何度も書き直されている。

So, we’ll see what the engineers at Facebook come up with next. We bet it’s something interesting. After all, they are scaling a mountain that most of us can only dream of; a site with more users than most countries. When you do that, you better get creative.

したがって、Facebook のエンジニアたちが、次に生み出すものに注目することになるだろう。 そこには、面白いことがあると確言する。 結局のところ、Facebook がスケールする山のようなものは、人々が夢でしか見ることのできないものであり、また、大半の国々をつなぐというより、より多くの人々をつなぐというものである。 そして、それを望む人に、さらに創造的な方式を提供する。

Data sources: Various presentations by Facebook engineers, as well as the always informative Facebook engineering blog.

ーーーーー

<関連>
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _1
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _2
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _3

ーーーーー
わずか四半期の間に、サーバー数が倍増した Facebook の事情
Facebook の HDFS クラスターは 21 PB !!!
Facebook のスケール感覚に驚愕! _1
Facebook のスケール感覚に驚愕! _2

Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _2

Posted in Facebook by Agile Cat on July 3, 2010

Exploring the software behind Facebook, the world’s largest site _2
Posted in
Main on June 18th, 2010
by Pingdom

http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/

imageいよいよ本題です。 Facebook のスケールを支えるソフトウェアたちが登場してきます。知っているものと、知らないものが混在していますが、Facebook オリジナルのオープンソースが多いことに驚きました。ーーー A.C.

ーーーーー

 Memcached

Memcached

Memcached is by now one of the most famous pieces of software on the internet. It’s a distributed memory caching system which Facebook (and a ton of other sites) use as a caching layer between the web servers and MySQL servers (since database access is relatively slow). Through the years, Facebook has made a ton of optimizations to Memcached and the surrounding software (like optimizing the network stack).

Facebook runs thousands of Memcached servers with tens of terabytes of cached data at any one point in time. It is likely the world’s largest Memcached installation.

Memcached は、いまではインターネット上の最も有名なソフトウェアの 1つになっている。 分散メモリ・キャッシュ・システムであり、Web サーバーと MySQL サーバーをつなぐキャッシング・レイヤとして(データベース・アクセスが遅いため)、Facebook は使用している(他の多数のサイトも)。 この何年かの間に、 Facebook はMemcached と周囲ソフトウェアに、大量の最適化を施している(ネットワーク・スタックの最適化など)。

Facebook は、いずれかのポイントに一度にキャッシュされる数 10TB のデータを、数 1000 の Memcached サーバーを走らせて処理している。おそらく、それは世界最大の Memcached 設備となる。

HipHop for PHP

HipHop

PHP, being a scripting language, is relatively slow when compared to code that runs natively on a server. HipHop converts PHP into C++ code which can then be compiled for better performance. This has allowed Facebook to get much more out of its web servers since Facebook relies heavily on PHP to serve content.

A small team of engineers (initially just three of them) at Facebook spent 18 months developing HipHop, and it is now live in production.

スクリプト言語である PHP は、サーバー上のネイティブ・コードとの比較において、その実行速度が遅い。 HipHop により PHP は C++ へとコンバートされ、さらにコンパイルされることで、パフォーマンスが向上する。 つまり、Facebook はコンテント・サービスのために PHP に大きく依存しているが、Web サーバーの概念にとらわれず、より多くの成果を得ることになる。

Facebook のエンジニアで構成される小さなチーム(最初は3人)が、18ヶ月の開発期間を HipHop に費やし、いまではプロダクション環境での運用に至っている。

Haystack

Haystack is Facebook’s high-performance photo storage/retrieval system (strictly speaking, Haystack is an object store, so it doesn’t necessarily have to store photos). It has a ton of work to do; there are more than 20 billion uploaded photos on Facebook, and each one is saved in four different resolutions, resulting in more than 80 billion photos.

Haystack は、Facebook の写真を保存/検索するための、ハイ・パフォーマンスなシステムである(厳密には、 Haystack はオブジェクト・ストアであるため、必ずしも写真に限定されない)。 それは、膨大な処理をこなしている。 つまり、Facebook 上には 200億枚以上の写真がアップロードされているが、それぞれが 4つの解像度をもつため、結果として 800億枚以上の写真となる。

And it’s not just about being able to handle billions of photos, performance is critical. As we mentioned previously, Facebook serves around 1.2 million photos per second, a number which doesn’t include images served by Facebook’s CDN. That’s a staggering number.

そして、何 10億枚という写真を、単に処理できることが重要なのではなく、パフォーマンスが重要なのだ。 前述のとおり、Facebook は 約 120万枚/秒の写真を処理しているが、そのには Facebook CDN によりサポートされるイメージは含まれない。それは、ショッキングな数字である。

BigPipe

BigPipe is a dynamic web page serving system that Facebook has developed. Facebook uses it to serve each web page in sections (called “pagelets”) for optimal performance.

For example, the chat window is retrieved separately, the news feed is retrieved separately, and so on. These pagelets can be retrieved in parallel, which is where the performance gain comes in, and it also gives users a site that works even if some part of it would be deactivated or broken.

BigPipe は、Facebook が開発した、Web ページを動的に提供するためのシステムである。 Facebook は 、最適なパフォーマンスを得るためにBigPipe を用いる。 そして、pagelets と呼ばれるセクションで、それぞれの Web ページをサポートする。

たとえば、チャット・ウインドウは別に検索され、また、ニュース・フォードも別に検索される。 これらの pagelets は、並列に検索することが可能であり、パフォーマンスが向上する。 そして、いくつかのパートが正常に機能しない場合や、破壊されている場合であっても、ユーザーには正常なサイトが提供される。

Cassandra

Cassandra

Cassandra is a distributed storage system with no single point of failure. It’s one of the poster children for the NoSQL movement and has been made open source (it’s even become an Apache project). Facebook uses it for its Inbox search.

Other than Facebook, a number of other services use it, for example Digg. We’re even considering some uses for it here at Pingdom.

Cassandra は、シングル・ポイント・フェイルを排除した分配ストレージ・システムである。 Cassandra は、NoSQL ムーブメントを代表する 1つであり、オープンソースとして提供されている(Apache プロジェクトでもある)。 Facebook は、それを Inbox サーチのために利用している。

Facebook 以外にに、たとえば Digg などの、数多くのサービスがも Cassandra は利用されている。 実は、この Pingdom でも利用を検討している。

Scribe

Scribe is a flexible logging system that Facebook uses for a multitude of purposes internally. It’s been built to be able to handle logging at the scale of Facebook, and automatically handles new logging categories as they show up (Facebook has hundreds).

Scribe は柔軟なログ・システムであり、Facebook の内部において、多様な目的のために使用されている。 Scribe は、Facebook スケールでのログ処理ために構築され、また、新しいカテゴリ(Facebook には何100とある)が現われるときに、新しいログ・カテゴリを自動的に処理する。

Hadoop and Hive

Hadoop Logo

Hadoop is an open source map-reduce implementation that makes it possible to perform calculations on massive amounts of data. Facebook uses this for data analysis (and as we all know, Facebook has massive amounts of data). Hive originated from within Facebook, and makes it possible to use SQL queries against Hadoop, making it easier for non-programmers to use.

Both Hadoop and Hive are open source (Apache projects) and are used by a number of big services, for example Yahoo and Twitter.

Hadoop は、オープンソースの MapReduce 実装であり、大量のデータの計算を実現する。 Facebook では、Hadoop をデータ分析(Facebook が大量のデータを有していることは周知の事実)に利用している。もともと、Hive は Facebook で開発されたものであり、Hadoop に対する SQL のクエリーの使用を可能にすることで、ノン・プログラマによる容易な利用を実現する。

Hadoop と Hive は、どちらもオープンソース(Apache プロジェクト)であり、たとえば Yahoo や Twitter などの、数多くの大規模サービスにおいて利用されている。

Thrift

Facebook uses several different languages for its different services. PHP is used for the front-end, Erlang is used for Chat, Java and C++ are also used in several places (and perhaps other languages as well). Thrift is an internally developed cross-language framework that ties all of these different languages together, making it possible for them to talk to each other. This has made it much easier for Facebook to keep up its cross-language development.

Facebook has made Thrift open source and support for even more languages has been added.

Facebook は、それぞれのサービスのために、何種類かの言語を使用している。 PHP はフロント・エンドのために使われ、また、Erlang は Chat に使われ、Java と C++ も各所で使われている(おそらく、それ以外も言語も)。 Thrift は、それら全ての言語を接続する、インターナルなクロス言語フレームワークであり、その結果として、各言語が相互に交信できるようになる。 それにより、Facebook におけるクロス言語での開発が、きわめて容易に維持されることになった。

Facebook は Thrift をオープンソースにしており、また、そこに加えられた言語までもサポートしている。

Varnish

Varnish

Varnish is an HTTP accelerator which can act as a load balancer and also cache content which can then be served lightning-fast.

Facebook uses Varnish to serve photos and profile pictures, handling billions of requests every day. Like almost everything Facebook uses, Varnish is open source.

Varnish は、ロード・バランサとして振舞う HTTP アクセラレータであり、また、瞬時にコンテントを提供するためのキャッシュでもある

Facebook は、通常の写真と、プロファイル用の写真を提供するために Varnish を使用し、数10億のリクエストを、毎日処理している。 Facebook で用いられる、ほとんど全てのソフトウェアと同様に、Varnish もオープンソースである。

ーーーーー

すばらしい好循環が実現されている ・・・ という感じです。一言で、『 圧巻 』 ですなぁ。 ーーー A.C.

ーーーーー

<関連>
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _1
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _2
Facebook 探検隊: どのようなソフトウェアでスケールを達成しているのか _3
ーーーーー
わずか四半期の間に、サーバー数が倍増した Facebook の事情
Facebook の HDFS クラスターは 21 PB !!!
Facebook のスケール感覚に驚愕! _1
Facebook のスケール感覚に驚愕! _2
Facebook で Office ドキュメントを共有する Docs.com を触ってみた
Microsoft TownHall : Windows Azure と Facebook の連携が始まった!
Facebook は RFID タグで、アメリカ版 お財布ケータイを狙うのか?

%d bloggers like this: