開源云原生應(yīng)用管理平臺 - Rainbond
Rainbond 是一個云原生應(yīng)用管理平臺,使用簡單,不需要懂容器、Kubernetes 和底層復(fù)雜技術(shù),支持管理多個 Kubernetes 集群,和管理企業(yè)應(yīng)用全生命周期。遵循 以應(yīng)用為中心的設(shè)計理念,統(tǒng)一封裝容器、Kubernetes 和底層基礎(chǔ)設(shè)施相關(guān)技術(shù),讓使用者專注于業(yè)務(wù)本身, 避免在業(yè)務(wù)以外技術(shù)上花費大量學(xué)習(xí)和管理精力。同時,Rainbond 深度整合應(yīng)用開發(fā)、微服務(wù)架構(gòu)、應(yīng)用交付、應(yīng)用運維、資源管理,管理高度自動化,實現(xiàn)統(tǒng)一管理所有應(yīng)用、所有基礎(chǔ)設(shè)施和所有 IT 流程。
開發(fā)平臺
Rainbond 作為開發(fā)平臺,自身的一些功能亮點可以使開發(fā)者關(guān)注于業(yè)務(wù)代碼,無需關(guān)注應(yīng)用部署。
源碼一鍵部署
源碼一鍵部署,只需填寫代碼倉庫地址,Rainbond 會自動識別項目語言,讓傳統(tǒng)應(yīng)用不需要改動或少量改動就能快速變成云原生應(yīng)用。
識別策略:Java 項目根目錄存在 Pom.xml,其他語言類似。
支持多種語言,例如:Java、Python、PHP、.NetCore、Go、NodeJS、Dockerfile 等。
微服務(wù)編排
Rainbond 支持多種 Service Mesh,例如:內(nèi)置的 Service Mesh、基于 Istio 的 Service Mesh。在 Rainbond 拓撲圖通過拖拉拽即可實現(xiàn)微服務(wù)編排。
服務(wù)之間通過 127.0.0.1:8080 訪問,例如:A 服務(wù)依賴 B,A 服務(wù)會向 B 服務(wù) 注入 IP: PORT 127.0.0.1:8080。
應(yīng)用復(fù)制
多套環(huán)境搭建一直是比較頭疼的事情,在 Rainbond 上可以通過 應(yīng)用快速復(fù)制 功能,把我們在 Rainbond 上搭建好的環(huán)境,很輕松的一鍵式復(fù)制出多套環(huán)境 1 -> N。應(yīng)用復(fù)制會將已經(jīng)配置的 環(huán)境變量 配置文件 依賴關(guān)系 等完全復(fù)制。
應(yīng)用、組件管理
Rainbond 支持對應(yīng)用、組件的全生命周期管理。包含 啟停、重啟、滾動更新、版本回滾等。
- 關(guān)閉組件、應(yīng)用是 Rainbond 的一個亮點,當(dāng)我們的應(yīng)用或某個服務(wù)暫時不使用時,可以關(guān)閉該服務(wù)或應(yīng)用,將資源釋放,需要時一鍵啟動即可。
- Rainbond 支持對單個組件進行版本回滾,當(dāng)某個服務(wù)上線出現(xiàn)問題時,一鍵回滾將服務(wù)恢復(fù)正常。
日志收集:Rainbond 會收集每個服務(wù)的日志并展示在組件視圖內(nèi),方便用戶排查定位問題,并默認存儲 7 天內(nèi)的日志。
組件伸縮:一鍵調(diào)整組件的 CPU、內(nèi)存,也可設(shè)置自動伸縮策略。
環(huán)境配置:通過圖形化界面配置組件的 環(huán)境變量 配置文件,也可將其他組件的配置文件共享到該組件中。
存儲:添加組件的 持久化存儲,Rainbond 會自動創(chuàng)建 PVC PV 。
網(wǎng)關(guān)策略
Rainbond 應(yīng)用網(wǎng)關(guān)只需簡單的配置即可一鍵開啟對外訪問策略,Rainbond 會自動創(chuàng)建 Service Ingress ,服務(wù)對外訪問更加簡單。同時也可以一鍵開啟 TCP 訪問策略。
應(yīng)用配置組
應(yīng)用配置組是將相同的環(huán)境變量生效到多個組件中,這對于多個服務(wù)的環(huán)境變量相同很有幫助,避免重復(fù)性操作。
交付平臺
Rainbond 也可以作為交付平臺,Rainbond 的 RAM 應(yīng)用模型配合 Rainbond 內(nèi)置組件庫很適用于應(yīng)用交付,這對于 ToB 企業(yè)非常友好。
Rainbond 應(yīng)用模版是由多個版本組成,可以安裝應(yīng)用模版的任意版本,同時也支持基于應(yīng)用模板的升級、回滾。
應(yīng)用發(fā)布
應(yīng)用發(fā)布是將多個服務(wù)組成的應(yīng)用一鍵發(fā)布到 Rainbond 內(nèi)置的組件庫,應(yīng)用發(fā)布會將應(yīng)用內(nèi)所有的 鏡像 環(huán)境變量 配置文件 依賴關(guān)系 等一起發(fā)布打包。
導(dǎo)出應(yīng)用
應(yīng)用導(dǎo)出是將我們發(fā)布到內(nèi)部組件庫的應(yīng)用一鍵導(dǎo)出一個應(yīng)用包,這個應(yīng)用包我們可以在另外一套 Rainbond 環(huán)境中導(dǎo)入,實現(xiàn)應(yīng)用交付。同時也支持 DockerComposeApp 規(guī)范,這適用于只安裝了 DockerCompose 的環(huán)境。
快速使用
將以 Java + Mysql 作為示例應(yīng)用。
Java Git 地址:https://gitee.com/rainbond/java-maven-demo.git。
Mysql 選擇基于開源應(yīng)用商店安裝。
安裝 Rainbond
安裝單機體驗版,這適合快速了解 Rainbond 的用戶,采用 Docker In Docker 方式。
# 安裝 Docker
$ curl sh.rainbond.com/install_docker | bash
# 設(shè)置 EIP
$ export EIP=<你的IP地址>
# 啟動 Rainbond
$ docker run --privileged -d -p 7070:7070 -p 80:80 -p 443:443 -p 6060:6060 -p 8443:8443 \
--name=rainbond-allinone --restart=on-failure \
-v ~/.ssh:/root/.ssh \
-v ~/rainbonddata:/app/data \
-v /opt/rainbond:/opt/rainbond \
-v ~/dockerdata:/var/lib/docker \
-e ENABLE_CLUSTER=true \
-e EIP=$EIP \
registry.cn-hangzhou.aliyuncs.com/goodrain/rainbond:v5.7.1-dind-allinone \
&& docker logs -f rainbond-allinone
Java 部署
該服務(wù)是標(biāo)準(zhǔn)的 Spring Boot 2.1.2。
- 在團隊視圖選擇基于源碼創(chuàng)建組件 -> 填寫相關(guān)信息以及 Git 地址。
- 確認創(chuàng)建,Rainbond 會識別項目代碼語言類型,片刻后識別代碼語言為Java-maven ,創(chuàng)建組件即可。
- 整個過程 Rainbond 將獲取代碼、打 Jar 包、構(gòu)建鏡像,無需人為干預(yù)。
- 構(gòu)建完成后,進入到 組件內(nèi) -> 端口,打開對外服務(wù),訪問自動生成的域名即可訪問到服務(wù)頁面。
Mysql 部署
Rainbond 開源應(yīng)用商店是由 Rainbond 提供的在線商店,商店內(nèi)聚集了各個中間件、開源軟件等,供大家一鍵安裝,快速體驗。
通過開源應(yīng)用商店一鍵部署 Mysql。
- 在團隊視圖選擇 基于應(yīng)用市場創(chuàng)建組件 -> 搜索 Mysql -> 安裝。
服務(wù)編排
- 在應(yīng)用視圖內(nèi)切換到編排模式 ,將Java 連接到Mysql 并更新 Java 組件。
- 訪問 Java 組件,切換到Mysql 示例 (域名/mysql.html)即可看到 Mysql 的連接信息,這就代表 Java 服務(wù)正常連接到 Mysql 了。
應(yīng)用發(fā)布
- 進入發(fā)布頁面,發(fā)布到組件庫,創(chuàng)建應(yīng)用模版 ,填寫版本號等其他信息。
- 編輯發(fā)布組件信息 (可選)。
- 提交發(fā)布。
應(yīng)用安裝
發(fā)布到內(nèi)部組件庫的應(yīng)用我們可以導(dǎo)出應(yīng)用包,也可以在當(dāng)前集群 基于應(yīng)用市場安裝。
在團隊視圖內(nèi)新增 基于應(yīng)用市場安裝,一鍵安裝剛剛發(fā)布的應(yīng)用。
到這里就介紹完了 Rainbond 的基礎(chǔ)使用,當(dāng)然 Rainbond 還有更多的功能沒有介紹,可以查看官方文檔 https://www.rainbond.com/docs/ 了解更多相關(guān)信息。
Github 倉庫:https://github.com/goodrain/rainbond。