1. 程式人生 > >Rainbond:如何製作一個可分享的雲市應用?

Rainbond:如何製作一個可分享的雲市應用?

應用是Rainbond可管理的最小服務單元,使用者可以將多個應用組成一個複雜的業務系統,這套業務系統可以對外提供服務,也可以分享給其他組織獨立部署。本文將會通過Solo+Pinpoint(Pinpoint-java效能分析最佳實踐)這個例子,演示“如何製作一個可分享的雲市應用”, 分享後的應用可供團隊、公司或雲市的使用者一鍵安裝部署完整的服務體系,實現標準化得一鍵交付部署。

對於還沒有了解Rainbond,或者還沒有成功安裝Rainbond的同學,建議先到以下的兩個連結進行學習:

建立應用

應用的建立有3種方式,分別是從原始碼建立、從Docker映象建立和從應用市場安裝,詳情請參見:

建立一個應用

接下來將會用從原始碼建立和從應用市場安裝——

同步應用到內部市場

如果內部市場裡沒有要建立的應用,則需要先從雲端下載。

建立應用

首先,通過從應用市場(應用市場是好雨提供的一項公有云服務,提供了常用的開發應用及工具)安裝的方式裝Pinpoint。這是在雲幫平臺上部署應用非常簡單的一種方式。這種部署方式對於像pinpoint這種多元件的複雜應用來說,最大程度的降低了部署難度與工作量。

  • 進入Rainbond,選擇【從雲市安裝】
  • 在搜尋欄中搜索【pinpoint】
  • 選擇已有的【應用組】,或者建立一個新的【應用組】
  • 點選【確定】,等待一小段時間後,應用就部署完成了

然後,再以同樣的方法建立MySQL(因為Solo需要依賴於MySQL)

最後,用原始碼建立應用的方式建立Solo。

  • 點選【建立應用】–【從原始碼建立】
  • 填寫應用名稱、應用名、倉庫地址和程式碼版本等資訊
  • 點選【確定】

這種方式會有一個應用檢測的過程,這個過程時間有點長,我們直接跳過,進入高階設定。

在高階設定中,需要開啟對外服務、新增環境變數、新增服務依賴和設定記憶體資訊:

  • 開啟對外服務,這樣我們才可以通過瀏覽器訪問應用。
  • 新增環境變數ENABLE_APM = true和APP_NAME = Solov999,這樣Solo才可以和Pinpoint關聯起來。

傳統架構下的pinpoint,需要在被監控的物件裡附加Agent,並通過修改配置檔案使之生效。在雲幫平臺上,我們將這兩個步驟也做了相應的簡化。
好雨官方OpenJDK映象 為基礎製作的應用,都預設集成了Pinpoint-Agent,不需要二次安裝。
雲幫平臺利用設定 環境變數 的方式,代替了配置檔案,鍵值對形式的環境變數非常簡單易用。

  • 分別新增MySQL和Pinpoint-Collector兩個服務依賴。
  • 設定記憶體為1G(可以根據實際情況進行調整)。

整個應用的建立已經完成,接下來就可以訪問剛剛安裝好的應用了

訪問solo——

通過Pinpoint監控Solo——

由於Pinpoint-Web的實時監控功能是用Websocket實現的,而Rainbond的負載均衡元件尚未支援Websocket,所以需要將Pinpoint-Web的訪問方式從Http改成Tcp。否則無法使用Pinpoint-Web的實時監控功能。

可以看到,可以通過Pinpoint實時地監控Solo,說明我們成功地安裝、整個了Pinpoint和Solo。

釋出應用到市場

釋出

在Rainbond中,你可以將整套業務系統打包成一個雲市應用,並選擇將該應用釋出到團隊、公司、好雨公有云市。分享到不同的範圍,可見性也有所不同,具體可見範圍如下:

  • 團隊:只有當前團隊下的成員可見
  • 公司:當前企業下的所有成員可見
  • 好雨雲市:連線好雨公有云市的所有企業及使用者可見

好雨雲市是Rainbond定義的一種對於Rainbond應用的儲存、共享、交付、管理途徑。 對於當前IT軟體交付的方式複雜,人力投入大的難題,Rainbond對異構應用服務提供了標準化的打包形式,將軟體、依賴部署關係、功能擴充套件外掛、版本資訊、執行環境、配置資訊甚至是初始化資料等整體打包存放於應用市場。因此應用市場是Rainbond定義的一種應用的共享途徑,它可以跨團隊,跨資料中心,甚至跨平臺的分享應用。應用市場的應用是完整的業務解決方案整合體,或者是優秀的架構實踐體,其可以標準化得一鍵交付部署。

我們將一個應用組內完整的業務解決方案整合體整體打包成一個雲市應用,釋出成功後,其他使用者在建立應用時可以選擇從應用市場安裝的方式一鍵安裝部署完整的服務體系,實現標準化得一鍵交付部署。詳情請參見:應用釋出

填寫完應用名、版本、分享範圍、圖示等應用基本資訊後,就可以提交了。

提交了之後,會進行應用檢測。應用檢測完成後,來到頁面的下邊,點選確認分享,將應用釋出出去。

然後我們就可以在內部市場找到剛剛釋出的Solo-Pinpoint(僅僅可以在內部市場中找到)。

上架

如果想要可以在雲市中找到剛剛釋出的Solo-Pinpoint應用,那麼需要在雲市中上架Solo-Pinpoint。上架後的應用可以被連線好雨公有云市的所有企業及使用者看到。

  • 資訊編輯,使用Markdown編寫應用的詳細介紹,讓使用者可以更好地去了解應用。

  • 設定價格

  • 上架

完成上架之後,我們就可以在雲端中找到Solo-Pinpoint

應用匯入和匯出

為了讓使用者能夠更好的管理自己的應用,快捷簡單交付業務,我們為平臺設計了應用匯入匯出功能,該功能允許使用者通過簡單的幾次點選,就可以將內部市場的應用打包為一個壓縮檔案,並可以下載到本地。在匯出的時候,支援兩種格式,一種為rainbond-app格式,另一種為docker-compose格式。詳情請見:應用匯入與匯出

應用匯出

  • 進入內部市場頁面
  • 找到Solo-Pinpoint,點選該應用版塊上的匯出應用

匯出的過程可能會比較長。匯出成功後, 下載按鈕會由灰色變成藍色,點選下載按鈕進行下載,將檔案下載到本地。

下載完成後, 會得到一個叫Solo-Pinpoint-v1.0.zip的檔案, 這就是Solo-Pinpint的備份檔案。

應用匯入

應用匯入有以下兩種方式:

  • 如果你的網路情況不樂觀的情況下,我們建議您直接在對應的資料中心的伺服器上進行操作。你可以將RainbondAPP檔案複製到資料中心管理節點上我們提供的目錄下。
  • 如果網路情況較好,可以直接通過網路上傳檔案至資料中心指定目錄下(本文章使用的方式)。

我們先將市場裡的Solo-Pinpoint刪除了,再匯入上邊匯出的Solo-Pinpoint-v1.0.zip。

上傳完成後,勾選Solo-Pinpoint-v1.0.zip,點選確認匯入。

因為Solo-Pinpoint-v1.0.zip這個檔案的大小有1G,所以上傳和匯入會比較久。

匯入完成之後, 可以再次在內部市場中找到Solo-Pinpoint。

應用備份和恢復

應用備份

對於生成環境的業務系統,我們需要對其進行定期的全量備份操作,過去我們針對資料單獨進行備份,或對資料庫進行單獨備份。缺乏一種全域性統一備份的機制,特別是對於分散式應用。Rainbond應用組備份與恢復完成對業務系統的整體的、全量的備份,以實現整個系統故障時的全域性回滾。詳情請見:應用備份

備份操作分為本地備份和雲端備份兩種,這裡使用的是本地備份:

本地備份:將一組應用備份在本地,本地備份的應用無法進行跨資料中心和租戶的遷移操作。

雲端備份:需要配置sftp伺服器和私有hub倉庫才能進行雲端備份,雲端備份可以實現應用的跨資料中心和租戶操作,並且還能支援該組備份的匯出。目前企業版支援管理後臺配置sftp和hub倉庫的配置。

備份操作如下——

備份成功——

應用恢復

接下來,我們對 5.1 應用備份 中備份的檔案Solo-Pinpoint-v1.0.zip進行恢復,操作如下:

恢復操作過程中請勿關閉恢復頁面,否則可能會導致恢復失敗。

為了保證您的資料安全,恢復操作過程我們會生成一份您的備份應用的拷貝,您可以在恢復的最後一步中選擇刪除原有的應用。

恢復成功後,會多出一個叫Solo-Pinpoint_1ccf的應用,這就是恢復後的應用。

成功啟動恢復後的Solo-Pinpoint_1ccf

總結

本文通過Solo+Pinpoint這個例子,對“如何製作一個可分享的雲市應用?”進行了演示,希望大家可以得到這個技能;同時,對這個Solo-Pinpoint這個應用執行了匯入、匯出、備份和恢復等操作,希望可以幫助大家瞭解Rainbond。

關於Rainbond

Rainbond(雲幫)是"以應用為中心”的開源PaaS, 深度整合基於Kubernetes的容器管理、ServiceMesh微服務架構最佳實踐、多型別CI/CD應用構建與交付、多資料中心資源管理等技術, 為使用者提供雲原生應用全生命週期解決方案,構建應用與基礎設施、應用與應用、基礎設施與基礎設施之間互聯互通的生態體系, 滿足支撐業務高速發展所需的敏捷開發、高效運維和精益管理需求。