使用 Nocalhost 開發 Rainbond 上的微服務應用

2022-06-06 12:03:46

本文將介紹如何使用 Nocalhost 快速開發 Rainbond 上的微服務應用的開發流程以及實踐操作步驟。

Nocalhost 可以直接在 Kubernetes 中開發應用,Rainbond 可以快速部署微服務專案,無需編寫Yaml,Nocalhost 結合 Rainbond 加速我們的微服務開發效率。

一. 簡介

Nocalhost 是一款開源的基於 IDE 的雲原生應用開發工具:

  • 直接在 Kubernetes 叢集中構建、測試和偵錯應用程式
  • 提供易於使用的 IDE 外掛(支援 VS Code 和 JetBrains),即使在 Kubernetes 叢集中進行開發和偵錯,Nocalhost 也能保持和本地開發一樣的開發體驗
  • 使用即時檔案同步進行開發: 即時將您的程式碼更改同步到遠端容器,而無需重建映象或重新啟動容器。

Rainbond 是一款雲原生應用管理平臺:

  • 使用簡單,不需要懂容器、Kubernetes和底層複雜技術,支援管理多個Kubernetes叢集,和管理企業應用全生命週期。主要功能包括應用開發環境、應用市場、微服務架構、應用交付、應用運維、應用級多雲管理等。

二. 本地 + Rainbond 開發微服務

以前我們在本地 + Rainbond 開發微服務時,要開發的模組我們執行在本地,其他模組執行在 Rainbond 上,我們通過 Rainbond 的閘道器與本地進行通訊、聯調。

這樣會遇到一些問題:

  • 多人共同作業開發聯調困難
  • 本地環境差異化
  • 無法通過註冊中心(Nacos)呼叫其他微服務
  • 遠端Debug較難
  • 受限於本地資源

三. 使用 Nocalhost + Rainbond 開發微服務

現在我們通過 Nocalhost + Rainbond 開發微服務時,所有服務都執行在 Rainbond 上,當要開發時本地 Vscode 直連到 Rainbond 元件中,並與原生程式碼實時同步到 Rainbond 元件中。多人開發聯調時,可通過 Rainbond 內建的 Service Mesh 進行服務之間聯調。

使用 Nocalhost 開發,可以解決本地開發時遇到的問題:

  • 多人聯調開發更便捷
  • 服務都執行在 Rainbond 上,不再受限於本地
  • 與生產環境更接近
  • 遠端Debug
  • 通過註冊中心(Nacos)呼叫其他微服務元件

四. 實踐操作步驟

Nocalhost 目前支援兩種開發模式:

  • Repliace DevMode
  • Duplicate DevMode

本篇將主要介紹 Replace DevMode,當進入 Replace DevMode 時,Nocalhost 會對 元件 執行以下操作:

  1. 將副本數縮減為 1

  2. 替換容器的映象為開發映象

  3. 增加一個 sidecar 容器。

  4. 轉發一個本地埠到檔案同步伺服器。

  5. 啟動本地檔案同步使用者端。

  6. 開啟遠端終端。

4.1 安裝 Nocalhost 外掛

Nocalhost 支援 VScode JetBrains ,這裡我們主要介紹 VScode 外掛安裝參考官網檔案。

  1. 開啟 VScode,點選左側的 Extension 按鈕 圖示
  2. 在搜尋方塊中輸入 Nocalhost 選擇 Nocalhost 外掛,並點選 Install 按鈕

4.2 安裝 Rainbond

我們選擇 基於主機安裝 Rainbond

4.3 Nocalhost 對接 Rainbond 叢集

  1. 獲取 kubeconfig 檔案,進入 Rainbond 叢集檢視 -> 點選節點設定 -> kubeconfig

  1. 我們將 kubeconfig 檔案複製到本地並儲存為 yaml 檔案。

  2. 開啟 Vscode,點選按鈕 ,開啟 Nocalhost 外掛,選擇 Connect to Cluster,選擇我們 kubeconfig 檔案的路徑,點選 Add Cluster,新增叢集。

  3. 新增完成後,如下圖:

4.4 在 Rainbond 上部署 Spring Cloud 微服務

  1. 這裡選擇從開源應用商店安裝 Spring Cloud Pig 微服務元件,在應用商店中搜尋 Pig 進行安裝。

  2. 部署完成後,效果如下:

4.5 進入 Nocalhost 開發模式

上面我們已經在本地 Vscode 中對接好了叢集,並且也已經在 Rainbond 中安裝了 Spring Cloud Pig 微服務,那麼接下來我們在本地 Vscode 中選擇其中一個元件進行開發,這裡為了效果更明顯,選擇開發 pig-ui 元件。

Spring Cloud Pig 後端

Spring Cloud Pig 前端

4.5.1 克隆 Pig-ui 程式碼到本地

git clone https://gitee.com/zhangbigqi/pig-ui

4.5.2 啟動本地開發

開啟 Vscode,點選按鈕 ,找到我們的 Pig-ui 元件,由於該應用是從開源應用商店中安裝,Deployment名稱是自動生成的字串,我們需要在元件中查詢下。

我們點選旁邊的