[Webinar] API Gateway trong kiến trúc microservice và ứng dụng sao cho hiệu quả
Bất chấp việc các microservices có thể phức tạp, kiến trúc này vẫn thường là sự lựa chọn lý tưởng cho các ứng dụng nhiều chức năng.
Khi chọn xây dựng ứng dụng dưới dạng một microservice, chúng ta sẽ cần quyết định các client của ứng dụng sẽ tương tác với các microservices đó như thế nào. Với một ứng dụng monolithic, chỉ có một tập hợp các endpoint (thường sẽ được replicated, load balancing). Tuy nhiên, trong kiến trúc microservices, mỗi microservice lại có một tập hợp các endpoint chi tiết. Cùng tìm hiểu điều này ảnh hưởng như thế nào đến việc giao tiếp giữa client và ứng dụng, và API Gateway sẽ góp phần giúp giải quyết bài toán ra sao.
Lấy ví dụ bạn đang phát triển một client cho một ứng dụng mua sắm trên mobile. Bạn có thể cần triển khai trang sản phẩm chi tiết để hiển thị thông tin về tất cả các sản phẩm cụ thể mà dịch vụ cung cấp.
Tuy là một ứng dụng dành cho mobile nhưng trang chi tiết sản phẩm lại hiển thị rất nhiều thông tin. Ví dụ: không chỉ có thông tin cơ bản về sản phẩm (như tên, mô tả và giá) mà trang còn hiển thị:
Số lượng mặt hàng trong giỏ hàng
Lịch sử đơn hàng
Phản hồi của khách hàng
Cảnh báo hàng tồn kho thấp
Tùy chọn vận chuyển
Các đề xuất mua hàng khác nhau, có thể là các sản phẩm thường được mua kèm cùng sản phẩm đó, các sản phẩm khác cũng được các khách hàng đã mua sản phẩm này mua và các sản phẩm khác được các khách hàng đã mua sản phẩm này xem
Các đề xuất sản phẩm thay thế
Khi sử dụng kiến trúc microservices, dữ liệu hiển thị trên trang sản phẩm nằm trong nhiều microservices khác nhau. Một số microservice sở hữu dữ liệu được hiển thị trên trang sản phẩm trong vị dụ có thể phân thành như sau:
Service Giỏ hàng - Số lượng mặt hàng trong giỏ
Service Order - Lịch sử đặt hàng
Service Danh mục - Thông tin cơ bản về sản phẩm như tên, hình ảnh và giá
Service Review - Đánh giá của khách hàng
Service Hàng tồn kho - Cảnh báo hàng tồn kho thấp
Service shipping - Các tùy chọn, thời gian và chi phí vận chuyển được tách riêng từ API của nhà cung cấp dịch vụ vận chuyển
(Các) Service Đề xuất - Các mặt hàng được đề xuất
Chúng ta cần quyết định các client truy cập các dịch vụ này như thế nào.
Nếu giao tiếp trực tiếp Client‑to‑Microservice
Trên lý thuyết, một client có thể đưa request trực tiếp cho từng microservice. Mỗi microservice sẽ có một public endpoint. Để lấy thông tin chi tiết về sản phẩm, client gọi trực tiếp đến từng service được liệt kê ở trên qua public endpoint,
Nhưng, cách làm này có nhiều thách thức và hạn chế. Đầu tiên là nhu cầu của client và các API của mỗi microservice có thể không khớp với nhau. Client trong ví dụ này phải đưa 7 request riêng biệt. Trong các ứng dụng phức tạp hơn, có thể phải gọi nhiều hơn nữa.
Một vấn đề khác khi client gọi trực tiếp đến các microservice là một số service có thể sử dụng các giao thức không thân thiện với web. Các giao thức như HTTP và WebSocket thường được khuyến nghị sử dụng.
Bên cạnh đó, việc việc tái cấu trúc các microservices, ví dụ như gộp 2 service thành 1 hay tách 1 service thành 2 sẽ cực kỳ khó khăn.
Các thách thức còn đến từ việc Developer sẽ phải phát triển riêng phần Authentication, Authorization cho từng service gây tốn thời gian, gặp nhiều khó khăn, hay chưa có hệ thống monitor, logging cho từng service (latency, tỉ lệ timeout, log truy cập của từng service).
Để phân tích rõ hơn về những khó khăn này, đồng thời đưa ra giải pháp giải quyết hiệu quả hơn từ API Gateway, độc giả hãy tham gia cùng Bizfly Cloud trong buổi Bizfly Expert Talk #36 với chủ đề: ‘’API Gateway trong kiến trúc microservice" diễn ra vào ngày 09/03 tới đây.
Tham gia ngay để nhận ngay voucher dùng thử trị giá 500K khi truy cập: https://bit.ly/3MlV1G7
API Gateway được xem là phương pháp có thể giải quyết toàn bộ những khó khăn được đề cập phía trên. API Gateway là một servers (nhóm server) đóng vai trò như là một lối vào/ra duy nhất để truy cập các service. Ngoài nhiệm vụ định tuyến API phù hợp cho từng client, API Gateway có các chức năng như xác thực, giám sát, load balancing, rate limiting, health checks, logging và security.
Cung cấp giải pháp API Gateway được đóng gói sẵn đầu tiên tại Việt Nam, developer sẽ dễ dàng và thuận tiện hơn rất nhiều trong công việc phát triển của mình, doanh nghiệp tiết kiệm được rất nhiều chi phí, rất nhiều giờ công sức cho triển khai, vận hành. Tất cả sẽ được hé lộ trong buổi Talk bổ ích, hấp dẫn từ Bizfly Cloud.
Giới thiệu diễn giả:
Anh Phạm Văn Khanh - Product Owner Bizfly API Gateway
Anh đã có nhiều kinh nghiệm trong việc triển khai và vận hành hệ thống API Gateway nội bộ cho mạng quảng cáo Admicro và MXH Lotus. Có thời điểm hệ thống này phục vụ lượng request lên tới 90,000 request/s.
Bizfly Cloud - vận hành bởi VCCorp - hiện đang là đơn vị tiên phong cung cấp các giải pháp, dịch vụ hạ tầng kỹ thuật, điện toán đám mây hoàn chỉnh cho các doanh nghiệp trên toàn quốc với các khách hàng lớn như VTV, Vingroup, Đất Xanh Miền Bắc, Ahamove, SSI, Sapo, VNDirect...
NỔI BẬT TRANG CHỦ
Sự thật từ nghiên cứu khoa học: Chơi trò chơi điện tử có ảnh hưởng bất ngờ đến chỉ số IQ của trẻ em!
Trò chơi điện tử từ lâu đã là chủ đề gây tranh cãi khi nhắc đến ảnh hưởng của chúng đối với trẻ em. Trong khi nhiều ý kiến chỉ trích việc chơi game có thể gây hại cho sự phát triển trí não, thì một nghiên cứu khoa học đã mang đến cái nhìn khác biệt, cho thấy mối liên hệ tích cực giữa việc chơi game và sự gia tăng trí thông minh ở trẻ nhỏ.
Trải nghiệm game trên Mac mini M4 Pro: Cậu bé tí hon bước ra biển lớn gaming