Network Programmability – Bringing the Digital Revolution to Network Programming

The next time you fly, look at the instrument panel the pilots are using to fly the plane.

Gone are the quivering dials and cloudy gauges. Flight decks are now dominated by sleek, digital displays and advanced on-board systems that allow pilots to focus on flying the plane rather than managing the instrumentation.

The digital revolution has changed nearly every aspect of how we work, play, and live. From listening to music, to corresponding with colleagues to flying airplanes – the last twenty years have dramatically changed daily life. However, if you ask a network engineer to configure a Cisco Catalyst switch, chances are the engineer will type commands into a text window, the same way they would have in 1999. Back then, Cisco set the industry standard for command line interfaces (CLI) – and many competitors imitated our solution.

Today, Cisco is again leading the industry in adopting open and programmable interfaces for our switches and routers. Traditional CLI may have built the Internet as we know it, but it certainly isn’t a perfect – or modern – solution. CLI’s is basic computer programming and its inherent flaws include:

Inefficiency – Engineers must manually type long and cryptic commands to program switches and routers to perform basic functions. Simple configuration tasks across multiple devices require hours-long maintenance windows that could be spent on higher value network tasks.

Human-focus – CLI is designed for humans to interact with machines. It isn’t the optimal solution for machine-to-machine communication and programmatic control.

Error-prone – Manually typing commands into network devices is an ongoing source of errors. Mere typos can bring networks crashing down, stopping work progress and often requiring hours of troubleshooting to fix.

Cisco Catalyst switches now support technologies that simplify automation and provisioning and make the network engineer more efficient. Some of the features Catalyst now supports include:

Day 0 provisioning. With Cisco Network Plug-n-Play (PnP), switches can be brought up out of the box with little hands-on configuration. Simply set up the PnP server (APIC-EM or Prime Infrastructure) and the switches automatically pull down the correct software version and configuration. For consistency across Cisco platforms we now support ZTP and industry-standard PXE boot.

YANG models. Cisco has enabled YANG data models for a large number of our most popular features. YANG models allow switches to be configured and managed programmatically, using industry standards like NETCONF. In addition to our own models, Cisco is committed to supporting models defined by open standards as well.

Python support. IOS-XE 16.5 will feature on-box Python support for many Catalyst models. Scripts are able to take advantage of a direct connection to the device they are managing and can also integrate Python with Cisco Embedded Event Manager (EEM).

Programmable interfaces will make network operations teams more efficient, bringing them out of 1999 and into modern, programmatic control of the network. What do you think? I am interested in your insights. Over the next few blog posts, I will discuss each of the programmability features in detail. I am interested in your feedback.