API Gateway ra đời nhằm mục đích giải quyết những vấn đề rắc rối, trong hoạt động giao tiếp giữa Client với Service khiến nó trở nên dễ dàng và thuận lợi hơn.
API Gateway là gì?
API - Application Program Interface, chứa một tập hợp các công cụ dùng xây dựng những ứng dụng.
API Gateway được xem như một cổng trung gian, đây là cổng duy nhất dẫn đến hệ thống Microservice.
Nói một cách đơn giản, API Gateway là công cụ quản lý API nằm giữa các Client với các Backend Service.
Nhiệm vụ chính của API Gateway là tiếp nhận các Requests phía Client, thực hiện việc 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 Service phía sau.
Bên cạnh nhiệm vụ Proxy Request, thì một hệ thống API Gateway thường đảm nhận luôn một số vai trò, cụ thể là bảo mật API, Monitoring, Analytics số lượng Requests và giám sát tình trạng hệ thống phía sau.
Trong API Gateway bao gồm những thành phần nào?
Một hệ thống API Gateway sẽ bao gồm các yếu tố cơ bản sau:
- Routing - Bộ định tuyến.
- Caching - Bộ nhớ đệm.
- Security - Hệ thống bảo mật.
- Versioning - Lập phiên bản.
- API composition and processing - Thành phần và tiến trình API.
- API health monitoring - Theo dõi tình trạng API.
- Managing access quotas - Quản lý hạn mức truy cập.
Các chức năng trong API Gateway
API Gateway có khả năng thực hiện các công việc như:
- API Gateway có thể xác thực tất cả lệnh call API thông qua cơ chế tương tự các token xác thực. Đồng thời, thưc hiện tùy chỉnh cấu hình nhằm giới hạn quyền truy cập của người dùng và ứng dụng.
- Thực hiện điều chỉnh một số Request API để ngăn chặn việc Backend Service gặp tình trạng quá tải.
- Duy trì cấu hình chính sách WAF, mang lại sự thuận tiện trong việc bảo vệ API Instance, cùng các Endpoint khỏi những cuộc tấn công.
- Với khả năng cân bằng và truyền tải nội dung, giúp người dùng có thể đảm bảo lệnh call API được chuyển tới những điểm đến tốt nhất.
- Phụ thuộc vào từng giao thức, các biểu thức chính sách có thể được sử dụng để chuyển đổi các HTTP transaction khi chúng đi qua API Gateway. Quá trình này được thực hiện thông qua việc rewrite và quản lý chính sách phản hồi, đồng thời những yêu cầu từ User cũng có thể được chuyển hướng một cách đáng tin cậy đến các đích tối ưu.
- Với API Gateway hiện đại có khả năng hợp nhất nhiều chức năng bảo mật API vào một thiết bị xử lý WAF, từ đó cân bằng việc tải, định tuyến nội dung và hơn thế nữa trong một Single-Pass. Đồng thời, cải thiện hiệu suất ứng dụng trở nên hiệu quả.
Vai trò API Gateway
Trong một hệ thống microservice thông thường, chứa khá nhiều service khác nhau, nên khó có thể cho các Client trực tiếp kết nối đến những Service được, nếu không sẽ gây nên tình trạng hỗn loạn.
Cũng chính vì muốn giải quyết tình trậng này mà API Gateway "ra đời".
Như đã đề cập ở phần khái niệm, API Gateway đong vai trò như một cánh cổng trung gian, đảm nhận việc kết nối giữa Client với hệ thống Microservice, nhờ đó tạo ra một sơ đồ hệ thống đơn giản, cùng khả năng hoạt động vô cùng hiệu quả.
Ưu - nhược điểm của API Gateway
Ưu điểm
- Đơn giản hóa hệ thống mã nguồn phía Client, vừa giúp ứng dụng hoạt động hiệu quả, vừa có thể hạn chế lỗi xảy ra.
- Cung cấp cho từng loại máy phía Client một API cụ thể.
- API Gateway 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...
- Đi kèm tính năng theo dõi và quản lý traffic thông qua GUI hoặc chính các API trong hệ thống Gateway.
- Dễ dàng ẩn cấu trúc của hệ thống Microservices với bên ngoài.
- Giúp các đoạn mã code phía Fontend gọn gàng hơn, bởi người dùng chỉ cần gọi đến API Gateway thay vì Tracking nhiều Endpoint trên từng Service.
Nhược điểm
- Tăng thời gian Response, do phải đi qua Server trung gian.
- Khi sử dụng API Gateway, chúng ta cần phải thực hiện việc config hay scale hợp lý, nên có thể tạo ra một số tác nhân gây lỗi hay xảy ra tình trạng tắc nghẽn.
- Mất thêm một khoản chi phí nhất định cho hoạt động của Server, quản lý hệ thống API Gateway và cả tiền điện.