Network Automation and Programmability
This chapter covers the data formats, programmatic interfaces, and controller-based models that make networks programmable. Automation reduces manual, error-prone CLI work and enables consistent configuration at scale.
Data formats
Automation exchanges structured data in formats such as JSON, XML, and YAML. YAML is human-readable and uses indentation to denote structure, which is why it is common for Ansible playbooks. Understanding these formats is the starting point for reading and writing automation payloads and templates.
Programmatic interfaces
NETCONF uses YANG data models over SSH and exchanges XML to configure and read device state; RESTCONF offers a similar model over HTTP. REST APIs use HTTP methods with clear semantics: GET reads a resource, POST creates, PUT replaces or updates, and DELETE removes. These interfaces replace screen-scraping the CLI with structured, reliable interactions.
Controller-based SDN
An SDN controller such as Cisco DNA Center centralizes intent, policy, and configuration and pushes them programmatically to devices through APIs, giving consistent, automated management across many devices rather than box-by-box CLI. The controller model still relies on real hardware and addressing; its value is centralized, scalable, and repeatable operations.