paint-brush
From DevOps to NetDevOps: Where Are We Now in Networking?by@verlainedevnet
1,977 reads
1,977 reads

From DevOps to NetDevOps: Where Are We Now in Networking?

by Verlaine j muhunguOctober 18th, 2023
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

The article discusses the application of DevOps principles in networking, leading to a new era of NetdevOps. It emphasizes the importance of agility in network management and highlights that DevOps, while well-established in software development, is also crucial in networking.
featured image - From DevOps to NetDevOps: Where Are We Now in Networking?
Verlaine j muhungu HackerNoon profile picture


Hello there, my name is Verlaine, and I've spent over a decade in the field of IT. Throughout my journey, I've witnessed numerous changes within the industry - from manually managing devices to embracing APIs, DevOps, and ultimately NetdevOps.


Initially, configuring routers and connecting computers and printers may have seemed dull and time-consuming. However, as I delved deeper into network protocols and tackled more complex projects, my interest in the field grew.


In this article, I'll be exploring NetdevOps from a networking perspective. While DevOps is a popular term in software and web development, it seems to be less talked about when it comes to networking.


Let's dive in and discover more!

NetdevOps Overview

With the emergence of DevOps in various industries, its principles have paved the way for new trends such as DevSecOps, ChatOps, MLOps, and NetdevOps. In NetdevOps, the DevOps culture is integrated into the deployment and operations of networks and infrastructure teams. It's clear that the old way of working is no longer desirable.

DevOps and NetdevOps: What’s The difference

In the realm of networking, the terms DevOps and NetDevOps may appear interchangeable. However, in NetDevOps, the code for the application serves as the configuration that requires management and deployment.


We can distinguish between general code, which pertains to configuration; building code, which is for building configuration; and testing code, which tests the configuration.


This cycle continues throughout the release process, culminating in the automation of the build, testing, and release phases.


If you're diving into NetdevOps or DevOps, it's important to know the key concepts that overlap between the two. Let's explore some of these similarities together!


  • Configuration or code
  • Build configuration or Build code
  • Test configuration or test code
  • Release configuration or release code

DevOps and NetdevOps concepts

A plethora of tools

Automation plays a significant role in the DevOps methodology, and it continues to inspire IT professionals worldwide. By automating various test phases, we can significantly increase the number of tests for the proposed changes. Once changes undergo testing, they can pass and be ready for the next phase of development. In case of a failure, feedback is provided to improve the testing process. The changes are updated, and the tests are rerun to ensure that all the proposed changes pass. This iterative process continues until all the changes pass the tests.


With a culture of collaboration and automation, network engineers and administrators now have a plethora of efficient tools at their disposal. Some well-known tools include:


Continuous integration

Jenkins

Circle CI

Travis CI

Configuration management

Ansible

Puppet

Chef

Collaboration

Jira

Slack

Hipchat

Working environment

Docker

Vagrant

Packer

Source and image control

Docker

GitHub

BitBucket

Platforms

Google Cloud

Aptible

Azure

NetDevOps is the way to go

NetdevOps is precious We live in a changing digital society now; networks scale all the time and become difficult to manage with traditional networking management approaches; the CLI can’t keep pace with complex tasks anymore as we move to cloud and automation.


Network engineers should collaborate with the DevOps team to embrace automation. It helps them to avoid tedious tasks and manage network infrastructure with fewer errors. Most outages in networking come from manual errors, and automation is the answer to such problems.

Where NetDevOps shines

Modern networks can be programmed, and automation is crucial for increased agility in today's dynamic industries, requiring companies to adapt :


  • Network monitoring: NetdevOps engineers can identify and resolve issues efficiently with the help of automated tools, leading to improved network stability and reduced downtime.

  • Network management: NetdevOps has brought a significant changes to network devices and configuration management. Tools like Jinja can be used to create templates and deploy them across multiple devices, improving network efficiency.

  • Network security: NetdevOps can enhance network security by automating common tasks such as vulnerability scanning, patch management, and access control. With the help of various tools, network engineers can efficiently identify and address security issues to prevent data breaches. This approach helps in reducing the risk of exploitation by malicious actors.

    Some of the benefits are :

  • A great collaboration between the network operations (NetOps) and software development (DevOps)

  • An improved security

  • A better use of resources management

  • A better network stability

Road to infrastructure as code or IaC

The networking industry has a variety of data formats available, including XML, JSON, YAML, and IaC, which represent infrastructure in a code format. IaC offers a high level of abstraction, and its data format can be interpreted by different configuration management systems.


IaC is not limited to network infrastructure but also includes servers and cloud resources. Network engineers also use similar concepts, such as NAC or network as code.


Network configurations are treated like code, which is a great way for network engineers to adopt automation in their daily tasks. These configurations are versioned like application code and often use version control systems, such as Git, the most widely used VCS.


By adopting Infrastructure as Code (IaC), network teams can easily track any changes made to the configurations and rollback to a previous version anytime they want.


In a nutshell, IaC is the process of managing and provisioning network infrastructures through machine-readable definition files, rather than the traditional way of working with the Command Line Interface (CLI) by entering commands and managing devices one by one.

How does a netdevOps pipeline look like

let’s take a scenario where a NetDevOps team wants to make a change in some device configurations

A netdevOps pipeline


  1. The network engineers pull the latest configuration from GitHub
  2. The network engineer makes changes on his local machine through a text editor or IDE of his choice
  3. the changes have been completed, the network engineer pushes the committed from his local repository to a feature branch in the remote repository, and the main branch refers to production.
  4. GitHub is currently the most widely used cloud-based service that utilizes Git. It includes GitHub Actions, a built-in continuous integration tool. While some teams use Jenkins as a separate program, the diagram shows that GitHub's continuous integration server can easily detect modifications and start a job.
  5. In netdevOps, to validate the configuration and run defined tests, a test environment is utilized. Thanks to GitHub Continuous Integration, tools like EVE-NG or Cisco Modeling Labs, along with virtualized or physical lab networks, can be employed to accomplish this task.
  6. In the diagram, the GitHub continuous integration runs a set of defined tests against the configuration code in the remote repository to validate the new change. Some scripts or tools are able to detect different changes and some of the well-known frameworks pyATS
  7. GitHub offers rich features, and a webhook can be configured to send a notification on Slack to notify the netdevOps team of different events in the pipeline. Thanks to different notifications, the netdevOps team is able to know if a test has passed or failed.

How to start

a lost person

The networking industry has an abundance of tools available, which can often lead to confusion. It's common for network engineers who want to adopt the culture to feel overwhelmed with endless information. The choice of tool depends on the project you aim to achieve, and no one knows all the tools available. If you're a network engineer starting a netdevOps journey, here's how to proceed:

  • Python: is the defacto language to automate networks, easy to learn thanks to its syntax as plain English text, rich with a plethora of libraries.


  • Netmiko: it’s one of the most used Python libraries in modern networking that simplifies connecting and interacting with network devices. The library provides a simple way to interact with network devices using Python.

  • Nornir: it’s a great Python automation framework. It also offers a simple way to interact with devices using Python.

  • Flask: A Python web framework widely used for developing web-based network management applications, is considered to be excellent.

  • Matplotlib: A Python library for data visualization, a great way to visualize network data

  • Cisco Modeling Labs: It is a network simulation tool that can simulate Cisco and non-Cisco networks using real Cisco images on workstations and servers.

  • EVE-NG: it’s a network emulation platform that allows network and security professionals to design, test, and troubleshoot in a virtual environment.


    The aim is to start with the most used tools. Handling many tools simultaneously is impossible, and the list is not exhaustive.

    Conclusion

    Network engineers can no longer operate with the traditional methods of managing networks, thanks to the application of DevOps principles to networking.

    With Infrastructure as Code (IaC) network configurations treated like code, NetdevOps transforms how they operate and gives network engineers a chance to embrace automation.

    The CLI is no longer able to keep up with the current technological developments, as customers' behavior is always changing, and networks need to scale on demand.

    In a rapidly evolving digital world, network engineers should embrace netDevops and adaptability.