目次

Facebookのネットワーク設計



ダウンタイムゼロを目指して、Facebookのネットワークを調査したいと思います。
結論から言うと、一般的な規模だと、Facebookが前使っていた「レイヤ4ロードバランサをIPVS(LVS)」を使うのもいいかなと思っています。


SREcon15 Building a Billion User Load Balancer

Building a Billion User Load Balancer | USENIX

djbdnsはqmailの開発者としても知られるDaniel Julius Bernstein(DJB)氏が開発したソフトウェアです。
djbdnsはDNSコンテンツサーバであるtinydnsとDNSリゾルバであるdnscacheの2つから構成されます。


facebookの13億ユーザーを支えるロードバランサーの話

2015-12-16
facebookの13億ユーザーを支えるロードバランサーの話 - stanaka's blog

tinydns + IPVS で Facebook規模はいける
DNS(tinydns)でロードバランシング

ルータ 〜 L4 LB
 BGPによるECMP Hash

L4 LB
 shiv (IPVS + python-wrapper) を利用
 IPIPカプセリングしてDSR(Direct Server Return)

L7 LB
 proxygen https://github.com/facebook/proxygen
 ユーザーからのhttpsを終端

POPを世界中にもっている
 POPにはL4 LBとL7 LBを配置している
 https接続は重いのでできるだけ近くで終端する必要がある
 httpはtcpの3way + httpの1往復
 httpsだとそこにtlsの2往復が加わってさらに厳しくなる
 POP内のL7 LBから(別DC上の)アプリケーションサーバーへのhttpsは事前に張っておく


Facebookはレイヤ4ロードバランサをIPVS(LVS)からXDPベースのものに乗り換えつつある

Facebookはレイヤ4ロードバランサをIPVS(LVS)からXDPベースのものに乗り換えつつある - yunazuno.log


米Facebook、ネットワークロードバランサー「Katran」をオープンソースに

米Facebook、ネットワークロードバランサー「Katran」をオープンソースに | OSDN Magazine

2018年5月28日18:10

米Facebookは5月23日、レイヤー4のロードバランサーソフトウェア「Katran」をオープンソースソフトウェアとして公開したことを発表した。eXpress Data Path(XDP)などの最新技術を利用することで高性能を実現する。
Katranはパケットフォワーディングを行うフォワーディングプレーンソフトウェアで、ネットワークの負荷分散を行う。それまで利用していたロードバランサーに代わるものとして、性能、メンテナンス性、Linuxで動くこと、ほかのサービスと共存することなどを条件に開発した。

https://github.com/facebookincubator/katran