Kết nối hệ thống nhiều Spinner¶
Bài viết sau sẽ hướng dẫn cấu hình các multiple Sun Container Spinner kết nối với nhau thông qua cả internal endpoint và public endpoint.
Ví dụ dưới đây dựa trên một hệ thống cơ bản bao gồm :
Một client web, hai backend application
Hệ thống có một backend đã được expose ra ngoài internet(public domain), còn một backend không yêu cầu public(internal service)
Flow dữ liệu: client web => backend 1 => backend 2
Pre-condition
NodeJs app Image (Backend 2)
Java app Image (Backend 1)
NextJs app Image (Client web )
Biết cách deploy một spinner từ image source
Cách tạo internal endpoint
Cách tạo public domain
Background:¶
Truy cập workspace có sẵn, nếu chưa có workspace nào có thể tạo free một workspace mới.
Chuẩn bị các service
Deploy 3 service trong workspace, và config link internal, external
Architechture
Client-app : Sử dụng công nghệ frontend NextJs để render ra HTML.
User-app: Sử dụng công nghệ backend Java Spring boot lưu trữ thông tin của các user(name, location…)
Weather-app: Sử dụng công nghệ backend Nodejs Express cung cấp ra thông tin thời tiết của khu vực theo location
Giao diện
Step 1. Deploy Nodejs App¶
Deploy một nodejs applicaiton và lưu lại internal link của service. Ở đây chúng ta có internal link là nodejsapp-6291-service.microecomerce.svc
Step 2. Deploy Java app và cấu hình environment¶
Deploy một java app, ở bước này quan trọng nhất là chúng ta config đúng đường dẫn url của nodejs app để 2 service có thể liên lạc với nhau.
Thêm biến môi trường cho cho java app. SERVICE_NODEJS = http://nodejsapp-6291-service:3000
Note
Biến môi trường này được tạo ra và đặt tên theo mỗi developer. Chúng ta cần điền chính xác key/value của nodejs service endpoint.
Tạo một public endpoint cho java service để client có thể kết nối được.
Sau khi lưu lại thay đổi, hệ thống sẽ redeploy lại spinner để apply biến môi trường mới(Trường hợp edit)
Test public endpoint cho java app bằng trình duyệt hoặc postman
Step 3. Deploy Nextjs app¶
Vì ứng dụng client web chạy trên trình duyệt của người dùng nên nếu framwork của client web thuộc dạng client side rendering thì cần sửa backend public endpoint trong code của client web trước khi build. Sau khi publish backend service người dùng mới có public endpoint này.
Deploy nextjs app để render client page
Config BE public link để gọi về server (Incase server-side rendering)
Tạo một link public cho client web để truy cập
Result:
Đã public được một website và 2 microservice bằng các ngôn ngữ khác nhau, kết nối thông qua internal link và public link