API Gateway là máy chủ trung gian đứng giữa client và toàn bộ microservices (các dịch vụ nhỏ, độc lập hợp thành hệ thống) phía sau. Nó tiếp nhận mọi request tại một địa chỉ duy nhất, rồi định tuyến, xác thực và áp chính sách chung trước khi chuyển tới đúng service. Nhưng câu hỏi đáng hỏi không phải “API Gateway có tốt không”. Bởi vì thêm gateway đồng nghĩa thêm một điểm lỗi tập trung, thêm độ trễ, thêm một thành phần phải vận hành.
Câu hỏi đúng là hệ thống của bạn đã đủ phức tạp để việc không có cổng vào tập trung còn tốn kém hơn việc phải gánh những chi phí đó chưa. Bài này giải thích API Gateway khác Load Balancer và Reverse Proxy ở đâu, đảm nhiệm những chức năng nào, và quan trọng nhất: ngưỡng cụ thể nào cho thấy hệ thống thực sự cần nó thay vì thêm cho chắc.
Contents
Nói ngắn gọn, API Gateway đóng vai trò cổng vào duy nhất giữa client và tập hợp microservices phía sau. Nó xử lý các tác vụ dùng chung như xác thực, định tuyến, giới hạn tần suất, rồi mới chuyển request tới đúng service.
Hình dung lại tình huống quen thuộc: một hệ thống thương mại điện tử tách thành nhiều service riêng: Đơn hàng, Thanh toán, Kho, Người dùng. Nếu không có gateway, ứng dụng mobile hoặc web phải biết địa chỉ và gọi riêng từng service. Code phía client rối dần theo thời gian, và mỗi lần thêm một service mới lại là một lần phải sửa phía client. Với API Gateway, ứng dụng chỉ gọi một địa chỉ duy nhất. Gateway lo phần định tuyến còn lại.
Khác biệt cốt lõi nằm ở mức độ “hiểu” nghiệp vụ, không phải ở việc ai đứng trước ai trong luồng request. Đây là điểm dễ nhầm nhất với người mới làm quen với kiến trúc microservices. Bảng dưới đây so sánh ba thành phần theo mức độ hiểu nghiệp vụ, layer hoạt động và bối cảnh sử dụng:
|
Thành phần |
Nhiệm vụ chính |
Có hiểu nghiệp vụ không |
Layer hoạt động |
Khi nào dùng riêng |
|
Reverse Proxy |
Chuyển tiếp request tới đúng server, ẩn backend |
Không |
L7 (tầng ứng dụng) |
Bạn cần ẩn hạ tầng, cache tĩnh, chưa cần logic API |
|
Load Balancer |
Phân phối tải giữa nhiều instance của CÙNG một service |
Không |
L4 (tầng vận chuyển) hoặc L7 |
Bạn có một service cần scale ngang, chưa có nhiều service khác nhau |
|
API Gateway |
Định tuyến theo endpoint/version, áp policy riêng từng service, gộp cả hai vai trò trên |
Có |
L7 |
Bạn có nhiều service khác nhau, nhiều loại client, cần chính sách chung |
Reverse proxy (một dạng máy chủ proxy đứng giữa client và server) chuyển tiếp request tới đúng server nhưng không quan tâm request đó gọi API nào, thuộc nghiệp vụ gì. Load balancer phân phối tải giữa nhiều instance của cùng một service để tránh quá tải, nhưng cũng không phân biệt được endpoint hay phiên bản API. API Gateway bao gồm cả hai khả năng đó, cộng thêm nhận thức ngữ cảnh API: route theo endpoint, theo version, áp policy riêng cho từng service phía sau. Nói cách khác, API Gateway hoạt động như một reverse proxy được mở rộng thêm cho kiến trúc microservices, theo mô tả so sánh của ByteByteGo.
Trong hệ thống thực tế, ba thành phần này thường đứng cạnh nhau chứ không loại trừ nhau: API Gateway route theo nghiệp vụ, đứng trước một load balancer phân phối tải cho từng service, còn reverse proxy có thể vẫn đảm nhiệm việc cache nội dung tĩnh ở lớp ngoài cùng.
Một request đi qua bốn chặng theo thứ tự cố định:

Bước API composition đáng chú ý nhất vì đây là nơi gateway tạo giá trị vượt ngoài việc chuyển tiếp thuần túy. Gộp nhiều lời gọi API thành một response duy nhất giúp giảm đáng kể thời gian tải trang, đặc biệt trên mạng di động. Lý do là mỗi vòng round-trip (một lượt gửi request và nhận phản hồi) trên mạng di động đều cộng dồn độ trễ, theo phân tích của Oso.
Bảng dưới đây tóm tắt các chức năng cốt lõi mà một API Gateway đảm nhiệm:
|
Chức năng |
Mô tả ngắn |
Ví dụ |
|
Routing |
Định tuyến request theo URL và method tới đúng service |
/orders vào service Đơn hàng, /payments vào service Thanh toán |
|
Rate limiting |
Giới hạn số request mỗi client trong một khoảng thời gian, chống quá tải |
Giới hạn 100 request/phút cho mỗi API key |
|
Caching |
Lưu tạm response để giảm tải cho backend |
Cache kết quả tra cứu danh mục sản phẩm ít thay đổi |
|
Load balancing |
Phân phối request tới nhiều instance của cùng service |
Chia đều traffic cho 3 instance của service Kho |
|
Protocol translation |
Chuyển đổi giữa các giao thức khác nhau |
Client gọi REST, gateway chuyển thành gRPC nội bộ |
|
Logging & monitoring |
Theo dõi traffic và thời gian phản hồi tập trung |
Ghi log mọi request kèm latency để phát hiện service chậm |
Từng chức năng riêng lẻ trong bảng trên không có gì mới: reverse proxy cũng cache được, load balancer cũng phân phối tải được. Giá trị thật nằm ở việc gộp toàn bộ các mối quan tâm dùng chung này vào một điểm cấu hình duy nhất, thay vì lặp lại rải rác ở từng service.
Trong số các chức năng ở bảng trên, xác thực và phân quyền tập trung quan trọng hơn vẻ ngoài của nó. Đây là chức năng mà hầu hết tài liệu về API Gateway đều liệt kê. Nhưng ít nơi giải thích rõ tại sao nó thường là lý do chính khiến một đội kỹ thuật quyết định thêm gateway.
Nếu không có gateway, mỗi service phải tự cài đặt xác thực riêng: kiểm tra JWT (JSON Web Token, một chuỗi mã hóa dùng để xác thực danh tính), xử lý OAuth2 (giao thức ủy quyền chuẩn), hoặc validate API Key (khóa định danh cho từng ứng dụng gọi API). Việc này vừa lặp code giữa các service, vừa tạo rủi ro thật. Chỉ cần một service mới được thêm vào mà đội phát triển quên implement đúng bước xác thực, service đó trở thành lỗ hổng cho toàn hệ thống. Rủi ro không nằm ở việc thiếu tài liệu, mà ở chỗ mỗi service có thể tự làm sai mà không ai biết.
Gateway giải quyết vấn đề bằng cách xác thực một lần duy nhất tại cổng vào. Các service phía sau tin tưởng rằng request đã qua kiểm tra, nên không cần tự triển khai lại toàn bộ logic xác thực. Cách làm này giảm cả rủi ro bảo mật lẫn khối lượng code trùng lặp. Đổi lại, nó tạo ra một giả định ngầm quan trọng: mọi service phía sau phải tin gateway tuyệt đối. Nếu gateway bị qua mặt, toàn bộ lớp phòng thủ tập trung đó sụp đổ theo.
Lợi ích chính của API Gateway đến từ việc tách bạch hai phía. Phía client chỉ cần biết một địa chỉ duy nhất, còn phía backend được tự do tái cấu trúc, tách hoặc gộp service mà không phá vỡ hợp đồng với client. Các mối quan tâm dùng chung như bảo mật hay giám sát chỉ cần cấu hình một lần tại gateway, thay vì lặp lại ở từng service (nhóm nhu cầu này thường được gọi là cross-cutting concerns).

Nhưng mọi lợi ích ở trên đều có giá. Gateway giảm độ phức tạp phía client như đã nói ở phần định nghĩa, nhưng đổi lại tăng độ phức tạp phía vận hành hạ tầng. Đây là hai loại phức tạp khác nhau, cái này không thay thế được cái kia. Ba đánh đổi sau không phải rủi ro lý thuyết, mà là chi phí vận hành thật mà một đội kỹ thuật phải chủ động xử lý:
Có hai cách giảm nhẹ rủi ro điểm lỗi tập trung:

Ba tín hiệu sau cho thấy hệ thống của bạn đã chạm ngưỡng nên cân nhắc thêm API Gateway:
Ngược lại, ba dấu hiệu sau cho thấy thêm gateway lúc này là chi phí vận hành thừa, không phải một khoản đầu tư đúng lúc:
Nếu rơi vào trường hợp thứ ba, hãy bắt đầu bằng một reverse proxy đơn giản. Chỉ nâng cấp lên API Gateway đầy đủ khi hệ thống thực sự chạm một trong ba ngưỡng ở phần trên. Bởi vì nâng cấp sớm hơn mức cần thiết đồng nghĩa gánh toàn bộ đánh đổi ở phần trước mà chưa thu được lợi ích tương xứng.
Bảng dưới đây so sánh hai hướng triển khai theo bốn tiêu chí quyết định: tự vận hành gateway trên hạ tầng của bạn (self-host) so với dùng dịch vụ gateway do nhà cung cấp cloud quản lý sẵn (managed cloud):
|
Tiêu chí |
Self-host |
Managed cloud |
|
Chi phí vận hành |
Chủ yếu là hạ tầng cộng nhân sự vận hành, cố định theo hạ tầng |
Trả phí theo request, tăng tuyến tính theo traffic |
|
Mức độ kiểm soát |
Toàn quyền cấu hình, plugin, phiên bản |
Giới hạn trong khả năng nhà cung cấp hỗ trợ |
|
Độ phức tạp setup |
Cao hơn, cần đội có kinh nghiệm DevOps |
Thấp hơn, dựng nhanh, nhà cung cấp vận hành và vá lỗi |
|
Rủi ro vendor lock-in |
Thấp |
Cao hơn, đặc biệt khi tích hợp sâu vào hệ sinh thái một cloud |

Kong Gateway bản mã nguồn mở miễn phí về bản quyền, nhưng chi phí thật nằm ở đội ngũ vận hành, vá lỗi và scale hạ tầng. AWS API Gateway theo mô hình serverless, tính phí khoảng 1 đến 3,5 USD mỗi triệu request tùy loại (HTTP API hoặc REST API), không có chi phí cố định ban đầu, theo bảng giá chính thức của AWS. Ở quy mô nhỏ, managed cloud thường rẻ hơn vì bạn không phải trả cho hạ tầng nhàn rỗi. Ngược lại, theo kinh nghiệm chung trong ngành, khi traffic vượt ngưỡng vài chục triệu request mỗi tháng, chi phí theo request thường bắt đầu vượt chi phí hạ tầng cố định của self-host. Ngưỡng chính xác vẫn phụ thuộc vào loại API và cấu hình hạ tầng của từng hệ thống.
Nói ngắn gọn: self-host phù hợp nếu đội của bạn đã có kinh nghiệm DevOps và cần toàn quyền kiểm soát cấu hình. Self-host cũng hợp lý khi traffic của bạn đủ lớn để chi phí hạ tầng cố định rẻ hơn phí theo request. Managed cloud phù hợp nếu bạn cần dựng nhanh và traffic còn nhỏ đến vừa. Managed cloud cũng hợp lý khi bạn chấp nhận đánh đổi một phần kiểm soát lẫn rủi ro vendor lock-in để giảm gánh nặng vận hành.
Nếu chọn hướng self-host, gateway cần chạy trên một server luôn bật và ổn định, tách biệt khỏi các service backend để tránh cạnh tranh tài nguyên. Kong hay Nginx Gateway thường được triển khai trên một VPS hoặc Cloud Server riêng cho đúng mục đích này.
Câu hỏi đúng không phải “có nên dùng API Gateway” mà là “hệ thống đã tới ngưỡng cần một cổng vào tập trung chưa”. Câu trả lời phụ thuộc vào ba yếu tố đã nêu ở phần trước: số lượng service, số loại client, và nhu cầu áp chính sách chung. Trả lời sai câu hỏi này theo hướng “thêm cho chắc” nghĩa là bạn gánh cả ba đánh đổi (điểm lỗi tập trung, độ trễ, chi phí vận hành) mà không thu lại lợi ích tương xứng.
Một biến thể đáng biết tiếp theo là Backend for Frontend (BFF). Khi hệ thống có nhiều loại client (web, mobile) với nhu cầu dữ liệu khác nhau, một gateway chung đôi khi không tối ưu cho cả hai: mobile cần response gọn nhẹ, web có thể cần dữ liệu chi tiết hơn. BFF là biến thể tạo một gateway riêng cho từng loại client, thay vì ép tất cả dùng chung một cấu hình.

Dù bạn chọn API Gateway thuần hay biến thể BFF, nếu đang thử nghiệm triển khai Kong hoặc Nginx Gateway theo hướng self-host, gateway cần một nơi chạy ổn định, tách biệt khỏi service backend, trước khi bạn quyết định đầu tư dài hạn cho hạ tầng đó. Cloud VPS của Tenten.vn hỗ trợ cấu hình linh hoạt theo tải và tính phí theo giờ. Bạn có thể dùng nó để chạy thử nghiệm cấu hình gateway ở quy mô nhỏ, trước khi mở rộng theo tải thật.
Không. Load Balancer chỉ phân phối tải giữa nhiều instance của cùng một service, không hiểu ngữ cảnh API. API Gateway hiểu route, version và áp policy riêng cho từng service, nên có thể xem là vai trò rộng hơn bao gồm cả năng lực phân phối tải.
Thường là chưa cần. Nếu hệ thống còn monolithic hoặc chỉ vài service với một loại client duy nhất, thêm gateway là chi phí vận hành thừa. Hãy bắt đầu bằng reverse proxy đơn giản và chỉ nâng cấp khi chạm ngưỡng nêu ở phần trên.
Có, vì mọi request đi qua thêm một chặng mạng. Nhưng độ trễ này thường nhỏ hơn tác động của việc client gọi trực tiếp nhiều service, và có thể giảm thêm bằng caching hoặc scale gateway đúng cách.
Tùy quy mô đội và mức độ bạn cần kiểm soát. Nếu đội của bạn đã có kinh nghiệm DevOps và cần toàn quyền cấu hình, hãy chọn self-host; nếu bạn cần dựng nhanh và chấp nhận trả phí theo request, hãy chọn managed cloud như AWS API Gateway.
Không hoàn toàn. Gateway có thể xử lý xác thực tập trung tại cổng vào, nhưng vẫn cần một hệ thống quản lý người dùng (Authentication Service) riêng để lưu trữ danh tính và cấp token.
BFF là một gateway chuyên biệt, dựng riêng cho từng loại client (web, mobile), không phải khái niệm thay thế API Gateway. Nhiều hệ thống dùng cả hai: một BFF cho mỗi loại client, đứng trước một API Gateway chung ở lớp sâu hơn.