1. ホーム
  2. facebook

[解決済み] Facebookアーキテクチャ【クローズド

2022-04-21 13:28:15

質問

Facebookのアーキテクチャ、課題、取り組み方に関する記事・情報を探しています。何を使っているのか、なぜ使っているのか。どのようにスケーリングしているのか、また、何をするためにどのような設計上の決定をしているのか、など。主な目的は、学ぶことです。このような大規模なトラフィックを処理するサイトについて知ることは、建築家などが新しいサイトを設計する際に、あることを念頭に置いておくための多くのヒントを与えてくれます。私が発見したことを共有します。

  1. Facebookサイエンス&ソーシャルグラフ(ビデオ)
  2. フェイスブックでの規模
  3. Facebookチャットのアーキテクチャ
  4. Facebookブログ
  5. Facebook Cassandraのアーキテクチャとデザイン
  6. フェイスブックエンジニアリングノート
  7. Quora - Facebook アーキテクチャ
  8. 6億人のユーザーを対象としたFacebook
  9. FacebookにおけるHadoopとその活用法
  10. FacebookでのErlang。チャットアーキテクチャ
  11. Facebookパフォーマンスキャッシングの進化
  12. Facebookコネクト/ログインアーキテクチャ

あと2つリンクがあるのですが、このサイトの制限で掲載できません。また、誰かがより良いもの(Facebookにのみ関連している必要はありません)を持っている場合は、共有してください。

P.S. - この研究を共有する良い場所が見つからなかったので、このような取り組みをしています。誰かのお役に立てれば幸いです。

解決方法は?

Facebookは多くの変化を遂げ、元々効率的であるようには設計されていません。仕事をするために設計されたのです。私はコードがどのようなものか全く知りませんし、おそらくそれに関する情報はあまり見つからないでしょう(明らかなセキュリティと著作権上の理由から)。しかし、APIを見てみてください。どれくらいの頻度で変更されているか、どれくらいの割合で正しく機能していないか、もう機能していないか、まったく機能していないか、見てみてください。

最大のエースはHiphopだと思うんです。 http://developers.facebook.com/blog/post/358 HipHopは自分で使うことができます。 https://github.com/facebook/hiphop-php/wiki

しかし、私に言わせれば、それは非常に野心的で、おそらく時間を浪費する作業だと思います。Hiphopは多くのことをサポートするだけで、単純にすべてをC++に変換することはできないのです。では、このことから何がわかるでしょうか?それは、FacebookがPHP言語を十分に活用していないということです。最新の5.3を使っているわけではなく、PHP 4互換のものがまだたくさんあることに賭けてもいいでしょう。HipHopは良いアイデアであり、成長し拡大する必要がありますが、現状では新しいPHPアプリを構築している多くの人々にとって本当に役に立つものではありません。

また、Resin/Quercusのようなものを使ってPHPからJAVAに変換する方法もあります。これもすべてをサポートしているわけではありませんが...。

もうひとつ注意すべきことは、もし非標準の PHP モジュールを使っている場合、そのコードを C++ や Java に変換することはできないということです。しかし...PHPモジュールについて見てみましょう。これらはC++でコンパイルされています。ですから、もしあなたが(XMLをパースするような)PHPモジュールを作ることができれば、基本的に(いくつかの相互作用を除けば)同じ速度で作業することができます。もちろん、再コンパイルが必要で、コーディングがより困難になるため、すべての可能なニーズとアプリ全体のためにPHPモジュールを作ることはできない。

しかし...速度の懸念を解消してくれる便利なPHPモジュールがあります。 しかし、結局のところ、私たちにはクラウドという素晴らしいものがあり、それによってアプリケーション(PHPを含む)を拡張することができるので、もはやそれほど重要ではありません。ハードウェアはどんどん安くなっています。そういえば、Amazonが(また)値段を下げましたね。

Facebookや彼らがやったことを見ても、彼らがやったときはまったく違う世界だったから、今そのインフラを維持して維持しようとすると、HipHopみたいなことになる。

さて、HipHopはどのように役立つのでしょうか?それはないでしょう。それは無理です。あなたは新しいスタートを切るのですから、PHP 5.3を使うことができます。PHP 5.3のフレームワークと、PHP 5.3がもたらす新しい利点、SPLライブラリ、そしてデータベースについても考えてみることを強くお勧めします。データベースからコンテンツを提供することが多いでしょうから、MongoDBやその他のスキーマレスでドキュメント指向のデータベースをチェックしてみてください。これらのデータベースは、最も一般的なタイプのWebサイト/アプリに対して、より高速で優れています。

FoursquareやSmugmugなど、NEWテクノロジーを活用している企業や、その使い方を見てください。Facebookのように成功している企業でも、正直なところ、効率的なウェブサイトやアプリケーションを構築する方法については、彼らを見てはいません。また、Facebookが一般的に素晴らしいアイデアではない、成功していない、そこからアイデアを得るべきではない、とも言っていません...ただ、もしあなたが彼らのソースコード全体を見ることができたとしても、おそらくそこから利益を得ることはないだろう、と言っています。