Một hệ thống microservices thông thường sẽ bao gồm từ một vài đến hàng trăm dịch vụ khác nhau. Nếu client tương tác trực tiếp với các dịch vụ này, sẽ dẫn đến một sơ đồ giao tiếp rối rắm và không có trật tự. Đây là lý do tại sao chúng ta cần một giải pháp gọi là API Gateway (cổng kết nối API) – một cái cổng trung gian để kết nối client với hệ thống microservices phía sau.
API Gateway có thể được coi như một cổng trung gian, đại diện cho cổng vào duy nhất để tương tác với hệ thống microservices của chúng ta. API Gateway nhận các yêu cầu từ client, chỉnh sửa, xác thực và điều hướng chúng đến các API cụ thể trên các dịch vụ phía sau. Điều này sẽ tạo ra một sơ đồ hệ thống có trật tự hơn.
API Gateway không chỉ đóng vai trò proxy yêu cầu, mà còn đảm nhận một số vai trò khác như bảo mật API, giám sát và phân tích số lượng yêu cầu cũng như tình trạng của hệ thống phía sau.
Che dấu cấu trúc hệ thống microservices với bên ngoài
Khi sử dụng API Gateway, client sẽ tương tác với hệ thống thông qua cổng này thay vì gọi trực tiếp các dịch vụ cụ thể. Các endpoint của các dịch vụ chỉ được gọi nội bộ, có nghĩa là gọi giữa các dịch vụ hoặc từ API Gateway. Người dùng sẽ gọi các API thông qua các endpoint công khai từ API Gateway. Điều này giúp client không cần phải và không thể biết được cách các dịch vụ phía backend được phân chia như thế nào. Ngoài ra, việc sửa đổi mã nguồn phía frontend cũng dễ dàng hơn cho lập trình viên.
Phần mã nguồn phía frontend trở nên gọn gàng hơn
Bởi vì không cần theo dõi nhiều endpoint, chỉ cần gọi đến API Gateway, phần mã nguồn phía frontend sẽ trở nên gọn gàng hơn so với việc phải theo dõi hàng tá endpoint trên từng dịch vụ một, đặc biệt là khi hệ thống ngày càng phình to ra.
Dễ dàng theo dõi và quản lý lưu lượng
Hầu hết các API Gateway hiện nay đều có tính năng giám sát và quản lý lưu lượng thông qua giao diện người dùng hoặc các API của chính hệ thống Gateway. Ví dụ như Kong (phiên bản Enterprise) có thể cung cấp các tính năng như sau:
Caching yêu cầu và cân bằng tải
API Gateway cũng đóng vai trò bộ cân bằng tải của hệ thống. Yêu cầu không được gửi trực tiếp đến backend, từ đó giảm thiểu rủi ro quá tải hệ thống.
Bảo mật hệ thống tốt hơn
API Gateway giúp 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ệ chống lại các loại tấn công như ddos, slq injections,…
Thay thế dịch vụ xác thực
API Gateway thường cung cấp nhiều cơ chế xác thực, giúp tiết kiệm thời gian và đơn giản hóa hệ thống. Ví dụ, một số cơ chế xác thực được hỗ trợ bởi Kong API Gateway như sau:
Và còn nhiều ưu điểm khác tùy thuộc vào từng loại API Gateway.
Nhược điểm của API Gateway
Mặc dù API Gateway mang lại nhiều lợi ích cho hệ thống microservices, nhưng cũng có một số nhược điểm cần lưu ý:
- Tăng thời gian phản hồi vì yêu cầu phải đi qua server trung gian
- Thêm một tác nhân có thể gây lỗi. Cấu hình và quản lý API Gateway cần đảm bảo không xảy ra lỗi, vì nếu có lỗi, yêu cầu sẽ không thể đến được backend.
- Khả năng gây nghẽn cổ chai nếu không được scale hay cấu hình đúng cách, API Gateway có thể bị quá tải và làm chậm hệ thống.
- Tốn kém về mặt tài chính, bao gồm chi phí server, chi phí điện và chi phí quản lý hệ thống API Gateway. Đối với hệ thống lớn cần các tính năng cao cấp, việc mua bản Enterprise của các API Gateway cũng là một khoản chi phí không nhỏ.
Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về API Gateway, cùng với ưu điểm và nhược điểm của nó. Đừng quên ghé thăm dnulib.edu.vn để tìm hiểu thêm nhiều kiến thức hữu ích.