Tips for Implementing Network Programmability on Cisco Devices

As the size of data networks and data centers grow, so too does the burden on engineers who have to implement changes.  Many organizations have hundreds and even thousands of networking devices. Managing each one, one at time, is wasteful and cost prohibitive compared to what can be achieved with automation.

For those who’ve worked on any Cisco networking device in the past several decades, a fair question to ask is, “Is the command line interface (CLI), which manages one device at a time, the most efficient way possible to manage any large growing network?”

It’s hard for any engineer to give a firm “yes” to this question.

The best option to manage several computing devices must contain the capacity to automate network configuration changes. Cisco is helping to create and following the industry direction on Network Programmability for automation.

Simple Network Management Protocol (SNMP) has been used extensively for network monitoring for decades. It was first envisioned in the late 1980s and SNMP never had a direction of comprehensive network programmability.

Google, for example, has announced it will eliminate SNMP for monitoring for their networking devices this year.

Network Programmability in Cisco can be implemented with these industry standards and free protocols:

  • RESTFul Interface: In a simple sense, Representational State Transfer (REST) is the standard for common web browsers to interact with a website. Cisco has opened up RESTful interfaces on many routers and switches, and also in Application Centric Infrastructure (ACI) for Network Programmability.
  • Python: This free programming language has grown considerably in popularity in the Linux community for years. Cisco has now integrated the interpreted scripting language of python into the NX-OS operating system, ACI and other Cisco platforms.
  • XML and JSON: Extensible Markup Language (XML) and JavaScript Object Notation (JSON) are standard data encoding formats that are both human-readable and machine-readable. For instance, an entire router or switch configuration can be displayed in XML or JSON, edited with a text editor, then used with Python or REST to automate changes to the network.
  • Data Models: A data model is a standard way to define how data relates to other data and how all data is processed and stored. All of the configurations of most networking devices can be represented in a large data model. Data models can then be automated with Network Programmability. Cisco has implemented Management Information Tree (MIT) as the data model within ACI. Another emerging data model that can be applied to Cisco routers and switches is the YANG model. YANG is a data model from the expression “Yet Another Next Generation,” which is an open standard designed to overcome the weaknesses of SNMP.

The days of having to make changes to network devices one at a time are coming to an end. There are now several programmatical interfaces to many Cisco devices available to automate. While it takes an initial time investment to program any network automation, after it’s complete, considerable time and operating costs can be saved.

In this article

Join the Conversation