While it’s true that network engineers and operators aren’t necessarily going to become app developers, it’s also true that most network professionals have been developing and using scripting for longer than DevOps or SDN has been a “thing” to be adopted.
Just about every network professional has at their fingertips (literally and figuratively) a toolbox of scripts they use to manage the various network devices and systems for which they are responsible. These are rarely documented anywhere and, truth be told, are often written using the networking pro's language of choice. Which may not be the same as the networker in the next cube, or the next cube, or that other cube, over there.
At the same time, enterprise organizations tend to force standardization of languages on developers. They also use coding standards and perform code reviews that are designed to not only enforce those standards, but to catch errors before they’re pushed into production. Network engineers, it’s likely fair to say, are not subjected to code reviews nor are they required to follow coding standards.
They should be.
Now, before you gesture angrily at the screen or utter a profanity a sailor would be proud of, let me say that standards and reviews are important. In fact, the 2014 State of Code Reviews Survey (yes, there is such a thing) noted that the top benefits of code reviews are improved quality (84%), ability to mentor less-tenured developers (62%), and enhanced maintainability of code (61%).
Read that list again, but this time replace “code” with “scripts” and “developers” with “network engineers.” Go ahead, I’ll wait.
It’s a nearly foregone conclusion that if the business (and by extension, the data center and the network) is going to scale in this modern, application-driven world, that automation and orchestration is a requirement. Not a nice to have, but a basic requirement. Certainly today both SDN and DevOps can operationalize deployment of network services and lead to lower operating costs, but that’s necessary in order to avoid skyrocketing costs in the future. The foundation of tomorrow has to be laid today, and that foundation is an agile, automated network service deployment strategy.
To achieve that without introducing chaos -- and thus a ton of architectural and technical debt that can constrain business growth and innovation -- there’s going to need to be more standardization of the scripting and systems used to automate and orchestrate the entire network stack. That means approaching these tools and toolsets with an eye toward consistency, which ultimately means there needs to be standards. And the way standards are enforced in code (whether formal or not) is through code reviews.
IT leaders, particularly those in areas that will be more affected by automation and orchestration -- operations and the network, initially -- should start an initiative now to catalog and understand the current skill sets with respect to scripting and systems used by engineers, architects, and operators in those IT groups. Once the current landscape is understood, a strategy for standardization can be formulated, including migrating those scripts and systems that may be implemented in non-standard languages.
And after that? It’s time for formal code reviews of existing scripts and a process for reviewing future ones.
The reality is that development methodologies and toolsets and frameworks like APIs and languages are rapidly becoming the mainstay for network operationalization. While it’s certainly pleasing to reap the benefits of efficiency and agility from taking advantage of the tools of their trade, it’s also important that network engineers adopt more of the culture and processes used to govern the use of those tools to ensure success and enable growth.