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:#

  1. 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.

  2. 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

Step

Giao diện

Step

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

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.

Step

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

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

Step

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