Why do you need API Gateway?

·

5 min read

Tại sao bạn cần API Gateway?

Trong kiến trúc microservices, client có thể tương tác với nhiều hơn một service phía frontend. Vấn đề đặt ra là làm sao client biết được các endpoint nào cần gọi? Điều gì xảy ra khi các service mới được triển khai hoặc các service hiện có được refactor? Làm thế nào các service xử lý SSL termination, xác thực và các vấn đề khác? API Gateway có thể giúp giải quyết những thách thức này.

Nói một cách đơn giản, API Gateway là một công cụ quản lý nằm ở rìa của hệ thống, giữa consumer và một tập hợp các service backend, đóng vai trò như một điểm vào duy nhất cho một nhóm API được định nghĩa. Nó hoạt động như một reverse proxy, định tuyến các request từ client đến các service. Nó cũng có thể thực hiện các tác vụ cross-cutting khác nhau như authentication, SSL termination, and rate limiting . Nếu bạn không triển khai gateway, client phải gửi request trực tiếp đến các service frontend, điều này có một số nhược điểm.

Ưu điểm của việc sử dụng API Gateway:

  • Tóm gọn các API: API Gateway giúp bạn dễ dàng quản lý và cung cấp bộ sưu tập API dưới một URL duy nhất.

  • Routing thông minh: Bạn có thể định tuyến các request đến các service thích hợp dựa trên các tiêu chí khác nhau, chẳng hạn như đường dẫn URL hoặc tiêu đề header.

  • Bảo mật: API Gateway có thể tập trung logic xác thực và kiểm tra, giảm thiểu sự không cần thiết để mỗi service tự triển khai các chức năng này.

  • Giám sát và phân tích: API Gateway có thể cung cấp các tính năng giám sát chi tiết về lưu lượng truy cập API, giúp bạn dễ dàng theo dõi hiệu suất và khắc phục sự cố.

  • Tính linh hoạt: API Gateway cho phép bạn dễ dàng giới thiệu các service mới mà không cần thay đổi client. Bạn chỉ cần cập nhật cấu hình của API Gateway để phản ánh các endpoint mới.

Vị trí triển khai API Gateway

Thông thường, API Gateway được triển khai ở vành ngoài của hệ thống, nhưng định nghĩa "hệ thống" ở đây khá linh hoạt.

  • Doanh nghiệp khởi nghiệp và doanh nghiệp vừa và nhỏ (SMBs): API Gateway thường được triển khai ở rìa của trung tâm dữ liệu hoặc Cloud. Trong trường hợp này, chỉ có thể có một API Gateway (được triển khai và chạy qua nhiều phiên bản để đảm bảo khả năng hoạt động cao) đóng vai trò như cửa trước cho toàn bộ hệ thống back-end, và API Gateway sẽ cung cấp tất cả các chức năng cạnh được đề cập trong chương này thông qua thành phần duy nhất này.

  • Doanh nghiệp lớn và tập đoàn: API Gateway thường được triển khai ở nhiều vị trí, thường là một phần của ngăn xếp cạnh ban đầu ở ranh giới của trung tâm dữ liệu và các gateway bổ sung có thể được triển khai như một phần của từng sản phẩm, ngành kinh doanh hoặc phòng ban tổ chức. Trong bối cảnh này, các gateway này thường sẽ là các triển khai riêng biệt và có thể cung cấp các chức năng khác nhau.

Tại sao sử dụng API Gateway?

Trong kiến trúc microservices, nơi các ứng dụng được xây dựng như một tập hợp các dịch vụ nhỏ, độc lập, việc quản lý cách các thành phần khác nhau tương tác có thể trở nên phức tạp. API Gateway đóng vai trò như một điểm kiểm soát trung tâm, đơn giản hóa việc quản lý API và giải quyết một số thách thức chính:

Giảm thiểu sự kết nối:

  • API Gateway che giấu sự phức tạp của các dịch vụ backend khỏi các ứng dụng client. Client tương tác với Gateway, sau đó Gateway sẽ định tuyến các yêu cầu đến các dịch vụ phù hợp.

  • Điều này làm giảm sự phụ thuộc giữa frontend và backend, khiến chúng độc lập hơn và dễ bảo trì hơn.

Đơn giản hóa việc sử dụng:

  • Hãy tưởng tượng một trường hợp mà một ứng dụng di động cần tương tác với nhiều dịch vụ backend để truy xuất dữ liệu.

  • API Gateway có thể tổng hợp các dịch vụ này thành một API thống nhất duy nhất, đơn giản hóa quá trình tích hợp cho các ứng dụng client.

Tăng cường bảo mật:

  • API Gateway có thể tập trung logic xác thực và ủy quyền.

  • Điều này đảm bảo rằng các chính sách bảo mật nhất quán được áp dụng cho tất cả các API và giảm gánh nặng thực hiện các biện pháp bảo mật trong từng dịch vụ riêng lẻ.

Cải thiện khả năng quan sát:

  • Gateway cung cấp thông tin chi tiết có giá trị về cách thức sử dụng API.

  • Chúng có thể theo dõi các chỉ số như khối lượng yêu cầu, độ trễ và lỗi, giúp các nhà phát triển xác định và khắc phục sự cố hiệu quả hơn.

Đơn giản hóa quản lý vòng đời API:

  • API Gateway cho phép bạn xác định phiên bản, kiểm soát quyền truy cập và quản lý vòng đời của API từ một vị trí duy nhất.

  • Điều này đơn giản hóa quá trình triển khai, cập nhật và ngừng sử dụng API.

Tiềm năng kiếm tiền:

  • Một số Gateway cung cấp các tính năng để kiếm tiền từ API.

  • Bạn có thể triển khai các chức năng như hạn ngạch người dùng, giới hạn tốc độ và các cấp đăng ký, cho phép bạn kiểm soát quyền truy cập và có khả năng tạo doanh thu từ API của mình.

Bằng cách sử dụng API Gateway, bạn có được phương pháp tiếp cận tập trung để quản lý API trong kiến trúc microservices. Điều này mang lại mã sạch hơn, khả năng bảo trì được cải thiện và hệ thống tổng thể mạnh mẽ và an toàn hơn.