In today's evolving IT environment, software defines the network, and all systems are expected to be programmable....
At the same time, service development is shifting toward Agile methods and integrated processes, giving rise to development operations, or DevOps. This shift comes as infrastructure as code gains momentum. As a result, network operations, or NetOps, and DevOps concepts are inevitably coming together.
Underpinning this combination is network automation, which spans both DevOps and infrastructure as code. While infrastructure as code provides a service under development, the DevOps concept uses automation to deploy and configure virtual switches, load balancers and firewalls necessary to support those services.
To that end, in response to network problems like traffic congestion and poor response times, the DevOps team will need to modify the configuration of the network components embodied in the code base. In place of traditional change management on those components, DevOps staffers will use a combination of bug and request tracking, code management tools and automated testing of modified code to ensure attempted fixes don't break anything.
NetOps means leaving the 'dev' behind -- sort of
IT staff running campus networks and WANs want to reap the same kinds of benefits that DevOps teams now see in terms of service stability and the ability to respond to new demands. NetOps answers by embracing a variety of DevOps concepts and practices and adapting them to the operation of a stable and agile network -- minus the need to develop a new application.
Two of the biggest changes NetOps introduces are the full adoption of home-grown automation and the shift from a traditional change management process to something closer to a continuous deployment model.
While network teams have traditionally created scripts to speed up tedious and repetitive tasks, they have also limited the role scripting plays in their operations. Full automation -- such as setting something up and letting it run from then on, letting scripts call other scripts or letting scripts respond to events without human review or intervention -- is far less common than task automation, where a script may occasionally run to eliminate the need for manual command entry.
Moreover, trust in automation is relatively low. This is, in large part, due to IT staff not knowing who developed the scripts and how. Most scripts are not well-tested, can be easily broken and are incapable of handling errors gracefully. Tools written by other admins can be difficult to read, even if you understand the programming language in use; it's impossible, if you do not.
NetOps addresses this cluster of challenges by adopting coding practices and tools from a DevOps-type environment. Mature organizations use a standard set of coding tools and languages and at least minimal coding standards, allowing people to more easily understand, trust and maintain each other's code.
NetOps organizations also manage network scripts in the same way developers oversee a code base, using both a code-versioning system and code-level change management software that documents what a new version of code is supposed to accomplish. NetOps requires automated testing; whenever a revised switch configuration is pushed out, for example, a suite of automated tests must be run against it to confirm it is performing and is as secure as required.
The DevOps concept with NetOps
Given the similarity of their goals and methods, it is natural for DevOps and NetOps teams to work together and share tools. There is no reason, for example, that Jenkins and Salt -- two tools used for configuration management within the data center -- shouldn't be used outside the data center, as well.
Using the same tools and languages can support cross-training efforts and even enable the circulation of staff among teams, strengthening IT overall. A common programming framework also simplifies troubleshooting and emergency response to network problems. Tracking application performance in the campus network can provide useful feedback on behavior and performance to DevOps crews.
Ultimately, the convergence of everything-as-a-service and everything-as-code is fueling the advent of NetOps. And the fastest and most consistent way for a company to get value from this approach is to harness NetOps to their existing DevOps efforts.