反ソーシャル メディアの大手 Facebook は、DHCPLB の最新バージョンのソース コードを公開し、FB のエンジニアがハードウェアのプロビジョニングと負荷分散のために最初に開発したツールにサーバー機能を追加しました。
更新されたオープンソースの DHCPLB は GitHub からダウンロードできます。
Facebook では、このツールはすでに、非営利団体のインターネット システム コンソーシアム (ISC) が管理するオープンソースの DHCP サーバー プロジェクトである Kea に基づくプロビジョニング スタックの古い実装に取って代わっています。
Facebookのプロダクションエンジニア、パブロ・マッツィーニ氏は本日のブログ投稿で、「このバージョンでは、以前のソリューションよりもスループットが向上し、反復処理も高速化しています。実際、同じ量のトラフィックを10分の1のサーバーで処理できるようになりました」と述べています。
Facebook は 2013 年から、動的ホスト構成プロトコル (DHCP) を使用してサーバーのプロビジョニングを行っています。ほとんどのReg読者がご存知のとおり、このプロトコルは通常、ネットワーク内のマシンに IP アドレスを割り当てるために使用されます。
Facebookは2016年、DHCP向けロードバランサーのオープンソース実装であるDHCPLBをリリースしました。この概念実証は、インターン生を含む3名のチームによるハッカソンで開発されました。Googleで開発されたプログラミング言語Goで記述され、A/Bテストをサポートし、2つのロードバランシングアルゴリズムから選択できるようになっています。
その後、DHCPLB と Kea は 1 つのシステムに統合され、Facebook では過去 3 年間にわたって使用されてきました。
古いFacebookシステム
DHCPLBの最新アップデートでは、Keaを経由せずにIPアドレスを直接割り当てる機能が追加されました。マッツィーニ氏によると、以前の設定の主な問題はKeaがシングルスレッドサーバーである点でした。Keaは一度に1つのトランザクションしか処理できず、Facebookの規模ではこれが「頻繁なボトルネック」を引き起こしていました。同社のインフラのフットプリントは大きくなりすぎたため、Keaサーバーを絶えず追加する必要に迫られていました。
DHCPLB はマルチスレッドの Go コードで記述されているため、複数のリクエストを同時に処理できます。
新しいFacebookシステム
「オープンソースのDHCPLBプロジェクトは、私たちが独自の実装に使用しているフレームワークです。DHCP応答を作成し、バックエンドシステムを呼び出すための独自のハンドラーを作成するためのインターフェースが提供されています」とMazzini氏は説明した。
Facebookはオープンソースコミュニティで驚くほど活発なメンバーである。この米国のテクノロジー大手は、2018年に153の新たなオープンソースプロジェクトをリリースし、創業以来の合計は474であると述べている。
最も注目すべき貢献としては、同社のトップオブラックスイッチを支える Facebook Open Switching System (FBOSS)、Open/R ネットワーク プラットフォーム、PyTorch 機械学習ライブラリなどが挙げられます。
このソーシャルネットワークは、オープンソースの哲学をハードウェアに適用する上で最も興味深い実験の1つである、2011年にFacebookが開始したOpen Compute Project(OCP)にも責任を負っています。IHS Markitの調査によると、2018年には少なくとも25億6000万ドル相当のOCPブランドのキットが販売されましたが、この数字にはFacebook、Intel、Microsoft、RackspaceなどのOCP Foundationの理事会メンバーが稼いだお金は含まれていません。®