Chapter 1 What is Network Automation?
For diagrams, tables, or exact code formatting, .
Chapter 1 What is Network Automation?
“I am putting myself to the fullest possible use, which is all I think that any conscious entity can ever hope to do”
- HAL 9000 Network automation is the transformation of traditionally human performed functions, and human driven operations, to an automated engine that is data and machine driven. A fully automated network configuration management system is delivered through a development framework adhering to a strict System Development Lifecycle (SDLC). Network automation does not replace solid network designs or the need to understand basic network concepts such as what a VLAN is or what a routing protocol does. Network automation can be a tactical one-time change across the enterprise, for example, standardizing the native Network Time Protocol (NTP) server or making sure every network device has a banner displayed at login time. Network automation can also be complete configuration coverage where the entire running-configuration is derived from, and automatically generated by, the automation engine. This moves the network to an intent-driven model with a real source of truth – the code repository. The new methodology for making changes now includes a centralized repository, branching strategy, committing changes, and performing pull requests to merge approved code into a protected master branch. The full potential of network automation is achieved when developers update an intent-based, source of truth repository. Changes are then automatically documented, tested, and released to the network through a continuous integration / continuous delivery (CI/CD) pipeline.
Traditional Legacy Network Management For better and for worse, one of the great things about networks is that, for the most part, not a lot has changed over the past 30 years. The OSI model was published in 1984 and yes, there has been a lot of function virtualization, bigger and faster boxes, and improvements in bandwidth, but once an administrator has learned to operate a device, along with the fundamentals of networking and the OSI model, configuring and operating the network becomes predictable and a somewhat tedious task. While the size and scale of modern networks has exploded, few tools have emerged to operate and configure network devices at scale. Connecting to the CLI and applying configurations manually device-by-device, line-by-line, regardless of the scale, has long been the only methodology available to network administrators. Modern network management systems do exist as appliances or specialized software; however, many do not offer much more beyond a GUI representing the line-by-line commands. Even more painful is ensuring that network documentation is up to date if it exists at all. In some cases, a real source of truth about the network may not exist. The network running-configurations device-to-device may itself be the source of truth.
This method of running a network guarantees that human errors will be made. Any number of problems can occur from fat fingers, bad copy-paste, order of operations problems, sometimes even being on the wrong device! Mistakes will happen as long we rely on manual changes. Network automation allows the team to focus on higher level tasks while relying on the automation engine to perform the functions that are prone to human error. Administrators will still play a vital role making valuable contributions to the operation of the network. With the tools introduced in this book operators can augment their abilities with the powerful automation engine and do what was previously impossible.
Consider today’s typical network change workflow:
