TỪ CLI SANG API: BƯỚC CHUYỂN DỊCH BẮT BUỘC TRONG QUẢN TRỊ MẠNG HIỆN ĐẠI
Chào mọi người, hôm nay mình muốn ngồi lại và chia sẻ một chút về một chủ đề không mới nhưng chưa bao giờ hết hot đối với dân Network: Network Programmability (Khả năng lập trình mạng).
Nếu lật lại những cuốn sổ tay ghi chép cũ, chúng ta đều quen thuộc với các phương thức tiếp cận thiết bị truyền thống. Nhưng thế giới hạ tầng đang thay đổi rất nhanh. Sự dịch chuyển từ CLI/SSH sang API không còn là xu hướng "thích thì học" nữa, mà đã trở thành yêu cầu bắt buộc.
Tại sao lại có sự dịch chuyển này? Hãy cùng mình mổ xẻ góc nhìn này nhé!
1. Bản chất của sự thay đổi: Từ "Thiết bị đơn lẻ" đến "Quản lý tập trung"
Hãy nhớ lại cách chúng ta vận hành hệ thống theo kiểu truyền thống:
Để trả lời câu hỏi: “Làm sao để phần mềm có thể giao tiếp với hạ tầng?”, câu trả lời duy nhất chính là API. API chính là cầu nối giúp xóa bỏ khoảng cách giữa phần cứng mạng và mã nguồn.
Khi tiếp cận với lập trình mạng, chúng ta sẽ thấy API được phân loại rất rõ ràng theo kiến trúc để phục vụ từng mục đích cụ thể:
Sự chuyển dịch từ CLI sang API chính là bước tiến từ Quản trị bằng tay sang Tự động hóa (Automation). Nó giải phóng người kỹ sư khỏi những tác vụ lặp đi lặp lại nhàm chán, giảm thiểu rủi ro cho hệ thống và giúp hạ tầng mạng linh hoạt không kém gì hạ tầng Cloud.
Chào mọi người, hôm nay mình muốn ngồi lại và chia sẻ một chút về một chủ đề không mới nhưng chưa bao giờ hết hot đối với dân Network: Network Programmability (Khả năng lập trình mạng).
Nếu lật lại những cuốn sổ tay ghi chép cũ, chúng ta đều quen thuộc với các phương thức tiếp cận thiết bị truyền thống. Nhưng thế giới hạ tầng đang thay đổi rất nhanh. Sự dịch chuyển từ CLI/SSH sang API không còn là xu hướng "thích thì học" nữa, mà đã trở thành yêu cầu bắt buộc.
Tại sao lại có sự dịch chuyển này? Hãy cùng mình mổ xẻ góc nhìn này nhé!
1. Bản chất của sự thay đổi: Từ "Thiết bị đơn lẻ" đến "Quản lý tập trung"
Hãy nhớ lại cách chúng ta vận hành hệ thống theo kiểu truyền thống:
- Cách làm cũ (Cấu hình thủ công): Gắn dây Console, mở SSH/Telnet rồi gõ từng dòng lệnh CLI trên từng Switch, Router đơn lẻ. Cách này vẫn chạy tốt khi hệ thống nhỏ. Nhưng nếu bạn có 100, 1000 thiết bị thì sao? Việc lặp đi lặp lại cấu hình bằng tay cực kỳ tốn thời gian và rất dễ xảy ra sai sót (human error).
- Mô hình hiện đại (SDN Controller): Xu hướng hiện tại là đưa SDN Controller (Bộ điều khiển trung tâm) vào cuộc chơi. Controller đóng vai trò "đầu não", điều khiển gom cả phần cứng lẫn phần mềm về một mối để quản lý tập trung. Lúc này, chúng ta không cấu hình rời rạc nữa.
Để trả lời câu hỏi: “Làm sao để phần mềm có thể giao tiếp với hạ tầng?”, câu trả lời duy nhất chính là API. API chính là cầu nối giúp xóa bỏ khoảng cách giữa phần cứng mạng và mã nguồn.
- Biến hạ tầng thành Code (Infrastructure as Code): Thay vì một kỹ sư ngồi gõ lệnh, giờ đây chúng ta dùng ngôn ngữ lập trình (như Python) để "gọi API" của hệ thống. Viết một đoạn script, nhấn Enter và toàn bộ hệ thống được cấu hình tự động chỉ trong vài giây.
- Chuẩn hóa giao tiếp (Device API): Mỗi hãng thiết bị (Cisco, Juniper, Aruba,...) có một tập lệnh CLI khác nhau, khiến người quản trị rất đau đầu. Nhưng khi chuyển sang dùng API, các thiết bị sẽ nói chung một "ngôn ngữ" thông qua các giao thức chuẩn hóa như Netconf, Restconf, hay GNMI.
- Bài toán Giám sát & Cấu hình: Trước đây chúng ta hay dùng SNMP để giám sát hệ thống. Nhưng SNMP chỉ mạnh về đọc dữ liệu (Read), còn dùng để thay đổi cấu hình (Write) thì cực kỳ hạn chế và bảo mật kém. Các Device API thế hệ mới (Restconf/Netconf) ra đời để giải quyết triệt để cả hai vế: vừa cấu hình chuẩn xác, vừa giám sát theo thời gian thực (Telemetry).
Khi tiếp cận với lập trình mạng, chúng ta sẽ thấy API được phân loại rất rõ ràng theo kiến trúc để phục vụ từng mục đích cụ thể:
- API truy cập thiết bị (Southbound API): API kết nối từ Controller xuống trực tiếp các thiết bị phần cứng (như Netconf, Restconf) để đẩy cấu hình xuống hạ tầng.
- API đến Controller (Northbound API): API giúp các ứng dụng, phần mềm bên ngoài hoặc chính script Python của bạn giao tiếp và ra lệnh cho bộ điều khiển trung tâm.
- API đến Dashboard: API chịu trách nhiệm truyền tải dữ liệu từ hệ thống lên các màn hình giám sát trực quan (Dashboard), giúp người quản trị có cái nhìn toàn diện về "sức khỏe" của mạng lưới.
Sự chuyển dịch từ CLI sang API chính là bước tiến từ Quản trị bằng tay sang Tự động hóa (Automation). Nó giải phóng người kỹ sư khỏi những tác vụ lặp đi lặp lại nhàm chán, giảm thiểu rủi ro cho hệ thống và giúp hạ tầng mạng linh hoạt không kém gì hạ tầng Cloud.