[解決済み] Facebookアーキテクチャ【クローズド
質問
Facebookのアーキテクチャ、課題、取り組み方に関する記事・情報を探しています。何を使っているのか、なぜ使っているのか。どのようにスケーリングしているのか、また、何をするためにどのような設計上の決定をしているのか、など。主な目的は、学ぶことです。このような大規模なトラフィックを処理するサイトについて知ることは、建築家などが新しいサイトを設計する際に、あることを念頭に置いておくための多くのヒントを与えてくれます。私が発見したことを共有します。
- Facebookサイエンス&ソーシャルグラフ(ビデオ)
- フェイスブックでの規模
- Facebookチャットのアーキテクチャ
- Facebookブログ
- Facebook Cassandraのアーキテクチャとデザイン
- フェイスブックエンジニアリングノート
- Quora - Facebook アーキテクチャ
- 6億人のユーザーを対象としたFacebook
- FacebookにおけるHadoopとその活用法
- FacebookでのErlang。チャットアーキテクチャ
- Facebookパフォーマンスキャッシングの進化
- 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が一般的に素晴らしいアイデアではない、成功していない、そこからアイデアを得るべきではない、とも言っていません...ただ、もしあなたが彼らのソースコード全体を見ることができたとしても、おそらくそこから利益を得ることはないだろう、と言っています。
関連
-
[解決済み] fb.me URLの取得
-
[解決済み] facebook ピクセル。PageViewとViewContentの比較
-
[解決済み] facebookアプリのIDの所有者を確認するにはどうすればよいですか?
-
[解決済み] Facebookがブラウザに統合されたDeveloper Toolsを無効にする方法を教えてください。
-
[解決済み] FacebookやTwitterの新しいURLのシェバング/ハッシュバン(#!)は何のため?
-
[解決済み] このアプリの開発者は、このアプリをFacebookログイン用に正しく設定していないのでは?
-
[解決済み] Facebook Sharerは、私のURLを共有する際に、画像やその他のメタデータをどのように選択するのですか?
-
[解決済み] Facebook Graph API v2.0+ - /me/friends が空、または私のアプリケーションを使用している友人のみを返す。
-
[解決済み] N-Tierアーキテクチャとは何ですか?
-
[解決済み] Facebookアーキテクチャ【クローズド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告。配列またはイテレータの各子供は、一意の「キー」プロパティを持つ必要があります。ListView`のレンダリングメソッドを確認する。
-
[解決済み] Facebook APIが "無効なOAuthアクセストークンの署名 "を返しました。
-
[解決済み] プラットフォームへのアクセス不可。Facebookプラットフォームの変更に伴い、アクセスが一時的に無効になっています。
-
[解決済み] facebook ピクセル。PageViewとViewContentの比較
-
[解決済み] Graph APIで、「カスタムタブをインストールする権限」はどれですか?
-
[解決済み] メッセンジャーのボットです。www.facebook.com にログインし、表示される指示に従うまで、アプリにアクセスできません。指示はありませんでした。
-
[解決済み] Facebook API通信のIPアドレスとポート番号
-
[解決済み】FB OpenGraph og:imageが画像を引っ張ってこない(httpsの可能性?)
-
[解決済み】facebook: 永続的なページアクセストークン?
-
[解決済み] Facebookのログインメッセージ。"URL Blocked: このリダイレクトは、リダイレクトURIがアプリのクライアントOAuth設定にホワイトリストされていないため、失敗しました。"