Demystifying Network as Code and Services as Code
Publish Time: 19 Nov, 2025

Increasingly, customers ask me about Network as Code and Cisco Services as Code.

While network automation is even more critical in the AI era, there's also a lot of myth, confusion, and a recurring question: "We've already been automating network operations with Scripts, APIs, Controller GUIs, Terraform providers, and Ansible playbooks... what's new and different about Network as Code (NaC)?"

Let's explore these questions, starting from the basics: what is Network as Code?

Network as Code is a methodology that applies DevOps principles to network management, through declarative data models, allowing teams to automate and manage network configurations through YAML files.

But, how did we get here and why is this the preferred methodology for network automation?

The Evolution of Network Automation

If you've ever wrestled with a notepad full of switch configs or found yourself knee-deep in Python scripts at midnight, you'll appreciate just how far we've come.

 

 

Wave 1: The Nostalgia Era (Manual CLI & Basic Templating)

In the early days, network configuration was all about the command-line interface (CLI). Everything was written in clear, human-readable text, which meant you could always see exactly what was happening-provided you could keep your eyes open after hours of scrolling.

Templates were often managed using Notepad or another basic text editor, and if you were really organized, you had a centralized folder somewhere -probably named "final-final-configs" -for reuse.

While this approach was simple and straightforward, it relied heavily on manual effort and was prone to errors.

 

Wave 2: The Scripting Renaissance (Programmatic CLI)

As networks grew more complex, engineers started leveraging scripting languages like Python (with libraries such as Netmiko and Paramiko), and templating engines (Jinga) to automate repetitive CLI tasks.

This marked the era when network engineers became part-time coders, writing scripts to save time and reduce mistakes.

It was a big leap forward, but it also meant you needed to keep your coding skills sharp -and remember which script did what, and where you left the latest version.

 

Wave 3: The API-Driven Era (Controllers & SDKs)

Then came the controllers, ushering in a new era where manual CLI commands could be replaced with intuitive interfaces and centralized management. The complexity of direct CLI configurations began to fade, replaced by programmable interfaces such as REST APIs, NETCONF and increasingly gRPC, which are widely adopted for their efficiency and flexibility in managing and automating systems. Software development kits (SDKs) made programmability easier, helping network teams avoid the fatigue of endless API calls.

This wave focused on abstracting direct device interaction, allowing for centralized management and more sophisticated programmatic control. While the challenge of CLI configuration is eliminated, the duplication of investment and snowflakes were unavoidable.

 

Wave 4: Infrastructure as Code (IaC) & Cloud-Native Networking

This wave saw the broader adoption of Infrastructure as Code (IaC) principles, driven significantly by the rise of cloud computing. Tools like Terraform and Ansible (for infrastructure provisioning) were used to define and manage network infrastructure alongside compute and storage, particularly in cloud environments.

The focus shifted to declaring the desired state of the entire infrastructure, with version control and automated deployment becoming standard. This wasn't just about network devices, but the network as part of a larger, codified infrastructure.

 

Wave 5: Declarative Network as Code (NaC) and Intent-Based Operations

This is the current and evolving wave, representing the maturity and specialization of declarative principles for the network domain. It moves beyond generic IaC to focus on high-level network intent, leveraging simplified data models (in YAML) and a library of modular, expertly crafted components. This wave emphasizes abstracting complex orchestration details, allowing engineers to define the desired state of their network infrastructure, rather than the step-by-step commands. There's no longer a requirement for every administrator to be a programmer; Instead, domain SMEs simply render variables into these modules to automate tasks. Consistency, efficiency, and quality are baked in by design. This wave sees GitOps principles become central for managing network configurations, ensuring a single source of truth and enabling robust CI/CD. Furthermore, seamless integration with IT Service Management (ITSM) systems becomes a standard practice for change management. This approach brings consistency, efficiency, and quality by design, empowering teams to manage their networks with the same rigor and agility as software development. Even those with minimal programming background can achieve impressive automation results, meaning the Network architects can focus more on core Network design and concepts.

Network as Code

The days of every team building their own 'snowflake' automation are over. Network as Code (NaC) represents the maturity of declarative principles for network management, allowing engineers to define the desired state of their network infrastructure rather than focusing on intricate details like dependencies, references, or looping logic. With an easy-to-use, opinionated data model and a library of tested, maintained modules, you can spin up entire network fabrics in minutes, simply by describing their intended configuration in straightforward text, without needing deep API or object model knowledge.

Central to NaC is the adoption of GitOps principles. This means network configurations are version-controlled in a Git repository, serving as the single source of truth. Changes are proposed via pull requests, reviewed, and then automatically deployed and synchronized with the live network, enabling robust CI/CD pipelines. This ensures that the network's actual state consistently matches the declared state in Git. Furthermore, NaC facilitates seamless integration with IT Service Management (ITSM) systems. This ensures that all network changes are tracked, approved, and managed within existing operational workflows, enhancing governance, compliance, and auditability. This holistic approach brings consistency, efficiency, and quality by design, empowering teams to manage their networks with the same rigor and agility as software development.

While NaC is an open-source methodology that allows for Do It Yourself(DIY) automation, implementing its full framework and methodologies can be complex. This is where Cisco steps in to accelerate your journey.

Going beyond with Services as Code

Cisco Services as Code is available through Cisco Professional Services, offering a comprehensive solution that encompasses the entire lifecycle of network service delivery. This includes readiness assessments, people/process enablement, solution setup, brownfield import, continuous integration and deployment (CI/CD), automated testing, validation, release management, and 24×7 support. It integrates DevSecOps practices and provides a framework to manage network infrastructure changes with high accuracy, scalability, and operational efficiency.

A critical differentiator of Cisco Services as Code is its robust, integrated Test and Validation framework. Unlike ad-hoc testing often found in DIY automation or marketplace solutions, our service provides a systematic and comprehensive approach to ensure network changes are thoroughly verified before and after deployment. This includes automated syntax checks for configuration correctness, semantic validation and tests every configured object against the intended configuration.  This comprehensive, continuous validation, integrated throughout the CI/CD pipeline, significantly reduces the risk of errors, minimizes network downtime, and ensures that changes consistently meet operational and compliance standards. It's this assurance of quality, reliability, and security, baked into the service, that truly sets Cisco Services as Code apart, providing peace of mind and operational excellence that goes beyond simply automating configurations.

Additionally, we recently introduced the integration of Cisco AI Assistant with Services as Code, further simplifying infrastructure management with natural language inputs.

So there you have it; Network as Code and Services as Code explained -and hopefully demystified. Let us know in the comments what top of mind questions you want us to cover next.

And here's my 'further reading' recommendations on the topic, written by our Principle Architects and Distinguished Engineers.

  • Cisco Announces AI Assistant Inclusion to Services as Code
  • The origins, impact and future of AI Agents: A conversation with David White
  • Top 3 Tips to Automate Your Data Center with Infrastructure as Code (IaC)

I’d like Alerts: