API Gateway là gì? Cấu hình và tính năng của API Gateway

22/03/2023

API Gateway là gì? Cấu hình và tính năng của API Gateway

Nội dung

API Gateway là công cụ quản lý API, có thể coi là cổng trung gian giúp tổ chức dữ liệu một cách đơn giản, khoa học và tăng tính bảo mật. API Gateway được ứng dụng phổ biến trên nhiều dịch vụ nổi tiếng như Amazone, Netflix…

1. API Gateway là gì?

API là viết tắt của Application Program Interface - nghĩa là chứa tập hợp các công cụ để xây dựng các ứng dụng.

API Gateway là một công cụ trung gian, quản lý API giữa các máy khách (client) và nhóm các backend service. API Gateway chấp nhận tất cả các lệnh gọi API, tìm nạp và tổng hợp các tài nguyên thích hợp sau đó gửi phản hồi cho mỗi yêu cầu API.

Một hệ thống microservices có thể lên tới hàng trăm services khác nhau, nếu như các services giao tiếp trực tiếp với nhau thì luồng dữ liệu trở nên rối rắm, phức tạp. Chính vì thế nên cần một cổng kết nối làm trung gian giữa client và hệ thống microservices.

API Gateway là gì?

API Gateway là cổng trung gian kết nối giữa client và server

API nhận các requests từ phía 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 services phía sau. Ngoài là proxy request thì API Gateway thường sẽ đảm nhận luôn vài vai trò bảo mật API, monitoring, analytics số lượng requests cũng như tình trạng hệ thống.

Ví dụ: Netflix có sẵn trên hàng trăm loại thiết bị khác nhau như TV, điện thoại thông minh, máy tính bảng, laptop… Tại đây, Netflix API Gateway cung cấp giải pháp phù hợp với tất cả các dịch vụ của nó.

API Gateway nhận requests

API Gateway nhận requests và điều hướng đến services hợp lý

API Gateway bao gồm 7 thành phần chính như sau:

- Security - Bảo mật

- Caching - Bộ nhớ đệm

- Versioning - Lập phiên bản

- Routing - Định tuyến

- API composition and processing - Thành phần và tiến trình API

- Managing access quotas - Quản lý hạn mức truy cập

- API health monitoring - Theo dõi tình trạng API

2. Ưu và nhược điểm của API Gateway

Ưu điểm khi sử dụng API Gateway

Ưu điểm quan trọng nhất của API Gateway là nó đóng gói cấu trúc bên trong của ứng dụng, thay vì client yêu cầu một dịch vụ cụ thể thì sẽ giao tiếp với API Gateway - điều này giúp làm giảm số lượng các roundtrip giữa client và ứng dụng.

API Gateway làm đơn giản hóa mã nguồn phía các máy khách.

API Gateway khiến ứng dụng chạy hiệu quả, mượt mà, giảm lỗi.

Nhược điểm của API Gateway

Những hạn chế khi dùng API Gateway là:

Làm tăng thời gian response: Response bị trễ hơn so với gọi trực tiếp tới hệ thống vì phải đi qua server trung gian.

Để có thể dùng API Gateway thì người dùng cần phải config, chỉnh sửa code, quản lý server gateway,... Trong trường hợp gateway gặp phải sự cố thì request lúc này sẽ không thể đến được phía server.

Có thể gây ra tình trạng nghẽn cổ chai: Nếu không được config hay scale hợp lý, gateway có thể bị quá tải và làm chậm hệ thống.

Tốn thêm chi phí như tiền server, tiền điện, tiền quản lý hệ thống API Gateway, đặc biệt là khi hệ thống lớn, cần tính năng nâng cao.

3. Lợi ích khi sử dụng API Gateway

3.1 Che giấu được cấu trúc của hệ thống microservices với bên ngoài

Thay vì gọi trực tiếp tới một services cụ thể, các máy khách sẽ tương tác với hệ thống thông qua API Gateway, các endpoints của các services sẽ chỉ được gọi nội bộ giữa các services với nhau hoặc người dùng sẽ gọi các API thông qua các public endpoints từ API Gateway.

Vì thế client không không biết được các services phía backend được phân chia như thế nào.

3.2 Phần code frontend gọn gàng hơn

Vì không phải tracking nhiều endpoints trên từng services, tất cả chỉ việc gọi đến API Gateway nên phần code frontend sẽ gọn gàng hơn thay vì phải tracking hàng tá endpoints trên từng services, nhất là khi mà hệ thống ngày một đồ sộ.

Lợi ích khi sử dụng API Gateway

Dùng API Gateway khiến phần code gọn gàng hơn

3.3 Theo dõi và quản lý traffic dễ dàng hơn

Hầu hết các hệ thống API Gateway đều sẽ đi kèm tính năng theo dõi và quản lý lượng traffic thông qua GUI hoặc các APIs của hệ thống Gateway.

3.4 Cân bằng tải và Requests caching

API Gateway sẽ kiêm cả vai trò load balancer của hệ thống, requests sẽ không được gửi trực tiếp đến backend nên giảm thiểu rủi ro hệ thống bị quá tải.

3.5 Tăng bảo mật cho hệ thống

API Gateway tăng bảo mật bằng cách thêm một lớp bảo vệ ngăn chặn các cuộc tấn công như ddos, sql injections,...

3.6 Thay thế authentication services

API Gateway cung cấp nhiều cơ chế xác thực người dùng, giúp tiết kiệm thời gian, làm hệ thống đơn giản hơn.

4. Cách thức hoạt động của API Gateway

API Gateway thực hiện một loạt các chức năng quản lý và bảo vệ với cách hoạt động như sau:

Xác thực và ủy quyền: API Gateway xác thực tất cả các lệnh gọi API thông qua cơ chế như mã token và kiểm tra các JSON Web Token và cho phép các request. Cấu hình API Gateway có thể tùy chỉnh để giới hạn quyền truy cập của người dùng, ứng dụng.

Rate limiting và phân tích traffic: API Gateway có thể điều chỉnh các request để ngăn chặn các backend service quá tải bằng các biện pháp như giới hạn tần suất gửi yêu cầu và kích thước phản hồi, thiết lập chính sách phản hồi dựa trên quy tắc, cảnh báo lưu lượng API bất thường.

Cấu hình và thực thi chính sách WAF: API Gateway duy trì cấu hình chính sách WAF, tự động cập nhật chữ ký bảo mật có thể áp dụng và kiểm tra lỗi tràn bộ đệm dữ liệu nhằm bảo vệ các API instance và endpoint khỏi các cuộc tấn công injection attack.

Định tuyến và tối ưu hóa content: API Gateway đảm bảo các lệnh gọi API được chuyển đến các điểm đích tốt nhất thông qua khả năng cân bằng tải kết hợp chuyển đổi nội dung. Các tham số cho định tuyến bao gồm đường dẫn URL, phương thức HTTP và policy expression (biểu thức chính sách)

Rewrite (viết lại) và quản lý chính sách phản hồi: Tùy từng giao thức mà các biểu thức chính sách có thể được sử dụng để chuyển đổi các HTTP transaction khi đi qua API Gateway. Thông qua chính sách này, các yêu cầu của user có thể được chuyển hướng đến các đích tối ưu.

Thông tin chi tiết và thực thi bảo mật Single-Pass: Một hệ thống API Gateway hiện đại hợp nhất nhiều chức năng bảo mật vào một thiết bị xử lý WAF, cân bằng tải, định tuyến nội dung… trong một single-pass.

Cách thức hoạt động của API Gateway

API Gateway cải thiện hiệu suất ứng dụng

5. Tính năng của API Gateway

Phục vụ nhiều nền tảng: Hiện nay, người dùng thường sử dụng nhiều nền tảng (TV, smartphone, tablet, PC…) để kết nối, mỗi nền tảng lại bị giới hạn phần cứng và yêu cầu băng thông khác nhau. Vì vậy cổng API sẽ cung cấp dữ liệu phù hợp cho đúng thiết bị của khách.

Nằm trong các hệ thống microservice-based: API Gateway là một tiêu chuẩn để quản lý môi trường microservices. Đối với các tổ chức dùng API Gateway làm công cụ chuyển đổi monolith thành microservices.

Để phát triển serverless: Các API Gateway hỗ trợ cho điện toán serverless tương tự như microservices theo cách chúng xử lý các hàm. Chúng yêu cầu một giao diện thống nhất, một kết nối và entry point cho các yêu cầu từ user.

Để kiếm tiền từ API: Việc sử dụng một nền tảng quản lý toàn diện không dễ và không rẻ. Quá trình này có thể sẽ yêu cầu một số cam kết về thời gian và tài chính. Hệ thống API Gateway được thiết lập nhanh và dễ dàng hơn khi nó hoạt động trong chiến lược kinh doanh và được nâng cấp lên nền tảng toàn điện.

6. Cách cấu hình API Gateway

Mô hình Microservices là tập hợp của nhiều khối nhỏ, mỗi khối có các chức năng riêng biệt có đầu vào và đầu ra riêng. Để vận hành được thì các khối phải có sự liên kết với nhau một cách chặt chẽ và thống nhất, điều này trực tiếp tác động đến giao tiếp ứng dụng của khách hàng và đến ứng dụng.

Sử dụng API Gateway là giải pháp tối ưu. Để cấu hình API Gateway, bạn có thể thực hiện các bước sau:

- Đăng nhập vào AWS Management Console.

- Chọn dịch vụ API Gateway.

- Tạo một REST API mới hoặc sử dụng một REST API hiện có.

- Cấu hình các tài nguyên API, bao gồm các tài nguyên phương thức, tài nguyên tích hợp và tài nguyên quản lý.

- Cấu hình các tài nguyên tích hợp, bao gồm các tài nguyên tích hợp HTTP, Lambda và AWS.

- Cấu hình các tài nguyên quản lý, bao gồm các tài nguyên quản lý API và tài nguyên quản lý người dùng.

7. Các loại API Gateway nổi tiếng

7.1 Netflix API Gateway: Zuul

Các loại API Gateway nổi tiếng

Zuul là API Gateway của Netflix

Netflix phục vụ trên nhiều nền tảng và số lượng request trong giờ cao điểm cần xử lý mỗi giây lên tới 50000. Netflix sử dụng APT Gateway để điều chỉnh request cho từng thiết bị khác nhau. Zuul sẽ điều hướng tất cả các request tới cloud của Netflix, cho phép gateway xử lý, điều hướng và bảo vệ hạ tầng cloud, cung cấp trải nghiệm tốt nhất cho hàng triệu người dùng.

Zuul áp dụng nhiều loại filter giúp apply chúng vào ứng dụng của mình, các filter thực thi các chức năng như :

- Authentication and Security

- Insights and Monitoring

- Dynamic Routing

- Stress Testing

- Load Shedding

- Static Response handling

- Multiregion Resiliency

7.2 Amazon API Gateway: AWS

Amazon API Gateway: AWS

Amazon API Gateway - AWS

AWS cung cấp dịch vụ quản lý để tạo và duy trì, monitoring và bảo mật cho các hệ thống REST API, HTTP, Websocket…. Nhà phát triển có thể tạo ra các API tương tác với AWS, dữ liệu được lưu trữ trên AWS cloud hay các web service.

Amazon API Gateway xử lý toàn bộ tác vụ, chấp nhận và xử lý hàng trăm ngàn request API cùng lúc, bao gồm việc quản lý traffic, authorization, CORS... Chi phí cho API Gateway được thanh toán theo từng lượt request và lượng dữ liệu chuyển qua.

7.3 Kong API Gateway

Kong API Gateway

Kong API Gateway đơn giản, gọn nhẹ và tối ưu cho Microservice

Kong Gateway là một open source, là một API Gateway nhỏ nhẹ và đơn giản được tối ưu cho ứng dụng sử dụng kiến trúc Microservice, mang lại hiệu suất cao và độ trễ thấp. Kong API Gateway phù hợp với các ứng dụng cơ bản, nó có thể mở rộng theo chiều ngang bằng việc bổ sung thêm các node.

Kong Gateway lắng nghe traffic từ port 8000 và 8443, đánh giá API request từ máy khách và điều hướng chúng tới điểm cuối một cách chính xác. Trong quá trình điều hướng request, response, Kong cung cấp các plugin để áp dụng các policy vào đó.

7.4 Một số API Gateway khác

Ngoài các API Gateway trứ danh đã kể còn có một số API Gateway các bạn có thể thử như:

- APIgee API Gateway

- MuleSoft

- Tyk.io

- Akana

- SwaggerHub

- Azure API Gateway

- Express API Gateway

- Kraken D

8. Mối quan hệ giữa API Gateway và microservices

Ngày nay, API Gateway được sử dụng rất phổ biến do sự gia tăng các microservice. Để hiểu về hoạt động của một API Gateway trong kiến trúc Microservices, chúng ta hãy xem xét trang thương mại điện tử Amazon như một ví dụ về một trang sản phẩm ứng dụng API Gateway hiệu quả.

Tại Amazon chúng ta có thể thấy rất nhiều thông tin cần thiết được hiển thị như: Tìm kiếm sản phẩm, tồn kho, vận chuyển, đánh giá - xếp hạng, công cụ đề xuất…

Mối quan hệ giữa API Gateway và microservices

API Gateway quản lý các lệnh và tương tác với các thành phần kiến trúc

Mỗi mục là một microservice khác nhau đang được sử dụng để hiển thị website. Vì mỗi microservice này được triển khai riêng biệt trên một máy chủ khác nhau nên nếu máy khách muốn truy cập các dịch vụ này thì ít nhất phải gửi 7 request chỉ để tải một trang duy nhất.

Điều này chắc chắn sẽ làm giảm suất, mức tiêu thụ tài nguyên, thời gian tải… Vì vậy đây là lúc chúng ta cần một API Gateway để giải quyết những khó khăn trên. Trong kiến trúc microservices, khả năng mở rộng và hiệu suất của hệ thống API Gateway là yếu tố vô cùng quan trọng.

Có nhiều công nghệ khác nhau được áp dụng nhằm tăng khả năng mở rộng và tăng hiệu suất của API Gateway. API Gateway chịu trách nhiệm giải quyết các chức năng bao gồm định tuyến, giám sát, rate limiting, xác thực, bảo mật, cảnh báo và chính sách… Nó giúp nhận các request đến từ client và chuyển chúng đến hệ thống quản lý API, áp dụng các chức năng cần thiết và trả về output. API Gateway xử lý yêu cầu bằng cách định tuyến chúng đến đúng điểm cuối chính xác..

Hy vọng qua những thông tin Vega Fintech chia sẻ về API Gateway có thể giúp bạn hiểu rõ về công cụ này, những lợi ích và cách hoạt động của nó và ứng dụng vào công việc để đạt hiệu suất cao nhất có thể.