Giới thiệu về API Gateway Pattern cho kiến trúc ứng dụng Microservice

1365
02-02-2023
Giới thiệu về API Gateway Pattern cho kiến trúc ứng dụng Microservice

Nếu bạn muốn xây dựng các ứng dụng dựa microservices lớn, có độ phức tạp cao với nhiều ứng dụng client, thì API Gateway pattern chính là giải pháp lý tưởng mà bạn đang tìm kiếm. Tương tự như Facade pattern trong Kiến trúc hướng đối tượng, API Gateway sử dụng mô hình giao tiếp đồng bộ và là một phần của định tuyến cổng hoặc reverse proxy hệ thống phân tán. 

Cùng Bizfly Cloud đi sâu vào tìm hiểu về API Gateway pattern cho kiến trúc ứng dụng microservices trong bài viết dưới đây.

API Gateway pattern là gì?

API Gateway pattern là cổng vào bên trong của ứng dụng. Mô hình đang diễn ra trong tâm trí của lập trình viên khi họ đang tạo ứng dụng của khách hàng. Nó hoạt động như một phương tiện giữa các ứng dụng khách và microservice. Ví dụ: Netflix là ví dụ nổi tiếng nhất về cổng API.

API Gateway pattern là gì

API (Application Programming Interface) là các thư viện có sẵn với các chức năng riêng biệt

Sử dụng một API Gateway duy nhất

Đối với ứng dụng có quy mô nhỏ hoặc trung bình, bạn có thể sử dụng một API Gateway duy nhất, đóng vai trò như điểm giao tiếp duy nhất cho tất cả các yêu cầu API frontend và chuyển các yêu cầu này tới các microservices tương ứng. Bạn không nên sử dụng một API Gateway duy nhất cho kiến trúc monolithic, do có thể làm gián đoạn hệ thống. Thay vào đó, hãy chia API Gateway thành nhiều dịch vụ khác nhau cho mỗi loại ứng dụng client, hoặc tách riêng ra cho từng phòng ban khác nhau hoạt động trên cùng microservices nội bộ.

Sử dụng nhiều API Gateway

Việc sử dụng nhiều API Gateway dựa trên phân loại ứng dụng client được gọi là Backend for Frontend (BFF). Mỗi API Gateway có thể được tùy chỉnh để đáp ứng các cross-cutting concerns của từng client, giúp tránh việc xảy ra lỗi tạm ngưng hệ thống.

Lý do nên sử dụng API Gateway pattern

Bạn nên cân nhắc sử dụng API Gateway pattern trong các trường hợp sau:

  • Số lượng dependencies của một microservice có thể kiếm soát được và không tăng lên theo thời gian.
  • Hệ thống gọi lệnh cần phản hồi đồng bộ từ microservice.
  • Có nhu cầu về độ trễ thấp.
  • Có nhu cầu hiển thị một API để thu thập dữ liệu từ nhiều microservices

Chức năng chính của API Gateway pattern

API Gateway pattern có chức năng chính là để định tuyến các requests - cung cấp quy trình về việc các requests được điều hướng như thế nào, được phê duyệt hay bị hủy bỏ, cùng với các thành phần API và xác thực ứng dụng.

API Gateway pattern có cấu tạo như thế nào?

Cấu tạo của API Gateway pattern bao gồm 2 lớp chính:

  • Một lớp chung hỗ trợ edge function để thực hiện việc xác thực.
  • Bên trong lớp API, mỗi mô-đun API giúp tạo một API cụ thể cho từng client. Các lớp API bao gồm một hoặc nhiều mô-đun API độc lập.
Chức năng chính của API Gateway pattern

Các dịch vụ API Gateway phổ biến hiện nay

Ocelot API Gateway

Ocelot là API Gateway dựa trên .NET Core mã nguồn mở dành cho các phương pháp tiếp cận đơn giản. Ocelot được thiết kế riêng cho các kiến trúc microservices đòi hỏi các điểm truy cập thống nhất vào bên trong hệ thống. Dịch vụ API Gateway này giúp định tuyến và thực hiện xác thực, có ưu điểm gọn nhẹ, nhanh chóng với khả năng mở rộng cao.

Vì là API Gateway dựa trên .NET Core nên bạn có thể triển khai vào cùng môi trường triển khai các microservices/containers (Docker Host, Kubernetes,...). Tính năng đa nền tảng cho phép người dùng triển khai cả trên Linux và Windows.

Bizfly API Gateway

Bizfly API Gateway hỗ trợ các developer tạo, xuất bản, giám sát, duy trì và bảo vệ API một cách dễ dàng và hiệu quả. Các ứng dụng thông qua API có thể truy cập vào dữ liệu, logic nghiệp vụ hoặc chức năng của các dịch vụ backend. Dịch vụ cho phép người dùng tạo các API RESTful, API WebSocket, GraphQL, gRPC... để các ứng dụng có thể giao tiếp hai chiều theo thời gian thực. API Gateway hỗ trợ các ứng dụng container, serverless và các ứng dụng web, cung cấp khả năng xử lý lên đến hàng trăm nghìn lệnh gọi API, xác thực và kiểm soát truy cập, điều chỉnh, giám sát và quản lý phiên bản API... với mức chi phí tối ưu nhất.

  • Giám sát hoạt động API: Cung cấp các biểu đồ về số lượng request, thời gian phản hồi, nhật ký truy cập và tỷ lệ lỗi cho từng API theo thời gian thực.
  • Xác thực API: Hỗ trợ xác thực JWT, Basic Auth, Key Auth…
  • Bảo vệ API backend: Cho phép giới hạn số lượng truy cập cho từng route; tuỳ chỉnh ngưỡng giới hạn
  • Quản lý vòng đời API: Quản lý nhiều phiên bản API (alpha, beta, production); cấu hình từng giai đoạn của API để tương tác với từng endpoint khác nhau; bổ sung domain tuỳ chỉnh; cấu hình SSL cho từng API.
  • Hỗ trợ cân bằng tải: Cung cấp cơ chế cân bằng tải để phân bổ lượng truy cập vào các server. Cơ chế healthcheck giúp loại bỏ các máy chủ đích bị lỗi, điều hướng chính xác request đến các máy chủ đích hoạt động.
  • Dễ dàng tạo và triển khai API: Tạo và tích hợp với bất kỳ dịch vụ nào thông qua public HTTP API ngay trên dashboard.
  • Hỗ trợ đa dạng API

>> Tìm hiểu thêm về Bizfly API Gateway tại: https://bizflycloud.vn/api-gateway

Kong API Gateway

Kong cũng là một trong những API Gateway mã nguồn mở phổ biến trên thị trường. Kong API Gateway được tối ưu cho kiến trúc Microservices và kiến trúc phân tán, giúp mang lại hiệu suất vượt trội, khả năng mở rộng mà không gây downtime. API Gateway này phù hợp cho những ứng dụng cơ bản, cho phép mở rộng theo chiều ngang bằng cách bổ sung các node, giúp xử lý khối lượng công việc lớn và độ trễ thấp.

Kong Gateway giám sát traffic từ port 8000 và 8443, sau đó đánh giá API request từ client và điều hướng chúng tới backend cần thiết. Khi đó, Kong cũng sẽ cung cấp các plugin để áp dụng các policy. Ví dụ khi điều hướng request, client sẽ phải đăng nhập. Lúc này, plugin của Kong sẽ thực hiện việc hỗ trợ, do đó:

  • Service backend sẽ không cần triển khai logic authentication vì Kong Gateway sẽ đảm nhiệm luôn việc đó.
  • Service chỉ cần xử lý các request đã được xác thực, không cần tốn thêm chi phí để xử lý các request không hợp lệ.
  • Tất cả request đều được log lại.

Việc sử dụng API Gateway là cần thiết khi xây dựng các kiến trúc microservices có độ phức tạp cao. Để quá trình triển khai diễn ra thuận tiện và nhanh chóng, bạn nên cân nhắc lựa chọn dịch vụ API Gateway sở hữu những ưu điểm như dễ sử dụng, khả năng mở rộng tức thời, linh hoạt, bảo mật cao với chi phí hợp lý cho từng quy mô phát triển của doanh nghiệp. 

Hy vọng bài viết trên đã giúp bạn nắm được những thông tin cần thiết về API Gateway pattern. Theo dõi Bizfly Cloud để luôn được cập nhật các bài viết công nghệ mới nhất!

>> Có thể bạn quan tâm: API gateway là gì? Khi nào cần sử dụng API gateway?

Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.

Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.

Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.

DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud.vn

SHARE