🤖 NetDevOps & Infrastructure Automation Learning Path¶
🚀 Infrastructure as Code (IaC) Masterclass: Treat network infrastructure as code using Jinja2/YAML data modeling, PyATS operational assertions, Batfish AST static pre-flight analysis, gNMI OpenConfig telemetry, and GitHub Actions CI/CD pipelines.
📊 Learning Path Overview¶
| Metric | Target Specification |
|---|---|
| Estimated Completion Time | 35 – 40 Hours (Self-paced, hands-on lab driven) |
| Milestone Stages | 5 Progressive Stages (Data Modeling → Automated Assertions → Offline Pre-Flight → CI/CD Automation → Telemetry) |
| Lab Framework | Containerlab + Arista cEOS + Python 3 (Runs 100% locally on macOS OrbStack or Linux Docker) |
| Target Roles | NetDevOps Engineer, Network Automation Developer, Cloud Network Automation Architect, Site Reliability Engineer |
| Target Employers | Tech Enterprise Companies, Hyperscalers, Financial Tech (FinTech), Telecom Operators, and Automation Consultancies |
🧠 Core NetDevOps Toolchain & Technologies¶
| Automation Layer | Production Tool & Protocol | Engineering Function |
|---|---|---|
| Data Modeling & Rendering | YAML / Jinja2 / Python | Single-source-of-truth configuration templating decoupled from device syntax |
| CLI State Parsing | Cisco PyATS / Genie | Automated operational state assertions and differential snapshots post-change |
| Pre-Flight Static Analysis | Batfish AST | Simulating end-to-end reachability, ACL policies, and BGP convergence offline before hitting hardware |
| Streaming Telemetry | gNMI / OpenConfig YANG / pygnmi | Sub-second gRPC real-time programmatic metric streaming and push configuration |
| CI/CD Pipelines | GitHub Actions / Containerlab | Automated gate checks on every git push preventing syntax and routing regressions |
🗺️ 5-Stage Progressive Milestone Roadmap¶
Stage 1 · Data Modeling & Template Generation
Single Source of TruthDecouple business network intent from proprietary device CLI syntax using YAML data schemas and Jinja2 rendering engines.
Stage 2 · Operational State Assertions
Automated TestingConvert fragile text scraping into robust JSON assertions using Cisco PyATS testbeds and Genie operational state parsers.
Stage 3 · Offline Pre-Flight Verification
Digital TwinMathematically verify routing policies, ACL safety, and end-to-end reachability offline using Batfish AST simulation before pushing changes.
Stage 4 · Automated CI/CD Deployment Pipelines
GitOpsSpin up headless containerlab testbeds inside GitHub Actions runners to automatically gate pull requests on passing verification tests.
Stage 5 · Programmable Telemetry & Feedback Loops
gNMI AutomationBuild programmatic closed-loop automation scripts that subscribe to OpenConfig streaming paths and trigger remediation events.
🚀 Interactive Lesson Directory (Click Any Lesson to Start)¶
| Milestone Stage | Automation Layer | Clickable Lessons & Hands-on Labs | Runnable Lab | Action |
|---|---|---|---|---|
Stage 1Data Modeling |
YAML Single Source of Truth & Jinja2 Network Templates | • Phase 5 · Lab 01: Jinja2 & YAML Data Modeling | labs/netdevops-lab |
Start Stage 1 → |
Stage 2State Assertions |
Cisco PyATS & Genie Structured Testbed Validation | • Phase 5 · Lab 02: PyATS State Verification | labs/netdevops-lab |
Start Stage 2 → |
Stage 3Pre-Flight Verification |
Batfish Abstract Syntax Tree Reachability & ACL Simulation | • Phase 5 · Lab 03: Batfish Simulation | labs/netdevops-lab |
Start Stage 3 → |
Stage 4CI/CD Pipelines |
GitHub Actions Workflows & Ephemeral Containerlab Testbeds | • Phase 5 · Lab 05: GitHub Actions CI/CD | labs/netdevops-lab |
Start Stage 4 → |
Stage 5Programmable Telemetry |
pygnmi Python Library, OpenConfig YANG Schemas, gRPC | • Phase 7 · Lab 01: gNMI Basics & OpenConfig • Phase 7 · Lab 02: pygnmi Python Client Integration |
labs/telemetry-lab |
Start Stage 5 → |
🧪 Detailed Milestone Curricula¶
📍 Stage 1: Data Modeling & Template Generation¶
- Core Focus: Establishing a single source of truth (SSOT) using structured YAML files and rendering configuration using Jinja2 templates.
- Key Concepts: Variable scoping, loop constructs, conditional blocks, YAML validation schemas, and preventing syntax errors.
- Interactive Labs:
- Local Runner:
cd labs/netdevops-lab ./run.sh --guided
📍 Stage 2: Operational State Assertions¶
- Core Focus: Transitioning from human eye inspection to machine-parsable state verification.
- Key Concepts: Cisco Genie CLI parsers, PyATS testbeds, structured JSON output extraction, routing table convergence validation, and BGP peer state checks.
- Interactive Labs:
- Local Runner:
cd labs/netdevops-lab ./run.sh --guided
📍 Stage 3: Offline Pre-Flight Verification with Batfish¶
- Core Focus: Verifying network changes before pushing them to production devices using symbolic execution and AST analysis.
- Key Concepts: Batfish snapshot ingestion, routing table simulation, ACL reachability testing, and detecting unintended blackholes offline.
- Interactive Labs:
- Local Runner:
cd labs/netdevops-lab ./run.sh --guided
📍 Stage 4: Automated CI/CD Deployment Pipelines¶
- Core Focus: Integrating Containerlab and network testing into GitHub Actions CI/CD workflows.
- Key Concepts: Ephemeral containerized testbeds, automated linting, pre-merge gate checks, and automated rollback triggers.
- Interactive Labs:
- Local Runner:
cd labs/netdevops-lab ./run.sh --guided
📍 Stage 5: Programmable Telemetry & Feedback Loops¶
- Core Focus: Using Python client libraries (
pygnmi) to interact with gRPC endpoints, subscribe to OpenConfig paths, and trigger automated remediations. - Key Concepts: gNMI Get/Set/Subscribe RPCs, ProtoBuf encoding, OpenConfig interface models, and event-driven automation.
- Interactive Labs:
- Local Runner:
cd labs/telemetry-lab ./run.sh --guided
🛠️ Executable Local Lab Environment¶
NetForge Labs provides automated guided runners so you can practice NetDevOps pipelines locally without managing complex virtual machines.
# 1. Navigate to the NetDevOps lab
cd labs/netdevops-lab
# 2. Launch the guided interactive runner
./run.sh --guided
# Or test all pipeline stages end-to-end
./run.sh --all
🎓 Career Defense: Portfolio Projects¶
- Multi-Vendor Network Template Engine:
- Showcase a Jinja2/YAML engine that accepts high-level data models and renders validated Arista and Cisco configurations.
- Offline Pre-Flight Change Gating (Batfish):
- Demonstrate a pipeline where proposed BGP route-map changes are simulated with Batfish, catching an intentional routing loop before it ever hits a device.
- Automated Ephemeral CI/CD Test Matrix:
- Present a GitHub Actions workflow that boots a 4-node Arista cEOS topology inside containerlab, executes PyATS test suites, and tears down the lab in under 90 seconds.