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