For a long time, we’ve thought about networking as a kind of black sheep in the world of IT. We do things differently, it’s traditional, arcane, can’t be changed. But in reality, when you zoom out a bit, what network engineers do isn’t so different from any software developers.
Build, Test, Deploy, and Operate. That’s the software development cycle that we’ve all become familiar with, the core of the CI/CD approach. If you’re a network engineer, what do you do? You build and develop network change processes. You test them to ensure they won’t break anything on the network. You deploy them to production. And finally, things are handed off to a network operations team for post-deployment processes. That’s our own networking version of the typical CI/CD process flow.
Let me give you the short version. Here’s what that means: network engineers can treat network infrastructure as code, taking advantage of the benefits the CI/CD approach has delivered to software developers for years.
CI/CD in a Networking Context
How do teams get started with NetDevOps? We can look to the “shift left” that’s happening in other areas of technology infrastructure, where concerns like testing and business goals are brought into the development cycle earlier, allowing for more dynamic, faster deployments and enabling greater automation reach.
One example of this shift involves networking teams participating in DevOps processes by creating automations that assist in deploying network infrastructure for applications (now a manual process) and allowing for DevOps teams to utilize those automations within their tools and processes. With this approach, applications can be developed with features that ask the network for different resources.
As this new emphasis on network and development teams working closely together continues to take hold, the market of innovative solutions in the NetDevOps sector will continue to mature as well. As a recent GigaOm report states, “we anticipate rapid evolution in the next 18 to 36 months.”
NetDevOps can transform the ways an organization’s infrastructure is tested and deployed, but to reap the full benefits, organizations will need to commit to a cultural, as well as a process shift.
How to Bring DevOps Culture to NetOps
CI/CD originated in the software development world as a set of practices and principles to streamline the process of development, testing, and deployment. By using pipelines, developers can move faster, integrating more reusable code, automating repetitive tasks, and enhancing process visibility, which all contributes to higher-quality code produced at greater speed and volume.
For network engineers, integrating CI/CD pipelines with your approach to network automation and orchestration enables you to treat your network infrastructure as code. You can share assets such as third-party system integrations or CLI automation scripts so they can be reused between workflows. You can use the pipeline to create a testing environment and build your library of testing assets over time, enabling much more comprehensive testing than would ever have been possible manually. And, you’ll have a much easier time scaling your network management approach as your network continues to expand. All in all, your network change processes will become more consistent, and you’ll see much faster turnaround on network requests end-to-end.
A Phased Approach to Integrating CI/CD Pipelines With Network Automation
At most organizations, network teams either approach network change processes with an all-manual model or with limited automation tooling. To get from there to comprehensive, end-to-end implementation of a CI/CD pipeline for your network team, it helps to take a phased approach. Your team can adopt specific, practical pieces of the overall goal and integrate them into the current change process, iterating until the target process is achieved. While obviously every team goes through a different, specific implementation journey, you can use the three overarching phases outlined below as a guide:
1: Manual Change Process
Teams that have yet to incorporate significant automation or any CI/CD capabilities into their process suffer from slower end-to-end delivery of network changes. One of the key steps teams at this stage can take is beginning to analyze the existing network change process, looking for activities that are repeatable and consistent. These will be the best entry points for introducing automation and CI/CD practices.
The manual model:
- Only limited use of automation tooling with most activities performed manually.
- Information and version control is primarily document-based (e.g., spreadsheets).
- Payload Creation
- Engineers develop specific configurations and processes for each network change.
- Manual handoff to the testing stage.
- Testing
- Engineers create a test environment and manually test configurations and processes.
- Manual handoff to the deployment stage.
- Deployment
- Coordinated between engineers through manual means such as messaging, email, etc.
- Changes are manually deployed to production network.
- Manual handoff to the operations team.
- Operations
- Operations team performs life cycle management for deployed systems.
2: Early-Stage CI/CD Implementation
To begin the implementation, introduce CI/CD practices into the team’s typical activities to enable team members to gain experience with individual tools and platforms. Starting with highly repeatable, consistent processes gives team members a solid foundation to continue to iterate on and evolve. As network engineers continue to adopt and become familiar with these tools, productivity and the team’s ability to manage an increasing amount network changes will improve.
The early-stage CI/CD model:
- Automated pre-deployment testing is introduced.
- Automations for deployment and operations are introduced.
- Network team uses a repo for version control.
- Payload Creation
- Same as above — engineers develop specific configurations and processes.
- Manual handoff to the testing stage.
- Testing
- Tools are used to create test environments and test payloads.
- Manual handoff to the deployment stage.
- Deployment
- Some manual activities, some automated activities.
- Repo utilized for version control.
- Manual handoff to the operations team.
- Operations
- Some manual activities, some automated activities.
- Repo utilized for version control.
- At this second phase, network engineers are much more productive due to automation of repetitive tasks. However, end-to-end network change processes still take a similar amount of time to the all-manual approach.
- Over time, the team can introduce more CI/CD methods and tooling in order to reach the next level of adoption.
3: Full CI/CD Implementation
A comprehensive implementation of a CI/CD pipeline for networking is the target state. When this goal is achieved, the team is fully enabled to treat network infrastructure as code, leveraging automation at every step of a change process and leveraging the pipeline to automate handoffs between each step. The benefits extend from just engineer-level productivity to accelerating the time to complete network changes end-to-end.
The CI/CD target operating model:
- The goal is to further accelerate and improve the end-to-end process by introducing a pipeline to link each stage of the change process and automate handoffs between them.
- Also, process automation design is incorporated for payload creation in order to eliminate manual input across the entire process end-to-end.
- Payload Creation
- Network engineers build templates and automation workflows to generate configurations.
- Pipeline coordinates handoff to the testing stage.
- Testing
- Configuration tests are automated with test environment and processes created using pipeline and testing infrastructure.
- Pipeline coordinates handoff to the deployment stage.
- Deployment
- Deployment teams manage orchestrated deployment of systems, and workflows replace traditional change MOPs (Methods of Procedure).
- About 95% of activities are automated.
- Pipeline coordinates handoff to the operations team.
- Operations
- Operations team performs life cycle management of deployed systems via automation and orchestration.
- About 95% of activities are automated.
- With a full NetDevOps change process model, networking activities and the handoffs between them have shifted to become primarily automated and coordinated via pipeline. This extends the benefits of automation from network engineers alone to every piece of the entire process.
- Network change processes are faster end-to-end and more consistent across every stage of building and deployment.
Implement CI/CD Pipelines For Networking With Itential
Itential makes implementing CI/CD pipelines for network operations easy, providing the capabilities and integrations your team needs at every part of the phased implementation approach. Pre-Built integrations and the ability to auto-generate additional integrations based on standard API formats means Itential can orchestrate automations across all your network and IT systems, meaning all components of building, testing, and deploying network automations can be managed in the same platform.
Implementing CI/CD pipelines for networking allows network teams to see the same infrastructure as code benefits that developers have seen for a while now. Reusing each other’s assets, building a robust library of tests, and incorporating automation into every step of the change process all helps to accelerate consistent service delivery end-to-end.
To dive deeper into how to get started, you can watch my recent webinar here where we discuss and demo how to put this into practice.