English

DevNetOps

Posted on Mar 29, 2024 by
83

What is DevNetOps?

DevNetOps refers to the application of DevOps philosophies, principles, and practices to network operations (NetOps). The DevOps principles emerged from the software engineering culture and lean manufacturing revolution that took place from the 1980s to the 2000s. These principles, commonly referred to as CALMS (culture, automation, lean, measurement, and sharing), serve as the foundation for DevOps.

One of the key principles of DevOps challenges the traditional waterfall methodology, which involves lengthy sequential stages of planning, building, and testing. According to research outlined in "The DevOps Handbook," smaller and more frequent deployments, as opposed to large and infrequent ones, lead to increased operational speed, agility, and improved quality in both IT and manufacturing industries.

To effectively achieve their business objectives, organizations must prioritize reliability. While speed is important, it must be accompanied by sustainability to prevent failures. Failing fast can be beneficial for organizations only if they can learn and improve with each iteration. The site reliability engineer (SRE) role has gained popularity as an implementation of DevOps, focusing on reliability. Similarly, DevNetOps is implemented through the network reliability engineer (NRE) role.

DevNetOps Pipeline

To minimize the time between development and deployment and work in shorter, faster cycles with smaller changes, the DevNetOps pipeline automates the progression from engineering changes to production deployments.

The process begins with committing code to a versioned repository, triggering a continuous integration (CI) pipeline that involves building and testing. Through a combination of automated and manual assessments, candidate delivery payloads are tested in virtual environments, simulations, and labs to ensure reliability. The continuous delivery (CD) pipeline ensures that the committed delivery remains deployable. Continuous deployment automatically pushes changes to staging and then production environments.

However, before changes are deployed into a runtime environment, such as staging or production, it is crucial to consider smaller, well-defined architectural changes and adopt an immutable infrastructure approach. Large, monolithic changes are risky and time-consuming to develop and validate, making it harder to identify issues. On the other hand, breaking changes into smaller units allows for easier identification and validation of problems.

Immutable infrastructure is also vital before continuous deployment. It is inefficient and impractical to deploy changes and then have engineers modify the deployed infrastructure. To safely test changes and improve issue resolution, production runtimes must be reproducible.

The final component of DevNetOps is continuous monitoring, measurement, and response. Feedback from the production environment, including service-level indicators, allows for reactive or proactive adjustments to the network's transient state. Analyzing telemetry, incidents, and external change requests enables continuous improvement by refining the codified state of the networking systems.

Advantages of DevNetOps

  • Developing a team culture and adopting behaviors aligned with reliability engineering, combined with frequent and smaller deployments, results in improved team and organizational performance.

  • DevNetOps enables faster integration of vendor systems, particularly software upgrades and patches. It encourages vendors to deliver updates in smaller increments at a faster pace, addressing the issue of long lead times for feature releases and bug fixes. This significantly reduces the gap between the vendor's time-to-market and the operator's time-to-deployment.

  • For engineers, DevNetOps reduces stress related to deployments and increases job satisfaction.

What is the Relationship between NRE, DevNetOps, and DevOps?

DevOps and DevOps engineers primarily focus on the development and operations of business applications. While there is a role for networking in running application clusters, networks also exist separately within enterprises and service providers, outside the realm of software application development and operations. Examples of such networks include wide-area backbones, transport networks, backhaul networks, and data center underlay networks.

DevNetOps differentiates itself from DevOps by emphasizing the separation between networking's development and operations, which occurs between vendors and customers, rather than within teams of the same company. Some goals of DevOps, such as rapid feature iteration and product experimentation, may not align with the foundational infrastructure requirements of networks. However, the principles and benefits of DevOps can still be applied to networking.

While DevNetOps, like DevOps, encompasses a set of philosophies, principles, and best practices, it is the network reliability engineering (NRE) role that implements them. The "Dev" and "Engineering" aspects remain the same, but NRE places a greater emphasis on reliability as its primary objective. These twin goals, reliability and continuous improvement, are complementary to each other, with NRE focusing on the "what" (reliability) and DevOps focusing on the "why" (continuous learning and improvement).

You might be interested in

See profile for undefined.
FS Official
Load Balancing
See profile for undefined.
FS Official
Malware
See profile for undefined.
FS Official
Orthogonal Architecture