Our needs changed few years ago 3 From fire and forget to changes upon user request PAST TODAY TARGET Bootstrap ZTP for full configuration ZTP for interfaces and system (syslog, metadata...) ZTP for minimal configuration Day to day Update from time to time Same way for: • Pushing the full configuration • Maintaining the desired state (every 30min)
“ AFK pipeline 4 Open source, except the controller. Disclaimer: there are multiple valid automation options, the best choice depends on your needs SDN Controller API NetBox (CMDB) Data Aggregation API Salt Devices AFK
“ SDN Controller API 5 The entrypoint and abstraction layer. • Push: triggers changes e.g. auto-remediation, user requests • Pull: exposes real-time info e.g. health checks, network status, ramp-up readiness SDN Controller API NetBox (CMDB) Data Aggregation API Salt Devices AFK
“ NetBox - CMDB 6 Our source of truth: • IPAM + CMDB in one place • Network OS-agnostic data • Relational: no data duplication SDN Controller API NetBox (CMDB) Data Aggregation API Salt Devices AFK
“ Data Aggregation API 7 The validated view of the device: • Collects data from NetBox • Validates and builds full device config • Leverages YANG models (OpenConfig / IETF) • Network OS-agnostic SDN Controller API NetBox (CMDB) Data Aggregation API Salt Devices AFK
“ Salt 8 The only Network OS coupled layer • Consumes data from the Data Aggregation API • Renders it to device-specific config • Deploys to the device SDN Controller API NetBox (CMDB) Data Aggregation API Salt Devices AFK
Some caveats NetBox: Too slow at our scale IPAM touched by multiple teams = side effects Salt: Feedback loop: not fast/reliable enough to us Support declining
Vanilla OpenConfig Standard OpenConfig alone is not enough: Not all features are in the model (on purpose) We have added another model (IETF for SNMP, …) We have forked OpenConfig to add missing entries (delay open timer, aggregates, network, …)
The main pain point was supporting multiple Network OS Multi-OS tax: • Initially SONiC, and two proprietary NOS • Opposite implementations = nightmare to reconcile
“ Road to AFKv2 (maybe?) 13 Less components: • Move away from NetBox: Homemade for more control Hosting the data Generating and validating the device view (YANG) • Move away from Salt: Dedicated binary on the device SDN Controller API Network Source Of Truth Devices