開源云原生應(yīng)用管理平臺(tái) - Rainbond
Rainbond 是一個(gè)云原生應(yīng)用管理平臺(tái),使用簡(jiǎn)單,不需要懂容器、Kubernetes 和底層復(fù)雜技術(shù),支持管理多個(gè) Kubernetes 集群,和管理企業(yè)應(yīng)用全生命周期。遵循 以應(yīng)用為中心的設(shè)計(jì)理念,統(tǒng)一封裝容器、Kubernetes 和底層基礎(chǔ)設(shè)施相關(guān)技術(shù),讓使用者專注于業(yè)務(wù)本身, 避免在業(yè)務(wù)以外技術(shù)上花費(fèi)大量學(xué)習(xí)和管理精力。同時(shí),Rainbond 深度整合應(yīng)用開發(fā)、微服務(wù)架構(gòu)、應(yīng)用交付、應(yīng)用運(yùn)維、資源管理,管理高度自動(dòng)化,實(shí)現(xiàn)統(tǒng)一管理所有應(yīng)用、所有基礎(chǔ)設(shè)施和所有 IT 流程。
開發(fā)平臺(tái)
Rainbond 作為開發(fā)平臺(tái),自身的一些功能亮點(diǎn)可以使開發(fā)者關(guān)注于業(yè)務(wù)代碼,無需關(guān)注應(yīng)用部署。
源碼一鍵部署
源碼一鍵部署,只需填寫代碼倉(cāng)庫地址,Rainbond 會(huì)自動(dòng)識(shí)別項(xiàng)目語言,讓傳統(tǒng)應(yīng)用不需要改動(dòng)或少量改動(dòng)就能快速變成云原生應(yīng)用。
識(shí)別策略:Java 項(xiàng)目根目錄存在 Pom.xml,其他語言類似。
支持多種語言,例如:Java、Python、PHP、.NetCore、Go、NodeJS、Dockerfile 等。

微服務(wù)編排
Rainbond 支持多種 Service Mesh,例如:內(nèi)置的 Service Mesh、基于 Istio 的 Service Mesh。在 Rainbond 拓?fù)鋱D通過拖拉拽即可實(shí)現(xiàn)微服務(wù)編排。
服務(wù)之間通過 127.0.0.1:8080 訪問,例如:A 服務(wù)依賴 B,A 服務(wù)會(huì)向 B 服務(wù) 注入 IP: PORT 127.0.0.1:8080。

應(yīng)用復(fù)制
多套環(huán)境搭建一直是比較頭疼的事情,在 Rainbond 上可以通過 應(yīng)用快速?gòu)?fù)制 功能,把我們?cè)?Rainbond 上搭建好的環(huán)境,很輕松的一鍵式復(fù)制出多套環(huán)境 1 -> N。應(yīng)用復(fù)制會(huì)將已經(jīng)配置的 環(huán)境變量 配置文件 依賴關(guān)系 等完全復(fù)制。

應(yīng)用、組件管理
Rainbond 支持對(duì)應(yīng)用、組件的全生命周期管理。包含 啟停、重啟、滾動(dòng)更新、版本回滾等。
關(guān)閉組件、應(yīng)用是 Rainbond 的一個(gè)亮點(diǎn),當(dāng)我們的應(yīng)用或某個(gè)服務(wù)暫時(shí)不使用時(shí),可以關(guān)閉該服務(wù)或應(yīng)用,將資源釋放,需要時(shí)一鍵啟動(dòng)即可。 Rainbond 支持對(duì)單個(gè)組件進(jìn)行版本回滾,當(dāng)某個(gè)服務(wù)上線出現(xiàn)問題時(shí),一鍵回滾將服務(wù)恢復(fù)正常。
日志收集:Rainbond 會(huì)收集每個(gè)服務(wù)的日志并展示在組件視圖內(nèi),方便用戶排查定位問題,并默認(rèn)存儲(chǔ) 7 天內(nèi)的日志。
組件伸縮:一鍵調(diào)整組件的 CPU、內(nèi)存,也可設(shè)置自動(dòng)伸縮策略。
環(huán)境配置:通過圖形化界面配置組件的 環(huán)境變量 配置文件,也可將其他組件的配置文件共享到該組件中。
存儲(chǔ):添加組件的 持久化存儲(chǔ),Rainbond 會(huì)自動(dòng)創(chuàng)建 PVC PV 。

網(wǎng)關(guān)策略
Rainbond 應(yīng)用網(wǎng)關(guān)只需簡(jiǎn)單的配置即可一鍵開啟對(duì)外訪問策略,Rainbond 會(huì)自動(dòng)創(chuàng)建 Service Ingress ,服務(wù)對(duì)外訪問更加簡(jiǎn)單。同時(shí)也可以一鍵開啟 TCP 訪問策略。

應(yīng)用配置組
應(yīng)用配置組是將相同的環(huán)境變量生效到多個(gè)組件中,這對(duì)于多個(gè)服務(wù)的環(huán)境變量相同很有幫助,避免重復(fù)性操作。

交付平臺(tái)
Rainbond 也可以作為交付平臺(tái),Rainbond 的 RAM 應(yīng)用模型配合 Rainbond 內(nèi)置組件庫很適用于應(yīng)用交付,這對(duì)于 ToB 企業(yè)非常友好。
Rainbond 應(yīng)用模版是由多個(gè)版本組成,可以安裝應(yīng)用模版的任意版本,同時(shí)也支持基于應(yīng)用模板的升級(jí)、回滾。
應(yīng)用發(fā)布
應(yīng)用發(fā)布是將多個(gè)服務(wù)組成的應(yīng)用一鍵發(fā)布到 Rainbond 內(nèi)置的組件庫,應(yīng)用發(fā)布會(huì)將應(yīng)用內(nèi)所有的 鏡像 環(huán)境變量 配置文件 依賴關(guān)系 等一起發(fā)布打包。

導(dǎo)出應(yīng)用
應(yīng)用導(dǎo)出是將我們發(fā)布到內(nèi)部組件庫的應(yīng)用一鍵導(dǎo)出一個(gè)應(yīng)用包,這個(gè)應(yīng)用包我們可以在另外一套 Rainbond 環(huán)境中導(dǎo)入,實(shí)現(xiàn)應(yīng)用交付。同時(shí)也支持 DockerComposeApp 規(guī)范,這適用于只安裝了 DockerCompose 的環(huán)境。

快速使用
將以 Java + Mysql 作為示例應(yīng)用。
Java Git 地址:https://gitee.com/rainbond/java-maven-demo.git
Mysql 選擇基于開源應(yīng)用商店安裝。
安裝 Rainbond
安裝單機(jī)體驗(yàn)版,這適合快速了解 Rainbond 的用戶,采用 Docker In Docker 方式。
# 安裝 Docker
$ curl sh.rainbond.com/install_docker | bash
# 設(shè)置 EIP
$ export EIP=<你的IP地址>
# 啟動(dòng) 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
在團(tuán)隊(duì)視圖選擇 基于源碼創(chuàng)建組件-> 填寫相關(guān)信息以及 Git 地址。

確認(rèn)創(chuàng)建,Rainbond 會(huì)識(shí)別項(xiàng)目代碼語言類型,片刻后識(shí)別代碼語言為 Java-maven,創(chuàng)建組件即可。整個(gè)過程 Rainbond 將獲取代碼、打 Jar 包、構(gòu)建鏡像,無需人為干預(yù)。 構(gòu)建完成后,進(jìn)入到 組件內(nèi) -> 端口,打開對(duì)外服務(wù),訪問自動(dòng)生成的域名即可訪問到服務(wù)頁面。
Mysql 部署
Rainbond 開源應(yīng)用商店是由 Rainbond 提供的在線商店,商店內(nèi)聚集了各個(gè)中間件、開源軟件等,供大家一鍵安裝,快速體驗(yàn)。
通過開源應(yīng)用商店一鍵部署 Mysql
在團(tuán)隊(duì)視圖選擇 基于應(yīng)用市場(chǎng)創(chuàng)建組件 -> 搜索 Mysql -> 安裝。

服務(wù)編排
在應(yīng)用視圖內(nèi)切換到 編排模式,將Java連接到Mysql并更新 Java 組件。訪問 Java 組件,切換到 Mysql 示例(域名/mysql.html)即可看到 Mysql 的連接信息,這就代表 Java 服務(wù)正常連接到 Mysql 了。

應(yīng)用發(fā)布
進(jìn)入發(fā)布頁面,發(fā)布到組件庫,創(chuàng)建 應(yīng)用模版,填寫版本號(hào)等其他信息。編輯發(fā)布組件信息 (可選) 提交發(fā)布。

應(yīng)用安裝
發(fā)布到內(nèi)部組件庫的應(yīng)用我們可以導(dǎo)出應(yīng)用包,也可以在當(dāng)前集群 基于應(yīng)用市場(chǎng)安裝。
在團(tuán)隊(duì)視圖內(nèi)新增 基于應(yīng)用市場(chǎng)安裝,一鍵安裝剛剛發(fā)布的應(yīng)用。

到這里就介紹完了 Rainbond 的基礎(chǔ)使用,當(dāng)然 Rainbond 還有更多的功能沒有介紹,可以查看官方文檔 https://www.rainbond.com/docs/ 了解更多相關(guān)信息。
Github 倉(cāng)庫:https://github.com/goodrain/rainbond
