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

  • Bài 2/6: Giới thiệu về API

    🔥 API Stack – Hiểu đúng kiến trúc lập trình hóa thiết bị mạng

    Bạn đã từng gõ lệnh interface GigabitEthernet0/1 hay ip address trên CLI đúng không? Nhưng khi bước vào kỷ nguyên tự động hóa mạng, bạn cần học một cách nghĩ mới: CLI không còn là trung tâm nữa. API mới là “vua”.
    🧠 Vậy API trong thế giới mạng hiện đại gồm những gì?

    Khi các hệ thống hiện đại triển khai API, chúng không chỉ đơn giản là mở một giao diện để gửi lệnh. Chúng được xây dựng có tầng, có cấu trúc rõ ràng, theo cách tiếp cận "Model-Driven". Trong cấu trúc này, ta cần hiểu rõ 4 thành phần chính: Data Model, Transport, Encoding và Protocol.
    1. Data Model – Linh hồn của API

    Đây là phần quan trọng nhất khi nói đến automation kiểu hiện đại.
    Mô hình dữ liệu (Data Model) định nghĩa:
    • Cấu trúc cú pháp của dữ liệu mà API sẽ xử lý.
    • Ngữ nghĩa: dữ liệu đó có ý nghĩa gì.
    • Các ràng buộc, quy tắc mà API phải tuân theo.
    Bạn sẽ gặp các mô hình như YANG, OpenConfig, hoặc các phiên bản custom của nhà cung cấp. Chúng hoạt động giống như một “hợp đồng” giữa bạn (người gọi API) và thiết bị (người nhận lệnh). Nếu bạn gửi sai cấu trúc JSON/XML theo mô hình, thiết bị sẽ từ chối ngay lập tức.
    2. Transport – Con đường giao tiếp

    Sau khi có mô hình dữ liệu, ta cần một “đường dẫn” để gửi dữ liệu đi. Các API mạng hiện đại hỗ trợ nhiều hình thức truyền tải như:
    • HTTP hoặc HTTPS – dành cho REST hoặc RESTCONF.
    • SSH – dành cho NETCONF.
    • TLS – dùng để mã hóa, bảo mật.
    Bạn có thể hình dung, giống như trước đây dùng SSH để đăng nhập CLI, thì NETCONF cũng sử dụng SSH để truyền thông tin XML. Còn RESTCONF thì “nói chuyện” qua HTTP/HTTPS với payload là JSON.
    3. Encoding – Cách đóng gói dữ liệu

    Dữ liệu trước khi truyền đi phải được mã hóa theo một định dạng nhất định:
    • XML thường dùng trong NETCONF – cấu trúc dạng thẻ, giống HTML.
    • JSON thường dùng trong RESTCONF – đơn giản, gọn nhẹ.
    • Google Protocol Buffers (ProtoBuf) thường dùng với gRPC – rất nhẹ và nhanh, phù hợp với các ứng dụng thời gian thực như Telemetry.
    Việc chọn định dạng nào phụ thuộc vào loại giao thức bạn dùng và khả năng thiết bị hỗ trợ.
    4. Protocol – Cơ chế giao tiếp chính

    Đây là lớp “trên cùng” của mô hình lập trình API. Ta có ba giao thức chính mà anh em cần nhớ:
    • NETCONF: dùng XML và hoạt động qua SSH. Hỗ trợ đầy đủ thao tác cấu hình, xác minh, rollback…
    • RESTCONF: dựa trên mô hình REST nhưng dùng dữ liệu YANG, truyền qua HTTP hoặc HTTPS.
    • gRPC: rất mạnh về hiệu năng, dùng với ProtoBuf. Thường thấy trong các giải pháp như Cisco Streaming Telemetry.
    Lưu ý rằng REST “thuần túy” không được xem là model-driven. Chỉ khi REST được dùng với YANG thì mới được gọi là RESTCONF.
    🎯 Vì sao bạn cần nắm được API Stack?

    Đơn giản thôi: Tương lai quản trị mạng không còn là gõ lệnh từng dòng, mà là viết file JSON/XML và đẩy hàng loạt cấu hình qua API. Khi bạn hiểu rõ API Stack, bạn biết:
    • Gửi cái gì (data model).
    • Gửi bằng cách nào (transport).
    • Gửi dưới dạng gì (encoding).
    • Và dùng giao thức nào để thiết bị hiểu được bạn (protocol).

    💡 Một ví dụ thực tế cho anh em dễ hình dung

    Bạn cần cấu hình một loopback interface trên router thông qua RESTCONF:
    1. Gọi API qua HTTP.
    2. Gửi dữ liệu JSON theo đúng mô hình YANG (ví dụ: Cisco-IOS-XE-native).
    3. Thiết bị nhận JSON, xác minh theo data model.
    4. Nếu đúng – áp dụng cấu hình; nếu sai – trả lỗi HTTP 400.

    ✅ Kết luận

    Muốn làm chủ Network Automation, bạn không chỉ cần biết cấu hình mạng, mà phải hiểu sâu về cách API vận hành: từ mô hình dữ liệu đến giao thức giao tiếp. Việc hiểu API Stack sẽ giúp bạn:
    • Làm việc với Cisco DNAC, NSO, Meraki Dashboard API…
    • Tự động hóa hàng trăm thiết bị cùng lúc.
    • Tham gia vào các dự án NetDevOps hoặc DevNet của Cisco.
    • Và đặc biệt là đi xa hơn trên con đường CCIE, DevNet Expert.

    📣 Bạn thấy bài này hữu ích? Gửi cho anh em trong nhóm CCNA/CCNP/DevNet của bạn ngay nhé.
    #NetDevOps restconf netconf #gRPC automation #CiscoAPI #VnPro

    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