Cisco NSO Network Automation Platform

Cisco Consultant / Remote Engineer at DEK Technologies Vietnam - Delivering fault-tolerant network automation features using Erlang and YANG

Project Overview

As Cisco Consultant / Remote Engineer at DEK Technologies Vietnam, I delivered fault-tolerant network automation features in Cisco NSO using Erlang and YANG. Applied Domain-Driven Design principles to translate networking models into business logic, resolving deep concurrency bugs and enhancing system reliability.

Technical Architecture

Core Components

  • Network Automation: Cisco NSO platform for network service orchestration
  • Model-Driven Development: YANG data modeling for network configuration
  • Concurrency Management: Erlang-based fault-tolerant processing
  • Business Logic: Domain-Driven Design implementation for networking models

Technology Stack

  • Backend: Erlang for concurrent processing and fault tolerance
  • Network Protocols: NETCONF, RESTCONF for network device communication
  • Data Modeling: YANG for network configuration schemas
  • Development Tools: Python, Emacs Lisp for development automation
  • CI/CD: Jenkins for automated testing and deployment

Key Features

Network Automation

  • Service Orchestration: Automated network service provisioning and management
  • Configuration Management: Centralized network device configuration
  • Fault Tolerance: Erlang-based concurrency for reliable network operations
  • Model Translation: YANG models translated to business logic using DDD

Development Excellence

  • Domain-Driven Design: Applied DDD principles to networking domain models
  • Concurrency Optimization: Resolved deep concurrency bugs in distributed systems
  • System Reliability: Enhanced fault tolerance and error handling
  • Development Automation: Emacs Lisp scripting for development efficiency

Results

Technical Achievements

  • Fault Tolerance: Improved system reliability through Erlang concurrency
  • Network Automation: Streamlined network service provisioning
  • Bug Resolution: Resolved complex concurrency issues in distributed systems
  • Development Efficiency: Enhanced development workflow with automation

Business Impact

  • Operational Efficiency: Automated network configuration and management
  • System Reliability: Enhanced fault tolerance for critical network operations
  • Development Velocity: Improved development speed through DDD principles
  • Quality Assurance: Comprehensive testing and validation processes

Impact

This work contributed to Cisco’s network automation platform, enabling more reliable and efficient network operations. The Domain-Driven Design approach and concurrency optimizations have influenced best practices for network automation systems.

Technical Contributions

Concurrency Solutions

  • Process Supervision: Implemented robust supervision trees for fault tolerance
  • Message Passing: Optimized Erlang message passing for network operations
  • Error Handling: Enhanced error recovery mechanisms for network failures
  • Performance Optimization: Improved system performance through concurrency patterns

References