Microservices hiện được quan tâm trong giới phần mềm, công nghệ với nhiều bài viết, blog, thảo luận, truyền thông, hội thảo. Kỳ vọng về khả năng của Microservices đang lên đỉnh giống như một xu hướng thời trang đang lan rộng.
Mỗi microservices là một đơn vị độc lập, cùng nhiều đơn vị khác tạo nên một ứng dụng lớn. Bằng cách chia ứng dụng thành các đơn vị nhỏ, mỗi phần của nó được triển khai độc lập và có thể mở rộng, có thể được viết bởi các nhóm khác nhau bằng các ngôn ngữ lập trình khác nhau và được kiểm tra riêng lẻ.
Kiến trúc phù hợp cho các dịch vụ lớn. Chia nhỏ các chức năng thành các thành phần, lập trình viên thuận lợi hơn trong việc phát triển, vận hành mỗi thành phần độc lập với nhau.
Thuận lợi trong việc phát triển lâu dài cho dịch vụ. Vì mỗi thành phần chỉ thực hiện đúng một chức năng, nên việc cải tiến sẽ dễ dàng thực hiện và không gây gián đoạn tới các thành phần khác. Mỗi thành phần sẽ giao tiếp với nhau qua giao diện riêng.
Việc phát triển mỗi thành phần của dịch vụ cũng được chia nhỏ, và đưa tới các team phát triển, khối lượng việc xử lý của mỗi team sẽ nhỏ và nhanh chóng hơn.
Mỗi thành phần sẽ không phụ thuộc vào công nghệ với các thành phần khác.
Với kiến trúc Monolithic khi một chức năng trong dịch vụ gặp lỗi, sẽ dẫn đến toàn bộ dịch vụ bị gián đoạn. Với kiến trúc Microservices, khi một thành phần gặp lỗi, các thành phần khác sẽ không bị gián đoạn.
API Gateway là phương pháp tiếp cận tối ưu cho kiến trúc microservices. Một cổng kết nối API là một máy chủ truy xuất duy nhất vào hệ thống. Nó cũng tương tự như mẫu thiết kế Facade dựa trên thiết kế hướng đối tượng. Cổng kết nối API che giấu đi thông tin kiến trúc hệ thống nội bộ và nó cung cấp các API tùy chỉnh cho mỗi Client. Cổng kết nối API còn có trách nhiệm xác thực, giám sát, cân bằng tải, caching, định hình yêu cầu và quản lí thông tin, xử lí phản hồi tĩnh.
Cổng kết nối API làm nhiệm vụ định tuyến các yêu cầu, kết hợp và chuyển đổi các giao thức. Tất cả yêu cầu từ Client đều đi qua cổng kết nối API. Sau đó cổng kết nối API định tuyến các yêu cầu này tới microservices phù hợp. Cổng kết nối API Gateway sẽ xử lý một yêu cầu người dùng bằng cách gọi đến một loạt microservices rồi tổng hợp các kết quả. Nó có thể chuyển đổi giữa các giao thức web như HTTP, WebSocket và các giao thức nội bộ không thân thiện với web.
Tối ưu đầu cuối
Khi một request của Client tới dịch vụ yêu cầu thông tin của nhiều thành phần trong hệ thống, ví dụ: Customer, Order, Invoices... API Gateway sẽ thực hiện request đồng thời tới các thành phần, lấy về các thông tin từ từng thành phần, ghép lại và phản hồi lại kết quả mong muốn cho Client.
Ngắt kết nối API
Khi mỗi thành phần trong hệ thống dừng hoạt động, hoặc trả về số lượng lớn lỗi đạt đến ngưỡng đã được quy định, API Gateway có thể tự động thực hiện dừng gửi request tới thành phần gặp lỗi. Việc này sẽ cho đội vận hành có thời gian để phân tích log, xử lý lỗi và update lại thành phần.
Thuận tiện nâng cấp các thành phần
Khi các thành phần trong dịch vụ được nâng cấp, phát triển thêm tính năng API Gateway có các hình thức để có thể điều phối tỉ lệ các request giữa phiên bản hiện tại và phiên bản mới.
Kết nối tập trung
Client sử dụng API sẽ kết nối tập trung qua API Gateway, API Gateway sẽ thực hiện các việc xác thực request của client, log các request, giám sát các Microservices, báo cáo/phân tích log...
Cân bằng tải
API Gateway có thể phối hợp cùng Service-discovery tool để thực hiện cân bằng tải, phân phối request tới các cụm API.
Kong là giải pháp API Gateway mã nguồn mở phổ biến nhất hiện nay. Kong sẽ đứng trước hệ thống API của bạn, giúp bạn nhanh chóng, thuận tiện và bảo mật trong triển khai mô hình Microservices, cũng như quản lý và triển khai các giải pháp API. Với các plugins, Kong sẽ cung cấp thêm nhiều chức năng và dịch vụ mở rộng dựa trên nền tảng lõi.Kong được xây dựng và hoạt động thông qua các RESTful API đơn giản, dễ sử dụng.
Authentication
Bảo vệ các dịch vụ của bạn qua tầng xác thực
Traffic Control
Quản lý, điều chỉnh và chặn các lưu lượng API vào ra
Analytics
Trình diễn, kiểm tra và giám sát các lưu lượng vào API
Transformations
Chuyển đổi trực tiếp các yêu cầu và phản hồi API trong khi xử lý
Logging
Bắt luồng yêu cầu và phản hồi dữ liệu vào hệ thống ghi log
Serverless
Thực hiện các chức năng serverless qua các API
Scalable
Kong có thể dễ dàng mở rộng theo chiều ngang bằng cách thêm nhiều nodes mới. Kong có thể xử lý khối lượng lớn các công việc với độ trễ thấp.
Modular
Bổ sung thêm các tính năng vào Kong bằng các plugin mà được cài đặt và cấu hình thông qua RESTful Admin API.
Hoạt động trên mọi hạ tầng
Triển khai Kong trên môi trường cloud, on-premises hoặc hybird.