API Gateway là một trong những loại API phổ biến và được sử dụng rộng rãi trong phát triển ứng dụng hiện đại. Vậy API Gateway là gì và mang lại những lợi ích cụ thể nào? Mời các bạn cùng theo dõi bài viết dưới đây.
API Gateway là gì?
API Gateway là một công cụ quản lý API nằm giữa các client (máy khách) và các backend service. Có thể xem API Gateway như một cánh cổng trung gian, đồng thời là cổng vào duy nhất tới hệ thống microservice.
API Gateway chấp nhận tất cả request và lệnh call API từ client. Sau đó api Gateway sẽ chỉnh sửa, xác thực, điều hướng chúng đến các microservice phía sau và tìm nạp, tổng hợp tài nguyên thích hợp để gửi phản hồi cho các request. Thông thường, API Gateway xử lý một request bằng cách gọi nhiều microservice và tổng hợp lại để xác định đường dẫn tốt nhất.
API Gateway là gì? (Nguồn: Internet) |
Các trang web thương mại điện tử có thể sử dụng API Gateway cung cấp cho các client di động một endpoint nhằm truy xuất tất cả chi tiết của một sản phẩm chỉ với một request. API Gateway sẽ gọi cho nhiều service khác nhau, như thông tin và đánh giá sản phẩm, sau đó tổng hợp kết quả.
Vai trò của API Gateway
Một hệ thống microservice thông thường sẽ có từ một vài cho đến hàng trăm service khác nhau. Nếu như các client trực tiếp giao tiếp với những service này thì sơ đồ giao tiếp giữa client với hệ thống sẽ rối như mớ bòng bong.
Do đó, API Gateway đã xuất hiện như một giải pháp giải quyết những rắc rối ở trên. Vai trò của API Gateway đó là một cánh cổng trung gian giữa client và hệ thống microservice, giúp cho sơ đồ hệ thống đơn giản và hiệu quả hơn rất nhiều.
Sơ đồ hệ thống đơn giản hơn rất nhiều khi có API Key (Nguồn: Internet) |
Chức năng của API Gateway
API Gateway thực hiện một loạt chức năng quản lý và bảo vệ như:
Xác thực và ủy quyền: API Gateway có thể xác thực tất cả lệnh call API thông qua cơ chế giống như các token xác thực. Tổ chức cũng có thể tùy chỉnh cấu hình API Gateway để giới hạn quyền truy cập của người dùng và ứng dụng.
Rate limiting và traffic analysis: API Gateway có thể điều chỉnh những request API để ngăn chặn việc backend service bị quá tải.
Duy trì cấu hình và thực thi WAF: API Gateway có thể duy trì cấu hình chính sách WAF để bảo vệ API instance và các endpoint khỏi những cuộc tấn công.
Điều hướng và tối ưu hóa: API Gateway có khả năng cân bằng và chuyển tải nội dung, giúp cho người dùng có thể đảm bảo lệnh call API sẽ chuyển tới những điểm đến tốt nhất.
Quản lý chính sách rewrite và phản hồi: Các biểu thức chính sách có thể được dùng để chuyển đổi HTTP transaction khi chúng đi qua API Gateway. Thông qua những chính sách rewrite và phản hồi, yêu cầu từ người dùng sẽ được điều hướng hiệu quả đến các trang đích tối ưu.
Ưu điểm của API Gateway
1. Có thể che giấu cấu trúc của hệ thống microservices với bên ngoài
Các clients tương tác với hệ thống thông qua API Gateway thay vì gọi trực tiếp đến một service cụ thể. Các endpoint của các service chỉ được gọi nội bộ, tức là giữa service với service hoặc được gọi từ API Gateway. Người dùng sẽ gọi những API này thông qua public endpoint từ API Gateway.
Chính vì thế nên các client sẽ không biết được những service bên backend được phân chia như thế nào, từ đó lập trình viên cũng dễ dàng refactor code frontend hơn.
2. Phần code phía frontend gọn gàng hơn
Phần code frontend sẽ gọn gàng hơn nhờ vào việc chỉ cần gọi đến API Gateway thay vì tracking rất nhiều endpoint trên từng service.
3. Dễ dàng theo dõi và quản lý traffic
Các hệ thống API Gateway hiện nay hầu hết đều kèm theo tính năng theo dõi và quản lý traffic thông qua GUI hoặc chính các API của hệ thống Gateway.
4. Requests caching và cân bằng tải
API Gateway còn một vai trò khác nữa đó chính là load balancer của hệ thống. Các request sẽ không được gửi trực tiếp đến backend nên rủi ro hệ thống bị quá tải sẽ được giảm thiểu.
5. Bổ sung thêm một lớp bảo mật cho hệ thống
API Gateway có thể hỗ trợ ngăn chặn các cuộc tấn công bằng cách thêm một lớp bảo vệ các loại tấn công như DDoS, SQL Injections,...
API Gateway thêm 1 lớp bảo mật cho hệ thống (Nguồn: Internet) |
6. Thay thế authentication service
API Gateway cung cấp nhiều cơ chế hỗ trợ xác thực người dùng giúp tiết kiệm thời gian và làm cho hệ thống trở nên đơn giản hơn.
Nhược điểm của API Gateway
1. Tăng thời gian response
Vì response phải đi qua các server trung gian nên việc phản hồi sẽ bị trễ hơn so với trực tiếp gọi đến hệ thống.
2. Thêm tác nhân gây lỗi
Muốn sử dụng được API Gateway, người dùng sẽ cần phải config, chỉnh sửa code, quản lý server gateway,... Trong trường hợp chẳng may gateway gặp lỗi thì các request sẽ không thể đến được phía server.
3. Có thể gây tắt nghẽn
Hệ thống gateway nếu như không được config hay scale hợp lý thì rất có khả năng sẽ bị quá tải và ảnh hưởng, làm chậm toàn bộ hệ thống.
4. Tốn thêm tiền
API Gateway đòi hỏi các tổ chức cần phải bỏ ra rất nhiều khoản chi phí như tiền server, tiền quản lý hệ thống API Gateway,... Đặc biệt, với các hệ thống lớn cần những tính năng “xịn” thì bạn sẽ phải trả thêm tiền mua bản Enterprise của các API Gateway.
Nguồn: API Gateway là gì? 6 lợi ích của API Gateway đối với một hệ thống microservice
Nhận xét
Đăng nhận xét