The topic of network programmability is still a misunderstood subject. Even with the success of the Cisco DevNet program. I still see a lot of resistance to this new paradigm when I talk to fellow network engineers. In this article, I’ll discuss why we need to stop fearing and start embracing network programmability.
So why Network Programmability?
There are three key reasons why most organizations both large and small should start to embrace network programmability.
1. Faster Delivery Time: This is the first thing that comes to mind when people hear the word automation. Taking humans out of the process in order to streamline, speed up and optimize delivery.
It’s important to understand that network automation will not replace the network engineer.
All automation does is streamline the configuration process which ultimately gives you the ability to build and teardown infrastructure quickly in order to meet the needs of your organization.
It also brings economies of scale to your infrastructure which frees up resources and time for more meaningful activities.
2. Standardization: Most IT organizations have realized that they need to standardize their network.
They create standards but how do they know the network conforms to the standards they defined?
They typically don’t. Most networks today are one-off snowflakes as a result of configuration drift over time and there’s no easy way to audit them without a lot of time and human effort.
With network programmability, you start developing an automated system that allows you to not only document your network but apply that desired configuration directly to devices in your environment.
Network automation at scale gets you out of the process of managing network devices individually and more around how the network is a part of a larger IT system operates.
3. Predictable Outcomes: Having a predictable outcome on your network sounds almost utopian for most IT organizations. As environments get more complex over time, it becomes humanly impossible to monitor and keep track of changes.
Different versions of software and discrepancies in configuration along with human error are the cause of most network-related issues.
Network programmability helps address these challenges by giving you the ability to deploy and manage your infrastructure in a predictable fashion which over time will help reduce downtime.
Do I need to become a Programmer?
The short answer is no but It does help to be able to understand some basic programming concepts.
Most scripts that network automation engineers use end up being written by someone else. So there is no reason to re-invite the wheel by doing work that someone else has done. That being said, it’s important to be able to read and understand the code you plan on using.
Python has become the de-facto programming language of the network but in theory, most modern languages can be used if they support REST APIs.
Python is relatively easy to read and understand which makes it a popular scripting language to learn for someone that doesn’t come from a traditional software development background.
I’m on Board but what are the Next Steps
There is a lot of training material and content that will help you navigate this new world. A great resource is the Cisco DevNet site. Not only does walk you through some theory-based training but also gives you access to a sandbox for hands-on activities
Once you get a good solid foundation on network programmability. I would recommend starting to look at your network infrastructure for things that could potentially be automated.
One area to look at is enhancing your organization’s network monitoring. It’s read-only and a relatively safe way to show the power of network programmability.
You may get some resistance from peers or even management. So it may take time. You may need to prove that there are some hard benefits to network programmability by demonstrating the capabilities.
With that said, bringing down the network won’t help your case. So be sure to test in a lab and treat this like any other change to your network.
Conclusion
Hopefully, this helped give you the 30,000-foot view of network programmability. It is important to understand the benefits so you get the why.
Now that you understand some of the benefits, hopefully, you can think of interesting ways to leverage this new paradigm. The possibilities are almost endless when you think about it.
Network programmability is not a destination but a journey but when you get into the habit of asking yourself “Can this be automated?”. You will start having a different viewpoint and mindset when it comes to networking and how to be more effective at your job.