Facebookのグローバルスパニングネットワークは、広域バックボーンネットワークとエッジPoints-of-Presenceから構成される。それは、急速に成長するエンドユーザの要求と内部のトラフィックをサポートする。増加したプロビジョニングとメンテナンスの要求を満たすために、ネットワークエンジニアリングチームは、Zero Touch Provisioning (ZTP) メソッドを活用するワークフローフレームワークであるVending Machineを構築した。そこでは、ネットワークデバイス上のあらゆる種類の構成を実行するためにコードを実行する。
Zero Touch Provisioning (ZTP)は、スイッチなどのネットワークデバイスを人間の介入なしに出荷時のデフォルト状態を基に設定できるメカニズムである。多くのネットワークベンダーがサポートしているのは、起動時に通常はDHCP経由でデバイスが要求を送信して、構成をダウンロードして適用できる中央サーバーの場所を取得することである。このプロセスには、ChefやPuppetのような自動化ツールが含まれている。従来、人間のオペレータがCLIを使用して構成していたネットワークデバイスを自動的にセットアップすることができる。スイッチのベンダーがDHCPを使用してZTPをサポートし始めたので、FacebookのチームはIPルータと光学機器ベンダーと協力して同様の機能をサポートした。FacebookチームがDHCPベースで自動プロビジョニングを行ってきた既存の自動化の取り組みを再利用することができた。
Facebookは過去にネットワーク自動化ツールを構築してきたが、ネットワークのプロビジョニングと設定のほとんどは、Method of Procedures (MOPs)によって行われていた。MOPsは本質的に、操作指示書のような文書であり、エンジニアはそれに従わなければならなかった。デプロイの需要が高まるにつれて、これらのMOPsを採用するエンジニアが増えたため、それらはより複雑でエラーが発生しやすいものとなっていた。Facebookのオリジナルのプロビジョニングシステムは、コンソールベースのシステムがルーツであった。時が経つにつれて、新しい役割、パス、プラットフォームが追加され、MOPベースのシステムが使いにくくなった。Vending Machine(VM)というフレームワークは、これらのニーズから生まれた。Vending Machineは、「デバイスの役割、場所、プラットフォーム」を入力とし、「プロダクショントラフィックを配信する最新状態にプロビジョニングされたネットワークデバイス」を出力とする。
会談でVMを構築するための動機づけについて説明している。
DHCPDISCOVERメッセージに応答して、デバイスにはネットワークデバイス上で実行する構成ファイルまたは構成スクリプトが与えられます。スクリプトの場合、スクリプトがどのように実行され、何ができるかは各ベンダー(これまで)、ネットワークの役割によって異なります。設定後、通常はデバイスが再起動されます。しかし、実生活では、デバイスをプロダクションとしてリリースする前に他に行うべきことがあります。また、デバイスを物理的にインストールする前には、構成を生成できないという面白い問題もあります。もし、構成があらかじめ生成されていない場合には、構成ファイルが付いたDHCP要求にどのように応答しますか。この問題により、ZTPを包むワークフロー自動化システムが開発されました。
会談によると、Facebookは、VMを構築している間、ISCのオープンソースDHCPサーバに基づいたDHCPスタックを変更しなければならなかった。Pythonコードの特別な箇所が標準のZTPメソッドによってネットワークデバイスにダウンロードされ、これがVMワークフローの出発点になる。Pythonエージェントは、VMサーバからネットワークデバイスに命令、設定、ファームウェア、パッチをダウンロードしてインストールし、出力ログと終了ステータスをVMに返す。
VMはワークフローモデルに従い、そこではエンジニアリングチームが一連の標準的な手順で任意の言語のコードを実行できる。いずれのステップでも失敗すると、将来の実行のためにステップが再びキューに挿入される。各ステップはスタンドアロンバイナリで構成できる。ステップをどのプログラミング言語でも記述できることは注目に値する。徐々に、チームはMOPsから離れ、それに代わって、ますます多くのVMステップが開発された。VMは、どのステップが独立しているかを判断し、それらを並列に実行することによって、プロビジョニングプロセスをさらに高速化した。
VMの将来のロードマップには、VMジョブのグループのオーケストレーション、Facebookのグローバルネットワークにおけるプレーンの完全自動化された再構築が含まれる。VMは、DevOpsの原則がネットワークに適用された、最近の流れの一例である。
Rate this Article
- Editor Review
- Chief Editor Action