世界トップの PHP サイト Facebook のバックエンド テクノロジーを探る
Hadoop と Hive
Hadoop は、ビッグ データに対する操作を実行できるオープン ソースの Map-Reduce 実装です。 Facebook はこれをデータ分析に使用しています (Facebook が大量のデータを持っていることは誰もが知っています)。 Hive は Facebook 発祥で、Hadoop 上で SQL クエリを使用できるようになり、プログラマー以外でも使いやすくなりました。
Hadoop と Hive はオープンソース (Apache プロジェクト) であり、Yahoo や Twitter など多くのフォロワーがいます。
Thrift
Facebook では、いくつかの異なる言語と異なるサービスが使用されています。 PHP は最終的にフロントエンドに使用され、Erlang はチャットに使用され、JAVA と C++ もさまざまな場所で使用され、おそらく他の言語も使用されます。 Thrift は社内で開発された言語間フレームワークであり、言語を接続して連携して相互に対話できるようにします。 これにより、Facebook は言語を超えた開発を継続しやすくなります。
Facebook は Thrift をオープンソース化しました。 Thrift にさらに多くの言語サポートが追加されました。
Varnish
Varnish は、ロード バランサーとして機能し、超高速で提供できるコンテンツをキャッシュする HTTP アクセラレータです。
Facebook は、arnish を使用して写真やプロフィール写真を処理し、毎日何十億ものリクエストを処理しています。 他のものと同様、Varnish はオープンソースです。
Facebook をスムーズに実行し続けるその他の要素
前述したソフトウェアは Facebook のシステムを構成し、Facebook を大規模に実行するのに役立ちます。 ただし、このような大規模なシステムを処理するのは複雑な作業であるため、Facebook をスムーズに実行し続けるために他にいくつかのことを列挙します。
プログレッシブ リリースとダーク ローンチ
Facebook には、異なるユーザーに対して 2 つの異なるシステムを実行できるゲートキーパー システムと呼ばれるものがあります。 これにより、Facebook は新機能を段階的にリリースしたり、A/B テストを行ったり、Facebook 従業員のみに特定の機能をリリースしたりすることができます。
Gatekeeper は、Facebook が「ダーク スタート」を実装できるようにすることもできます。これは、ユーザーが使用する前に特定の機能をアクティブ化します (ユーザーが認識しないため、ダーク スタートと呼ばれます)。 これは、正式なリリース前にいくつかの機能不全やその他の問題を明らかにするのに役立つ実際のストレス テストとして機能します。 ダークローンチは通常、正式ローンチの 2 週間前です。
プロファイリングのライブ ストリーミング システム
興味深いのは、Facebook が運用環境のすべての PHP 関数のパフォーマンスを監視する責任も負っていることです。 各 PHP 環境の構成と動作を検出します。オープンソース ツール XHProf を使用します。
機能を徐々に無効にしてパフォーマンスを向上させます
Facebook の実行中にパフォーマンスの問題が発生した場合、1 つの方法は、重要度の低い機能を徐々に無効にして、Facebook の多数のコア機能のパフォーマンスを向上させることです。
言及しなかったこと
ハードウェア関連については言及しませんでしたが、これもスケーラビリティを向上させる重要な部分です。たとえば、他の大規模サイトと同様に、Facebook は CDN を利用して静的コンテンツを処理します。 Facebook には、より多くのサービスの拡張に役立つ大規模なデータセンターもあります。
Facebook のオープンソース プロット
Facebook は、Linux、Memcached、MySQL、Hadoop などのオープン ソース ソフトウェアを使用 (および支援) しているだけでなく、その内部で開発されたソフトウェア。
Facebook は、FriendFeed チームが開発した高性能 Web サーバー フレームワークである Tornado もオープンソース化しました。オープンソース ソフトウェアのリストは、Facebook のオープンソース ページでご覧いただけます。
元のアドレス http://caifu.zol.com.cn/187/1878540.html