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

  • Xây dựng DashBoard dùng REST API

    Tự Xây Dựng Dashboard Riêng Cho Doanh Nghiệp: Tại Sao DevOps Và Automation Engineer Cần Hiểu REST API?


    Rất nhiều hệ thống hiện đại như Cisco DNA Center, Kubernetes, GitLab, Jenkins, ServiceNow, VMware, Intersight hay các nền tảng Cloud đều cung cấp sẵn giao diện quản trị (dashboard) rất đẹp.

    Nhưng thực tế doanh nghiệp thường không muốn nhân viên phải đăng nhập vào 5–10 hệ thống khác nhau chỉ để xem trạng thái hạ tầng.

    Giải pháp phổ biến hiện nay là xây dựng Custom Dashboard – một bảng điều khiển riêng tập hợp dữ liệu từ nhiều hệ thống khác nhau thông qua API.

    Đây cũng là lý do vì sao REST API trở thành một trong những kỹ năng quan trọng nhất đối với DevOps Engineer, Platform Engineer, Cloud Engineer và Network Automation Engineer.
    Dashboard và Back-End Giao Tiếp Với Nhau Như Thế Nào?


    Trong kiến trúc ứng dụng hiện đại, phần giao diện người dùng (Front-End) thường không truy cập trực tiếp vào cơ sở dữ liệu.

    Thay vào đó, Front-End gửi yêu cầu đến Back-End thông qua API.

    Mô hình đơn giản:

    Frontend Dashboard → REST API → Backend Service → Database

    Khi người dùng nhấn vào một đối tượng trên giao diện, Dashboard sẽ gửi yêu cầu API đến hệ thống phía sau để lấy dữ liệu hoặc cập nhật trạng thái.
    REST API Là Gì?


    REST (Representational State Transfer) là một phương pháp xây dựng API trên nền giao thức HTTP/HTTPS giúp các thành phần ứng dụng giao tiếp với nhau.

    REST trở thành tiêu chuẩn thực tế cho các ứng dụng web nhờ các ưu điểm:
    • Nhẹ (Lightweight)
    • Dễ triển khai
    • Không phụ thuộc nền tảng
    • Khả năng mở rộng cao
    • Hỗ trợ hầu hết ngôn ngữ lập trình

    Bất kỳ thiết bị nào có khả năng gửi HTTP Request đều có thể sử dụng REST API:
    • Linux
    • Windows
    • macOS
    • Smartphone
    • Tablet
    • Thiết bị IoT

    Các Phương Thức REST API Quan Trọng


    REST sử dụng mô hình Request – Response của HTTP.

    Các phương thức phổ biến gồm:

    GET

    Dùng để đọc dữ liệu.

    Ví dụ:
    GET /users/32

    Truy vấn thông tin người dùng có ID là 32.

    POST

    Tạo dữ liệu mới.

    Ví dụ:
    POST /users

    Tạo một người dùng mới.

    PUT

    Cập nhật toàn bộ đối tượng.

    Ví dụ:
    PUT /users/32

    PATCH

    Cập nhật một phần đối tượng.

    Ví dụ:
    PATCH /users/32

    DELETE

    Xóa dữ liệu.

    Ví dụ:
    DELETE /users/32
    Dữ Liệu Được Trao Đổi Như Thế Nào?


    Phần lớn REST API hiện nay sử dụng JSON.

    Ví dụ phản hồi từ API:
    {
    "id": 32,
    "name": "John Doe",
    "email": "john@example.com"
    }

    Front-End chỉ cần đọc dữ liệu JSON và hiển thị lên màn hình.

    Ngược lại, khi người dùng nhập dữ liệu trên giao diện, Dashboard sẽ đóng gói dữ liệu thành JSON rồi gửi lại Back-End bằng POST, PUT hoặc PATCH.
    Khi Doanh Nghiệp Muốn Tạo Dashboard Riêng


    Đây là tình huống rất phổ biến.

    Ví dụ doanh nghiệp đang sử dụng:
    • Cisco DNA Center
    • VMware
    • ServiceNow
    • GitLab
    • Jenkins

    Mỗi hệ thống đều có dashboard riêng.

    Nhưng ban lãnh đạo muốn một màn hình duy nhất để theo dõi:
    • Tình trạng mạng
    • Trạng thái CI/CD
    • Ticket sự cố
    • Tài nguyên Cloud
    • Hiệu năng ứng dụng

    Lúc này đội DevOps sẽ xây dựng một Dashboard riêng và tích hợp với các hệ thống thông qua API.

    Mô hình này thường được gọi là:

    Single Pane of Glass

    Tức là một màn hình duy nhất để quan sát toàn bộ hệ thống.
    Ví Dụ Thực Tế Với Cisco DNA Center


    Cisco DNA Center cung cấp Dashboard quản lý mạng doanh nghiệp tập trung.

    Nền tảng này hỗ trợ:
    • Thiết kế mạng
    • Provisioning
    • Policy
    • Monitoring
    • Assurance
    • Automation

    Điều thú vị là dashboard mặc định của DNA Center cũng đang sử dụng chính API của hệ thống để lấy dữ liệu hiển thị.

    Do đó nếu muốn tạo dashboard riêng, chúng ta chỉ cần gọi lại các API tương tự.
    Northbound API Và Intent API


    Trong các hệ thống quản lý mạng hiện đại thường có hai hướng API:

    Southbound API

    Giao tiếp xuống thiết bị.

    Ví dụ:
    • NETCONF
    • RESTCONF
    • gNMI
    • SNMP


    Northbound API

    Cho phép ứng dụng bên ngoài truy cập vào hệ thống.

    Trên Cisco DNA Center, Northbound API được gọi là:

    Intent API

    Intent API cung cấp khả năng điều khiển mạng ở mức mục tiêu kinh doanh (business intent) thay vì phải thao tác trực tiếp trên từng thiết bị.

    API này sử dụng:
    • HTTPS
    • JSON
    • GET
    • POST
    • PUT
    • DELETE

    Xác Thực API Bằng Token


    Hầu hết hệ thống hiện nay đều yêu cầu xác thực.

    Cisco DNA Center sử dụng cơ chế Access Token.

    Bước đầu tiên là lấy token:
    POST /dna/system/api/v1/auth/token

    Kèm theo:
    • Username
    • Password

    Nếu thành công hệ thống trả về:
    {
    "Token": "eyJ0eXA..."
    }

    Sau đó token được sử dụng trong header:
    X-Auth-Token: eyJ0eXA...

    cho các API tiếp theo.

    Đây là mô hình rất phổ biến hiện nay và cũng xuất hiện trên:
    • Kubernetes
    • GitLab
    • ServiceNow
    • HashiCorp Vault
    • Cisco Intersight
    • Public Cloud APIs

    Lấy Inventory Thiết Bị Từ DNA Center


    Ví dụ lấy danh sách thiết bị:
    GET /dna/intent/api/v1/network-device

    Kết quả trả về là JSON chứa:
    • Hostname
    • Model
    • Serial Number
    • Software Version
    • Role
    • MAC Address
    • Uptime

    Ví dụ:
    {
    "hostname": "cat_9k_1",
    "type": "Cisco Catalyst 9300",
    "role": "ACCESS",
    "softwareVersion": "16.12"
    }

    Dashboard có thể đọc JSON này và hiển thị dưới dạng:
    • Bảng thống kê
    • Biểu đồ
    • Topology
    • Bản đồ mạng

    Tích Hợp API Bằng Python


    Trong thế giới Automation, Python gần như là lựa chọn mặc định.

    Ví dụ lấy token:
    import requests

    r = requests.post(
    'https://dnac/dna/system/api/v1/auth/token',
    auth=('username', 'password')
    )

    token = r.json()['Token']

    Sau đó gọi API:
    headers = {
    'X-Auth-Token': token
    }

    r = requests.get(
    'https://dnac/dna/intent/api/v1/site-health',
    headers=headers
    )

    Kết quả JSON có thể được:
    • Lưu vào Database
    • Đẩy vào Dashboard
    • Gửi sang Grafana
    • Phân tích bằng AI Agent
    • Tạo báo cáo tự động

    REST Không Phải Là Lựa Chọn Duy Nhất


    Ngoài REST còn nhiều công nghệ khác:
    • gRPC
    • SOAP
    • CORBA
    • RPC Frameworks

    Tuy nhiên REST hiện vẫn là giao diện phổ biến nhất trong các hệ thống Cloud, DevOps và Network Automation.
    Điều Mà Automation Engineer Nên Nhận Ra


    Nhiều người nghĩ Automation chỉ là viết script cấu hình thiết bị.

    Thực tế phần lớn công việc Automation hiện nay là:
    • Tích hợp hệ thống
    • Kết nối API
    • Thu thập dữ liệu
    • Chuẩn hóa dữ liệu
    • Xây dựng Dashboard
    • Tự động hóa quy trình vận hành

    Nếu xem Infrastructure as Code là bước đầu tiên của tự động hóa, thì API Integration chính là bước tiếp theo để xây dựng Platform Engineering và AIOps.

    Hầu hết các nền tảng hiện đại như Kubernetes, Cisco Catalyst Center (DNA Center), Intersight, GitLab, Jenkins, ServiceNow hay Public Cloud đều xoay quanh API. Người hiểu API sẽ có khả năng kết nối các hệ thống này thành một nền tảng thống nhất, thay vì quản trị từng sản phẩm riêng lẻ.

    Nguồn tham khảo: Cisco DevNet ENAUTO, Cisco DNA Center Intent API Documentation.
    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