Skip to content

Crafting Network Configurations at Meta#

NANOG 97 digest Program Adjacent pick 1–3 June 2026

Santiago Alfonso Munoz Rodriguez – Meta

Play the recording: Crafting Network Configurations at Meta

  • Why: How a hyperscaler generates config for thousands of multi-vendor backbone devices daily is a useful reference point for anyone designing (or buying) network automation — and the compiler framing is genuinely clarifying.
  • What: Meta's stack — FBNet object store, Skynet Thrift API, Jinja2 config generation — extended with Skypath, a minimal query DSL embedded directly in templates ({$ Router[name={dev}]/asn $}), which turns templates into self-contained specifications that engineers can reason about close to plain CLI. The multi-vendor layer is a "Confpiler": vendor-agnostic IR (OpenConfig-like), frontend authoring/analysis, backend IR→vendor-YANG schema translation separated from serialization — so delivery protocol (CLI for humans, NETCONF/gNMI for machines) can switch on the fly, and the multi-vendor network is operated as if single-vendor.
  • How: Lazy-evaluating interpreter preprocesses templates; compile-time static blueprint with runtime-rendered dynamic values (a Java bytecode analogy); versioned packages pin code commits so rollback knows which implementation to return to.
  • Where applicable: Meta-scale backbone with daily change volume. The stated lessons temper transfer: "our ability to be declarative can only be as good as our database models," there's a limited budget for tooling change, and "abstraction only makes sense when behavior is portable." Concepts transfer; the surrounding systems are the hard part.