Nhắc đến dân Network, hình ảnh quen thuộc nhất có lẽ là sợi cáp Console màu xanh huyền thoại và những đêm cặm cụi gõ từng dòng lệnh qua màn hình đen ngòm của PuTTY (SSH/Telnet).
Để giám sát, chúng ta lại dựa dẫm vào SNMP. Nhưng hãy tự hỏi: Khi chúng ta dùng SNMP hay gõ từng dòng CLI, chúng ta có thực sự đang quản lý một hệ thống mạng lớn một cách linh hoạt và tối ưu thời gian?
Thực tế là hạ tầng hiện nay không chỉ có Switch/Router vật lý, mà còn là sự bùng nổ của máy ảo (VM), Docker và đặc biệt là kiến trúc SDN (Software-Defined Networking). Quản trị mạng hiện đại đang dịch chuyển mạnh mẽ từ "cấu hình thủ công" sang "lập trình mạng" (Network Programmability). Và chìa khóa tối thượng kết nối mọi thành phần để tự động hóa hệ thống chính là: API (Application Programming Interface).
Vậy API thực chất là gì, có mấy loại và nó "ăn nhập" thế nào vào quy trình vận hành hạ tầng của chúng ta? Cùng mình tóm tắt và bóc tách ngay dưới đây nhé!
1. API là gì? Hiểu đơn giản qua các ví dụ thực tế
API là một phần mềm trung gian, cho phép các ứng dụng khác nhau giao tiếp, trao đổi dữ liệu và dịch vụ với nhau thông qua một tập hợp các quy tắc định sẵn.
Trong thế giới phần mềm, API thường được chia làm 3 nhóm chính dựa trên quyền truy cập:
Khi giao tiếp qua Internet, các hệ thống thường tuân theo 4 loại kiến trúc/giao thức Web Service phổ biến:
Quay trở lại với câu chuyện hạ tầng của chúng ta. Trong mô hình SDN, API đóng vai trò huyết mạch kết nối phần mềm (ngôn ngữ lập trình như Python) với hạ tầng vật lý/ảo hóa, được phân loại theo các cấp độ:
Để giám sát, chúng ta lại dựa dẫm vào SNMP. Nhưng hãy tự hỏi: Khi chúng ta dùng SNMP hay gõ từng dòng CLI, chúng ta có thực sự đang quản lý một hệ thống mạng lớn một cách linh hoạt và tối ưu thời gian?
Thực tế là hạ tầng hiện nay không chỉ có Switch/Router vật lý, mà còn là sự bùng nổ của máy ảo (VM), Docker và đặc biệt là kiến trúc SDN (Software-Defined Networking). Quản trị mạng hiện đại đang dịch chuyển mạnh mẽ từ "cấu hình thủ công" sang "lập trình mạng" (Network Programmability). Và chìa khóa tối thượng kết nối mọi thành phần để tự động hóa hệ thống chính là: API (Application Programming Interface).
Vậy API thực chất là gì, có mấy loại và nó "ăn nhập" thế nào vào quy trình vận hành hạ tầng của chúng ta? Cùng mình tóm tắt và bóc tách ngay dưới đây nhé!
1. API là gì? Hiểu đơn giản qua các ví dụ thực tế
API là một phần mềm trung gian, cho phép các ứng dụng khác nhau giao tiếp, trao đổi dữ liệu và dịch vụ với nhau thông qua một tập hợp các quy tắc định sẵn.
- Ví dụ 1 (Người phục vụ nhà hàng): Bạn (người dùng) gọi món từ thực đơn. Người phục vụ (API) sẽ nhận yêu cầu của bạn, chuyển nó vào nhà bếp (Server/Hệ thống), và sau đó mang món ăn (Dữ liệu trả về - Response) ra cho bạn.
- Ví dụ 2 (Đặt vé máy bay): Khi bạn dùng các trang web du lịch bên thứ ba để tìm vé, trang web đó sẽ dùng API do các hãng hàng không cung cấp để truy xuất thẳng vào cơ sở dữ liệu của từng hãng. Nhờ lệnh gọi API (API request), trang web tổng hợp được toàn bộ chuyến bay và hiển thị lên màn hình cho bạn.
Trong thế giới phần mềm, API thường được chia làm 3 nhóm chính dựa trên quyền truy cập:
- API mở (Open APIs / Public APIs): Khả dụng công khai. Tuy nhiên, nhà cung cấp thường yêu cầu một khóa (API Key) hoặc Token để kiểm soát lưu lượng truy cập.
- API nội bộ (Internal APIs): Được sử dụng cục bộ trong nội bộ một tổ chức/doanh nghiệp để liên kết các dịch vụ và dữ liệu của riêng họ.
- API cho đối tác (Partner APIs): Dành riêng cho các đối tác kinh doanh được cấp phép, giúp tạo thuận lợi cho việc tích hợp hệ thống giữa hai bên.
Khi giao tiếp qua Internet, các hệ thống thường tuân theo 4 loại kiến trúc/giao thức Web Service phổ biến:
- REST (Representational State Transfer): Kiến trúc phổ biến nhất hiện nay. Tập trung vào dữ liệu, vận hành qua các tài nguyên đơn giản, linh hoạt và tốn ít băng thông. Cho phép các Developer đưa ra khuyến nghị dễ dàng.
- SOAP (Simple Object Access Protocol): Giao thức sử dụng XML, tuân thủ các quy tắc bảo mật rất nghiêm ngặt, được điều khiển bởi các hàm (function-driven) nhưng lại đòi hỏi nhiều băng thông hơn REST.
- XML-RPC: Sử dụng định dạng chung XML để truyền dữ liệu. Đơn giản và tối ưu băng thông hơn SOAP. XML mạnh về cấu trúc tài liệu (Document) và có bảo mật tốt.
- JSON-RPC: Tương tự XML-RPC nhưng dùng định dạng JSON. Cực kỳ nhẹ, tập trung chủ yếu vào dữ liệu (Data) dạng text/number, dù bảo mật không cao bằng XML.
Quay trở lại với câu chuyện hạ tầng của chúng ta. Trong mô hình SDN, API đóng vai trò huyết mạch kết nối phần mềm (ngôn ngữ lập trình như Python) với hạ tầng vật lý/ảo hóa, được phân loại theo các cấp độ:
- API truy cập thiết bị (Device API - Southbound API): Thay vì gõ lệnh CLI hay dùng SNMP, Controller hoặc các Script tự động hóa sẽ gọi API trực tiếp xuống thiết bị mạng. Các giao thức tiêu biểu thay thế CLI hiện nay là NETCONF, RESTCONF, và GNMI.
- API giao tiếp với Controller (Northbound API): Dành cho việc các ứng dụng quản lý bên trên giao tiếp với SDN Controller để ra lệnh định tuyến, cấu hình tự động.
- API hiển thị Dashboard: Lấy dữ liệu từ hệ thống để trực quan hóa lên các bảng điều khiển giám sát tổng quan.