API Gateway là gì và nó mang đến những lợi ích như thế nào khi sử dụng? Hãy cùng khám phá chi tiết thông qua bài viết này ngay nhé!
API Gateway là gì?
Ở trên thực tế, trung bình một hệ thống microservice có từ vài cho tới hàng trăm service khác nhau.
Và sẽ thật “lộn xộn” nếu như client giao tiếp đến hệ thống mà không có sự trợ giúp của một phương thức hỗ trợ nào cả.
Đây cũng chính là lý do mà API Gateway xuất hiện như một giải pháp trung gian, kết nối client và hệ thống microservice ở phía sau.
Có thể ví API Gateway như một cánh cổng, nơi duy nhất dẫn vào hệ thống microservice.
Vai trò của API Gateway là nhận các yêu cầu đến từ phía client.
Sau đó, thực hiện việc chỉnh sửa - xác thực - điều hướng chúng tới những API phù hợp trên các services phía sau.
Bên cạnh nhiệm vụ chính là proxy request, hệ thống API Gateway cũng thường đảm nhận luôn một vài vai trò khác như bảo mật API, monitoring, thống kê số lượng yêu cầu cũng như tình trạng của hệ thống.
Lợi ích khi sử dụng API Gateway
Không làm lộ cơ cấu của hệ thống microservice với bên ngoài
API Gateway giúp client tương tác với hệ thống microservice nhưng không cần phải gọi trực tiếp đến một service cụ thể nào đó.
Lúc này, các endpoint của những service đó sẽ chỉ được gọi nội bộ.
Chính vì vậy, client sẽ không thể hiểu được những service phía backend được phân chia ra sao.
Bên cạnh đó, việc refactor code frontend cũng trở nên đơn giản hơn với lập trình viên.
Code phía frontend sẽ gọn gàng hơn
Vì tất cả chỉ việc gọi đến API Gateway và không phải tracking nhiều endpoint trên từng service một, nên phần code frontend lúc này trông sẽ gọn gàng hơn, đặc biệt là khi hệ thống ngày càng phình to ra.
Theo dõi và quản lý lưu lượng dữ liệu dễ dàng
Có thể nhận xét, phần lớn các hệ thống API Gateway phổ biến hiện nay đều đi kèm với các tính năng theo dõi - quan sát - quản lý lượng traffic thông qua GUI.
Hoặc đôi khi những tính năng này sẽ được thực hiện thông qua các API của hệ thống Gateway.
Request caching
API Gateway sẽ kiêm luôn vai trò load balancer của hệ thống.
Do vậy, request sẽ không được gửi trực tiếp đến backend, giúp giảm bớt rủi ro bị quá tải hệ thống.
Có thêm một lớp bảo mật hệ thống
Sử dụng API Gateway giúp tăng cường thêm một lớp bảo vệ cho hệ thống.
Qua đó, ngăn chặn hiệu quả các cuộc tấn công thường gặp như DDoS, SQL injection...
Có khả năng thay thế authentication service
API Gateway thường cung cấp rất nhiều cơ chế xác thực.
Chúng ta có thể ứng dụng nó để xác thực người dùng, giúp tiết kiệm thời gian và khiến cho hệ thống trở nên đơn giản hơn.
Một số hạn chế của API Gateway
Làm tăng thời gian phản hồi
Vì phải trải qua bước server trung gian, nên việc phản hồi sẽ bị chậm hơn so với khi gọi trực tiếp đến hệ thống.
Gia tăng tác nhân gây lỗi
Nếu muốn sử dụng API Gateway thì chúng ta cần phải thực hiện rất nhiều công việc như config, thay code, quản lý server...
Vấn đề trên khiến cho chúng ta có thêm nhiều việc phải lo và trong trường hợp không may, khi Gateway có lỗi thì request cũng sẽ chẳng thể tới được phía server.
Làm chậm hệ thống
Nếu không được scale hoặc config hợp lý, thì Gateway có khả năng bị quá tải và làm chậm hệ thống.
Gia tăng nhiều chi phí
Khi sử dụng API Gateway, chúng ta có thêm nhiều chi phí cần phải lo hơn như server, điện, quản lý hệ thống...
Với các hệ thống “khủng”, chúng ta cần phải chi trả thêm cho việc mua bản enterpise của các API Gateway.