If network engineers once resisted network programmability because they feared losing their jobs, they are starting to see networking automation as key to business ROI.
Network engineers often have substantial responsibility for the network and its related components.
Networks are the underlying infrastructure that connect devices and enable data to flow between sources. So the network is the vehicle that allows businesses to exploit technology, to innovate and to become more competitive. There are many examples of this, from wireless devices in healthcare used to view X-rays to Internet of Things (IoT) technologies in manufacturing plants that run the production line.
The network operations team is responsible for ensuring that the network is up and operating at all times with the best performance possible—whether users are streaming video, using IoT-connected devices to enhance the retail experience, videoconferencing or bringing new mobile devices onto the network.
But network engineers have confronted a clear reality: The traditional ways of managing and monitoring networks device by device are being made obsolete by the speed and scale required by the business.
As networks expand, along with the number of devices and users that the network needs to support, the complexity of the network increases as well. Configuring a large number of devices manually becomes arduous as the network expands. Manual changes are more apt to result in errors, with misconfigured devices, duplicate IP addresses being statically configured or the wrong interface being accidentally shut down.
From a business perspective, network downtime from errors costs time and money. As a result, network engineers spend an inordinate amount of time identifying, troubleshooting and remediating network issues. Their work in keeping the lights on dominates their jobs.
Imagine if there were an easier way to reduce the amount of network downtime, limit the risk of human error and increase the speed by which changes to the network can be completed. This could free up time so the network operations team can focus on strategic matters such as architecture planning that increases ROI for the business.
This is where network programmability and network automation come into play. Open application programming interfaces (APIs) enable network engineers to make mass changes to an environment with a programming language such as Python. As a result, IT can make changes at scale without having to access hundreds, if not thousands, of individual devices to make a change. This automation reduces human error and enables changes to be made more quickly. If an engineer wants to add a specific VLAN (or virtual local area network) to hundreds of switches at the same time, for example, he or she can do so with a programmatic approach.
Python enables network programmers to create a script that will log into many devices and use open APIs on those devices to make changes en masse, eliminating the need for network engineers to make the adjustments manually.
Even though open APIs are critical to network programmability and network automation, security still plays a critical role. For instance, network engineers must authenticate and have the proper level of access rights to configure any device via an API. Programmability can be just another method of securing user access for users and devices.
Companies can realize a great return on investment when they employ network programmability and network automation. Enterprises benefit from the speed and scale, but also from an analytics perspective.
With programmability, companies gain business insight from data derived from the network. Companies can use wireless infrastructure, for example, to determine foot traffic patterns within a supermarket. Identifying a store's busiest areas allows a retailer to better target customers via the strategic placement of products and signs. This insight also could aid in planning where to expand wireless coverage in specific areas of a building.
Another trend is for network engineers to expand their skill sets to succeed in this new era of programmability. As with the growing prevalence of the DevOps methodology, in which IT operations teams and application developers work more closely, networking engineers can benefit from learning network programming skills.
Being able to scale and automatically roll back changes is another reason to dip a toe into the realm of network programmability. I’m frequently asked, “Do I need to be a developer to learn network programmability?” The answer is no. Start small and build code to test in a sandbox.
With its free labs and training videos, Cisco DevNet is a good place to get started. These labs teach networking programmability to engineers from the beginner to expert levels. DevNet labs consist of various platforms and demonstrate the value of a programmatic approach, and it has always-on sandboxes available to test code.
Engineers shouldn’t fear network programmability and network automation should not be feared. They are simply methods of configuring devices in ways that promote efficiency and scalability in the network, conditions that are beneficial for business ROI.
You do not have to be an application developer to learn network programmability and network automation. Businesses can realize ROI rapidly through speed of deployment, better network uptime and better ability to manage network complexity without hurting the business. Ultimately, the ROI comes from reducing thehuman error rate and leaves the business in a great position to focus on its strategic direction.
Jason Gooley is a technical solutions architect at Cisco.