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