Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programmability Stack

    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:
    • 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
    HTTP/HTTPS


    Đượ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:
    1. Sử dụng YANG model.
    2. Chọn protocol phù hợp.
    3. 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.​
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X