Tại sao DevOps Engineer nên biết cách xây dựng Custom Dashboard?

Một trong những kỹ năng rất giá trị của DevOps, NetDevOps và Automation Engineer hiện nay không phải là tạo thêm dashboard đẹp mắt, mà là khả năng kết hợp dữ liệu từ nhiều hệ thống khác nhau để tạo ra một "Single Pane of Glass" phục vụ vận hành.

Hãy lấy ví dụ Cisco Dashboard. Mặc dù Cisco đã cung cấp sẵn dashboard mặc định, nhưng trong thực tế các doanh nghiệp thường có nhu cầu rất khác nhau. Đội vận hành mạng có thể chỉ cần trạng thái thiết bị. Đội Help Desk thì cần nhìn thấy số lượng sự cố đang xảy ra. Ban quản lý PM muốn theo dõi KPI tổng hợp từ nhiều hệ thống khác nhau. Một dashboard duy nhất khó có thể đáp ứng tất cả các nhu cầu đó. Đây là lúc chúng ta nên nghĩ đến API và phát huy sức mạnh linh hoạt của REST API.

Khi các hệ thống back-end hỗ trợ REST API, chúng ta có thể xây dựng một giao diện tùy chỉnh để thu thập và hiển thị dữ liệu theo đúng nhu cầu của tổ chức. Dashboard mặc định thực chất chỉ là một front-end giao tiếp với back-end thông qua Intent API. Quy trình hoạt động khá đơn giản. Chúng ta hãy cùng xem 5 bước như sau:

  • Gửi yêu cầu POST tới API /auth/token
  • Truyền username và password
  • Nhận về authentication token
  • Sử dụng token trong header X-Auth-Token
  • Thực hiện các API GET, POST, PUT hoặc DELETE tiếp theo

Ví dụ, để lấy thông tin Site Health, ứng dụng chỉ cần gửi yêu cầu GET tới API tương ứng. Kết quả trả về có thể bao gồm Tên site, Số lượng thiết bị hoạt động tốt, Số lượng thiết bị gặp lỗi, Tổng số thiết bị, Các chỉ số vận hành khác… Sau đó dữ liệu được trình bày theo cách phù hợp với từng nhóm người dùng.

Điểm thú vị là kiến trúc ứng dụng hiện đại thường được xây dựng theo mô hình phân tán (Distributed Application). Front-end và Back-end tách biệt hoàn toàn với nhau. Kiến trúc phân tán này này cho phép:

  • Một back-end phục vụ nhiều giao diện khác nhau (Web, Mobile, Desktop)
  • Một dashboard có thể tổng hợp dữ liệu từ nhiều hệ thống khác nhau
  • Thay đổi giao diện mà không ảnh hưởng tới logic xử lý phía sau

Các công nghệ front-end phổ biến gồm HTML, CSS, JavaScript, React, Angular hoặc .NET. Trong khi đó back-end thường được xây dựng bằng Python, Java, PHP, Ruby hoặc .NET. Đối với dân Automation, Python là lựa chọn rất phổ biến. Chỉ với thư viện requests, chúng ta có thể xác thực API, lấy dữ liệu từ Cisco DNA Center, ServiceNow, GitLab, Prometheus, Grafana hoặc bất kỳ hệ thống nào hỗ trợ REST API. Đây cũng chính là nền tảng của rất nhiều hệ thống AIOps, NOC Dashboard và Automation Portal hiện đại. Điều quan trọng nhất không phải chỉ là viết code, mà là trả lời được câu hỏi Bạn đang cố giải quyết vấn đề gì cho doanh nghiệp?

Khi xác định được nhu cầu vận hành, API sẽ giúp bạn biến dữ liệu từ nhiều hệ thống khác nhau thành một dashboard duy nhất, đơn giản hóa vận hành và nâng cao hiệu quả tự động hóa.

RELATED POSTS
Share the Post: