Network automation depends on detailed, explicit representations of data about the state of a network and about an operator's intent for its networks. In particular, we must explicitly represent the desired and actual topology of a network. Almost all other network-management data either derives from its topology, constrains how to use a topology, or associates resources (e.g., addresses) with specific places in a topology.
In this talk, we describe our experience in designing and implementing MALT, a Multi-Abstraction-Layer Topology model that supports the full lifecycle of network management: design, deployment, configuration, operation, measurement, and analysis. MALT provides a common schema and toolchain across our network-management software, and its support for abstraction allows us to explicitly tie low-level network elements to high-level design intent. We also describe the software systems that support MALT, and the numerous, sometimes painful, lessons we learned about curating a comprehensive, and evolving, model for our networks.