Programmability Stack (ngăn xếp lập trình mạng) trong các hệ thống Network Automation. Đây là kiến trúc giúp các ứng dụng (Application) giao tiếp với thiết bị mạng thông qua các giao thức lập trình có cấu trúc, thay vì phải cấu hình bằng CLI thủ công.
Từ dưới lên trên, stack này gồm các lớp sau:
1. Models – Native & OpenConfig YANG
Đây là lớp nền tảng nhất.
YANG là ngôn ngữ mô hình hóa dữ liệu (Data Modeling Language), định nghĩa:
Có hai loại model:
Native YANG
OpenConfig YANG
Có thể xem YANG như database schema của thiết bị mạng.
2. Transport – SSH và HTTP/S
Lớp này chịu trách nhiệm vận chuyển dữ liệu. SSH
Được sử dụng chủ yếu bởi:
Cung cấp:
Được sử dụng bởi:
HTTPS hiện nay là lựa chọn phổ biến vì dễ tích hợp với:
3. Encoding – XML, JSON, GPB
Lớp này quy định cách biểu diễn dữ liệu.
XML
Ví dụ:
<hostname>R1</hostname>
Được sử dụng nhiều trong:
Ưu điểm:
Nhược điểm:
JSON
Ví dụ:
{
"hostname":"R1"
}
Được dùng phổ biến trong:
Ưu điểm:
GPB (Google Protocol Buffers)
Là dạng dữ liệu nhị phân (Binary Encoding).
Được dùng nhiều trong:
Ưu điểm:
4. Protocols – NETCONF, RESTCONF, gNMI
Đây là lớp giao thức mà các ứng dụng automation sử dụng để làm việc với thiết bị mạng.
NETCONF
Hoạt động trên:
SSH + XML + YANG
Cho phép:
Ví dụ:
Python
↓
NETCONF
↓
SSH
↓
Cisco IOS-XE
NETCONF rất mạnh trong quản lý cấu hình có transaction và rollback.
RESTCONF
Hoạt động trên:
HTTPS + JSON/XML + YANG
Cung cấp API theo kiểu REST:
Ví dụ:
Python Requests
↓
RESTCONF API
↓
HTTPS
↓
IOS-XE
RESTCONF rất phù hợp cho:
gNMI (gRPC Network Management Interface)
Hoạt động trên:
HTTP/2 + GPB + YANG
Hỗ trợ:
Điểm mạnh nhất là:
Streaming Telemetry
Thiết bị có thể push dữ liệu liên tục:
mà không cần polling SNMP.
Đây là nền tảng quan trọng của:
5. Applications (App1, App2, App3)
Đây là các ứng dụng ở tầng trên cùng:
Các ứng dụng này không cần hiểu chi tiết CLI của từng thiết bị mà chỉ cần:
Luồng hoạt động hoàn chỉnh
Ví dụ dùng RESTCONF:
Python Application
↓
RESTCONF
↓
JSON
↓
HTTPS
↓
YANG Model
↓
Cisco IOS-XE
Ví dụ dùng gNMI Telemetry:
Monitoring System
↓
gNMI
↓
GPB
↓
HTTP/2
↓
YANG
↓
Network Device
Ý nghĩa của Programmability Stack
Ngăn xếp này đánh dấu sự chuyển đổi từ:
CLI-based Network Management
sang:
API-driven Infrastructure
và tiếp tục tiến tới:
Intent-Based Networking (IBN)
AI-Driven Operations (AIOps)
Infrastructure as Code (IaC)
Autonomous Networking
Đây chính là nền móng của Network Automation hiện đại, nơi thiết bị mạng được quản trị giống như một hệ thống phần mềm có API, model dữ liệu và khả năng tích hợp với DevOps, Cloud và AI Agents.
Từ dưới lên trên, stack này gồm các lớp sau:
1. Models – Native & OpenConfig YANG
Đây là lớp nền tảng nhất.
YANG là ngôn ngữ mô hình hóa dữ liệu (Data Modeling Language), định nghĩa:
- Thiết bị có những thuộc tính nào.
- Cấu hình nào có thể thay đổi.
- Dữ liệu operational nào có thể được truy vấn.
- Quan hệ giữa các thành phần cấu hình.
Có hai loại model:
Native YANG
- Do nhà sản xuất cung cấp.
- Ví dụ: Cisco IOS-XE Native YANG.
- Hỗ trợ đầy đủ các tính năng đặc thù của thiết bị Cisco.
OpenConfig YANG
- Là mô hình mở do cộng đồng và các nhà cung cấp lớn xây dựng.
- Mang tính đa hãng (multi-vendor).
- Giúp các hệ thống automation quản lý Juniper, Cisco, Arista… theo cùng một cấu trúc dữ liệu.
Có thể xem YANG như database schema của thiết bị mạng.
2. Transport – SSH và HTTP/S
Lớp này chịu trách nhiệm vận chuyển dữ liệu. SSH
Được sử dụng chủ yếu bởi:
- NETCONF
- CLI Automation
- SCP/SFTP
Cung cấp:
- Mã hóa
- Xác thực
- Tính toàn vẹn dữ liệu
Được sử dụng bởi:
- RESTCONF
- API-based automation
- Telemetry services
HTTPS hiện nay là lựa chọn phổ biến vì dễ tích hợp với:
- Python
- Web application
- AI Agents
- DevOps Pipeline
3. Encoding – XML, JSON, GPB
Lớp này quy định cách biểu diễn dữ liệu.
XML
Ví dụ:
<hostname>R1</hostname>
Được sử dụng nhiều trong:
- NETCONF
- YANG data encoding
Ưu điểm:
- Có cấu trúc rõ ràng
- Hỗ trợ schema validation
Nhược điểm:
- Dài dòng
- Tốn băng thông hơn JSON.
JSON
Ví dụ:
{
"hostname":"R1"
}
Được dùng phổ biến trong:
- RESTCONF
- REST API
- Cloud automation
- Python scripts
Ưu điểm:
- Nhẹ
- Dễ đọc
- Dễ parse.
GPB (Google Protocol Buffers)
Là dạng dữ liệu nhị phân (Binary Encoding).
Được dùng nhiều trong:
- gNMI
- Streaming Telemetry
Ưu điểm:
- Rất nhỏ gọn
- Serialization nhanh
- Phù hợp với telemetry thời gian thực.
4. Protocols – NETCONF, RESTCONF, gNMI
Đây là lớp giao thức mà các ứng dụng automation sử dụng để làm việc với thiết bị mạng.
NETCONF
Hoạt động trên:
SSH + XML + YANG
Cho phép:
- Get configuration
- Edit configuration
- Lock/Unlock configuration
- Commit/Rollback
Ví dụ:
Python
↓
NETCONF
↓
SSH
↓
Cisco IOS-XE
NETCONF rất mạnh trong quản lý cấu hình có transaction và rollback.
RESTCONF
Hoạt động trên:
HTTPS + JSON/XML + YANG
Cung cấp API theo kiểu REST:
- GET
- POST
- PUT
- PATCH
- DELETE
Ví dụ:
Python Requests
↓
RESTCONF API
↓
HTTPS
↓
IOS-XE
RESTCONF rất phù hợp cho:
- Web application
- Cloud integration
- DevOps pipeline
- AI Agents.
gNMI (gRPC Network Management Interface)
Hoạt động trên:
HTTP/2 + GPB + YANG
Hỗ trợ:
- Get
- Set
- Subscribe
Điểm mạnh nhất là:
Streaming Telemetry
Thiết bị có thể push dữ liệu liên tục:
- Interface statistics
- CPU
- Memory
- Routing information
- BGP updates
mà không cần polling SNMP.
Đây là nền tảng quan trọng của:
- AIOps
- Observability
- Real-time Monitoring
- Digital Twin
- AI Network Assistant.
5. Applications (App1, App2, App3)
Đây là các ứng dụng ở tầng trên cùng:
- Python scripts
- Ansible
- Terraform
- Cisco DNA Center
- Nexus Dashboard
- AI Agents
- SIEM
- Monitoring Platform
- Internal Portal
Các ứng dụng này không cần hiểu chi tiết CLI của từng thiết bị mà chỉ cần:
- Sử dụng YANG model.
- Chọn protocol phù hợp.
- Gửi API đến thiết bị.
Luồng hoạt động hoàn chỉnh
Ví dụ dùng RESTCONF:
Python Application
↓
RESTCONF
↓
JSON
↓
HTTPS
↓
YANG Model
↓
Cisco IOS-XE
Ví dụ dùng gNMI Telemetry:
Monitoring System
↓
gNMI
↓
GPB
↓
HTTP/2
↓
YANG
↓
Network Device
Ý nghĩa của Programmability Stack
Ngăn xếp này đánh dấu sự chuyển đổi từ:
CLI-based Network Management
sang:
API-driven Infrastructure
và tiếp tục tiến tới:
Intent-Based Networking (IBN)
AI-Driven Operations (AIOps)
Infrastructure as Code (IaC)
Autonomous Networking
Đây chính là nền móng của Network Automation hiện đại, nơi thiết bị mạng được quản trị giống như một hệ thống phần mềm có API, model dữ liệu và khả năng tích hợp với DevOps, Cloud và AI Agents.