DevOps, NetDevops, DevNetOps, While DevOps may hold different meanings to different people but at the very heart, DevOps is an ideology that aims at bringing about change in how software and applications were developed traditionally. Before we understand what is DevOps for Network Engineers.
As the software industry was evolving DevOps ideology came into existence a few years ago. From a software industry’s point of view, DevOps was the coming together of develops and the operations pieces in very simple terms. In the software industry, there are different workgroups/teams/sections or silos where on one hand were the developers who were responsible for building the software, and the QA or quality analysts were completely segregated units whose responsibility was to thoroughly test the applications/software before it is was deemed production-ready. Another group of people is the Operations team whose main job was to take the package and figure out how to run it on hardware in a data center etc and make sure it keeps running 24/7 reliably.
Traditionally, silos are working mutually exclusive of each other with little understanding of how and what other teams are doing to achieve the end goal. This was the conventional way of working but over the last years, there has been a focus on pushing out code more frequently and faster. This is where the term DevOps came into existence that aimed at bringing all these silos together and bridge all the gaps. So a developer was no longer just responsible for writing software code but was also involved in the post-development stages as a result the overall time cycle for updates reduced by a lot because now we were not making major updates a couple of times a year but rather the applications these days push updates almost once a week or even more frequent. So rather than stacking all bugs for a couple of major releases, software was pushed more frequently with multiple minor fixes to increase the product’s overall reliability and reduce the development lifecycle.
Now if you look closely the logo of DevOps is really an infinite loop of development stages and Operational Stages to collectively achieve the end goals faster and more accurately. Let’s try to draw some comparisons to the field that we are more aware of.
Analogy to Networking
Even in Networks, we used silos where we have Network Designers working on creating the overall designs, High-Level Diagrams ( HLDs ) and Low-Level Diagrams ( LLD ), and in some cases implementation plans that have the actual device configurations too. Once The Network Designers have translated the customer requirement into Networking syntax, they come inline the Implementation Engineers who will take the Design Documents as the input and create the device configurations and push the changes on the devices while also factoring into the risk analysis of the configuration change. Next in line is the NOC Team or Network Operations whose main task is to monitor and make sure the equipment/deployment functions the way it was expected to work 24/7.
What is DevOps/NetDevOps for Network Engineers ?
Here are some of the tasks that can fit into the definition of What DevOps aims to achieve in the field of Networking.
- Infrastructure as code
- Deploy with repeatable, reliable processes
- Self-service environments
- Automated environment for de-provisioning
- Automated recovery roll-back and roll-forward
- Dev and ops team shall use same tools
- Develop and test against production-like systems
- Amplify feedback loops
- Continuous integration
- Automated testing
- Continuous deployment
- Availability monitoring
- Monitor and validate operational quality
- Release management
- App performance monitoring
- Load-testing and auto-scale Practices
Questions that a Network Engineer with DevOps Mindset should be asking while approaching a requirement.
- What do I do manually ?
- What can I automate ?
- How can I validate it ?
- How do I handle failures if and when they happen ?
- What sort of tools can use to achieve a particular task. GIT, Python, Jenkins, NETCONF, RESTCONF ……. endless list.
To give more perspective, read about What is Digital Twin for Network Automation