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 DNA Center. Mặc dù Cisco đã cung cấp sẵn dashboard mặc định, nhưng trong thực tế 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ị. Help Desk cần nhìn thấy số lượng sự cố đang xảy ra. Ban quản lý 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 API phát huy sức mạnh.
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. Cisco DNA Center là một ví dụ điển hình. 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:
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:
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. Điều này cho phép:
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 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.
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 DNA Center. Mặc dù Cisco đã cung cấp sẵn dashboard mặc định, nhưng trong thực tế 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ị. Help Desk cần nhìn thấy số lượng sự cố đang xảy ra. Ban quản lý 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 API phát huy sức mạnh.
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. Cisco DNA Center là một ví dụ điển hình. 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:
- 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. Điều 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 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.