Rainbond是一款云原生平臺,用戶可以在軟件開發云應用,可以在軟件開發web程序,可以在軟件設計遠程服務平臺,讓用戶可以在遠程管理自己的設備,在遠程服務平臺管理自己的工作數據,軟件功能非常多,可以在軟件上創建應用模板,可以為自己的團隊或者是企業創建第一個應用模板,方便以后直接使用模板部署應用程序;Rainbond具有完善的組件插件開發,流程部署功能,能夠自助完成應用插件設計,支持多種Service Mesh框架實現(envoy、linkerd等),針對不同場景可實時替換,可以可以通過標準的方式安裝到任何Rainbond平臺或其他支持的云原生平臺!
Rainbond軟件功能
一、集群管理
功能描述:
1、Kubernetes集群托管
Kubernetes作為基設施是Rainbond的基資源
2、云資源對接
支持阿里云ACK集群創建,初始化
支持阿里云存儲資源對接
3、集群一鍵化安裝和擴容
支持便捷安裝Kubernetes集群和Rainbond集群初始化
4、多集群應用調度
應用(組件)支持在多個集群間調度
5、多集群應用編排
支持部署應用到多個集群
二、應用的部署
功能描述:
1、支持源代碼持續構建
支持PHP源碼編譯,支持PHP源代碼、PHP5.3~7版本運行時,apace、nginx構建應用,并支持流行的PHP開發框架
支持Java源碼編譯,支持Java(maven)源代碼、war包、jar包構建應用,并支持流行的java開發框架
支持Python源碼編譯,支持Python源代碼、Python 2.6~3.2運行時構建應用,并支持流行的Python開發框架
支持Node.js源碼編譯,支持Node.js源代碼、Nods.js 6.x~10.x運行時構建應用,流行的Node.js開發框架,包括前端類項目。
支持Golang源碼編譯、Golang 1.8.x,1.9.x運行時構建應用,并支持流行的Golang開發框架
支持dotnet源碼編譯、支持選擇多個版本的編譯和運行環境(.netcore linux運行)
支持Dockerfile識別和構建,支持Dockerfile源碼的方式構建應用
2、Docker鏡像持續構建
支持基于DockerRun命令識別服務運行方式構建服務組件
支持解析DockerCompose文件識別服務運行方式批量構建服務組件
支持從私有鏡像倉庫、公有鏡像倉庫獲取Docker鏡像
支持鏡像倉庫Webhook服務的持續部署與發布
3、支持集成Git源碼倉庫
分租戶的代碼倉庫管理,針對不同的團隊隔離代碼倉庫
支持GitWebhook自動回調功能,實現應用的持續部署與發布
支持代碼分支、tag部署,支持使用不同的代碼分支、tag構建應用
4、支持集成Svn源碼倉庫
支持從Svn代碼倉庫獲取源碼,支持賬戶授權和子目錄構建
5、支持第三方服務集成管理
支持管理運行于Rainbond集群外的服務,并與Rainbond應用和ServiceMesh網絡無縫集成。
6、支持應用12要素原則
平臺遵循或兼容PaaS平臺應用的12要素原則
7、一鍵部署及回
實時顯示部署及回過程,應用的部署與回過程要實時可見,方便排查問題
版本構建歷史可追溯,顯示版本詳細,要可以追溯到應用的各個部署版本及詳細的部署,包括代碼提交,作人員等
支持自動不間斷動升級,應用部署,升級過程中不能影響現有業務,提供不間斷業務的升級機制
支持一鍵回,支持應用的快速回,且不應影響現有業務
8、支持自定義的pipeline
支持基于API 對接Jenkins Pipeline, Jenkins處理完成后由Rainbond完成后續CI/CD流程
三、組件管理與運維
功能描述:
1、組件生命周期管理
支持對組件的啟動、停止、更新、升級、持續構建管理
支持無狀態組件的動升級,升級過程不影響業務
支持有狀態組件的動升級,集群組件升級過程不影響業務
支持基于應用市場的組件升級策略
支持針對組件作的嚴格的權限管理機制與審計機制
2、組件持續開發
支持基于代碼倉庫Webhook,鏡像倉庫Webhook,自定義API自動構建
3、組件版本管理
支持查詢組件構建版本列表
支持查看構建版本與源碼版本的對應關系
支持版本回
4、組件實例管理
支持查詢組件運行實例的詳細(基、運行容器、事件)
支持查詢組件實例異常重啟、OOM等異常
5、組件環境配置管理
支持基于環境變量的組件配置管理
直接基于動態配置文件的組件配置管理
支持基于動態注入的連接配置管理
6、組件存儲管理
支持共享存儲、本地存儲和內存存儲類型(5.1.X及以前)
支持基于StorageClass擴展存儲支持類型,默認包括(Ceph-RBD, GlusterFS, 阿里云塊設備等)(5.2.0及以后)
可共享類型的存儲支持存儲組件間共享
7、組件構建源管理
支持持續調整組件構建源設置
支持設置組件源碼構建參數,根據不同的語言設置Runtime版本,編譯參數等
8、組件志管理
支持實時應用級匯總,存儲,分割和實時展示,能實時顯示組件的志、匯總分析志、志存儲與下載功能
支持基于插件對接ELK等志分析服務,能夠對接業界流行的志分析工具,如ELK進行展示與分析
9、組件伸縮管理
支持不中斷組件的的水平伸縮和垂直伸縮作,平臺應用應具備生產級(不中斷業務)水平與垂直伸縮服務的能力
支持基于內存、CPU資源的自動伸縮策略
支持基于業務級分析指標的自動伸縮策略,平臺具備根據業務分析指標來達到自動伸縮服務的能力(TODO)
10、組件高可用保證
支持便捷部署高可用分布式組件,將數據與計算分離,與計算分離。
賦予大多數Web組件分布式部署能力
11、組件能分析
支持常用應用協議的實時能(響應時間和吞吐率)分析,支持常用應用協議,如HTTP、TCP、SQL的實時能分析,如響應時間,吞吐率等功能
支持請求Top實時展示,組件的能分析以列表的形式展示,并能將影響能最大的L/SQL進行排序
支持歷史分析數據查詢,組件的能分析志支持按小時與期進行查詢
支持組件實例實時狀態展示和 實例內存實時狀態展示和監控
12、組件健康檢測
支持基于多種策略的應用健康檢測,平臺對運行的不同協議類型的應用進行實時的監控
支持不健康組件實例的自動下線,針對異常的組件,支持配置不同的處理策略
13、組件管理終端
支持基于web的終端管理,平臺應用具備web 控制臺功能,方便開發人員登錄應用內部臨時調試程序。
支持基于命令行的終端管理,平臺應支持命令行的方式進行管理,如創建應用,啟/停組件,擴容組件等作
14、組件業務監控
支持自定義定義組件監控目標(Pmetheus規范)
支持插件化擴展支持Mysql、Redis等業務監控
支持自定義定義業務監控可視化視圖
15、業務鏈路追蹤
支持Java類組件對接Pinpoint鏈路追蹤
16、第三方組件管理
支持基于API動態注冊第三方組件通信地址
支持靜態管理第三方組件通信地址
支持第三方組件健康檢測
支持第三方組件業務級監控數據收集(5.3及以上版本)
支持通過ServiceMesh訪問第三方組件
支持通過應用訪問第三方組件
四、應用管理
功能描述:
1、應用級生命周期管理
支持應用級啟動、停止、構建、升級作
支持動態組件內部組件之間依賴關系
2、應用服務治理框架切換
支持內置ServiceMesh治理框架
支持kubernetes 原生模式
支持Istio服務治理框架(5.3.X 版本計劃)
3、拓撲圖可視化
全局業務拓撲實時狀態展示,能實時顯示業務組的連接(網絡)拓補圖展示功能
支持可視化編輯組件間依賴關系
支持拓撲流量實時展示,具備拓撲圖的流量監控及監控狀態顯示功能
4、應用復制
基于已部署應用快速復制
支持跨集群、跨租戶復制應用
支持復制應用時批量修改構建源版本
5、組件備份與恢復
支持應用級整體全量備份
支持備份跨租戶、跨數據中心遷移和恢復
支持備份數據的導入和導出
支持云端備份到對象存儲,默認支持S3和AliOSS
6、應用發布
支持應用發布到企業中臺組件庫
支持應用發布到云端應用市場
支持發布記錄管理
7、應用升級
支持基于企業中臺內部組件庫自動化升級和回
支持基于云應用市場應用持續升級
8、應用配置組
支持應用級配置組,定義多個組件的通用環境配置
Rainbond軟件特色
1、以應用為中心
開發者僅需圍繞符合12要素的應用(組件)進行開發和運維管理,無需面對復雜的底層資源,包括Kubernetes資源。
2、云原生應用交付
提供完善的云原生應用組裝和多云分發流程,覆蓋測試交付、生產運維交付、To B 產品交付等場景。
3、Kubernetes 多云對接
Kubernetes 即將成為云原生基設施,Rainbond 支持對接管理多個 Kubernetes 集群,提供應用運行環境,屏蔽 Kubernetes 技術復雜,賦能基設施管理。
4、面向交付的應用架構
應用與運行環境解耦合,服務治理架構與業務邏輯解耦合,使應用天生具有微服務治理能力,資源不綁定能力。
5、開發者友好
平臺支持多種簡單途徑持續構建云原生應用,開發者無需學習 Kubernetes 、微服務知識、高級運維知識,即可獲得最佳的云原生體驗。
6、開源
Rainbond 是一個完整開源的企業級平臺。
Rainbond教程
組件創建流程說明:本篇文檔介紹在 Rainbond 中創建組件的基流程。
前提條件
已完成團隊的規劃和創建。
集群資源充足。
組件的創建目前有兩個入口,分別是團隊視圖/創建組件入口 和 應用視圖/添加組件入口 ,創建流程一致。
從源碼開始創建組件
下面將會以 Java 源碼創建組件為例, 介紹在 Rainbond 上用源碼創建組件流程。
1、提供組件名稱和所屬應用,最關鍵的是提供構建源,源碼構建即提供代碼倉庫地址,授權等。
2、等待 Rainbond 對源代碼進行檢測,這個過程 Rainbond 將根據代碼源獲取源代碼并進行語言類型、語言規范等檢測,并從 Rainbondfile 文件中讀取組件屬。
2、如果檢測結果通過即會根據檢測回的組件屬創建組件,如果不通過用戶需要根據提示更改相關。
4、檢測完成后用戶可以選擇構建啟動或進行高級設置,設置更多組件屬。若選擇構建啟動 Rainbond 將再次獲取源代碼根據代碼檢測的語言類型進行源碼構建。請注意,源碼類型只會在源碼檢測中讀取,因此后續的開發過程如果更改了語言類型,需要觸發重新代碼檢測。
5、組件構建完成后即可通過端口綁定的默認域名進行訪問。
Git 和 Svn 的使用
在創建組件時,根據代碼倉庫的類型選擇 Git 或 SVN, 并正確填寫該應用的代碼倉庫地址以及要使用的代碼分支或 tag. Git 的默認分支是 master, SVN 的默認 tag 是 trunk。
svn checkout 代碼時的默認參數包括:
copy–username –password –non-interactive –trust–cert
git 獲取代碼時支持認證、Key 認證和 Oth2.0 認證。
密碼連接代碼倉庫
如果需要用密碼連接代碼倉庫, 則點擊填寫倉庫密碼, 正確填寫你的登陸用戶名及密碼即可.
SSH 連接代碼倉庫
如果需要用 SSH 秘鑰連接代碼倉庫, 則點擊下方的配置授權 Key, 會為你生成一段秘鑰, 把這段秘鑰添加到你代碼倉庫的部署秘鑰中.
從 Docker 鏡像創建
下面將會以 Nginx 的鏡像為例, 介紹并演示在 Rainbond 上用 Docker 鏡像創建組件的過程。 與源碼創建流程一樣,不同的是提供的構建源和類型不同,流程如下:
1、提供組件名稱和所屬應用,最關鍵的是提供構建源,鏡像構建即提供鏡像名稱和授權。
2、Rainbond 將根據提供的鏡像獲取鏡像,Rainbond 能夠獲取到指定的鏡像是創建成功的基。目前 Rainbond 對于鏡像的檢測規范較為靈活,因此務必注意通過檢測的鏡像不一定能夠正常的運行,比如上文提到的 Rainbond 不能運行的鏡像類型。Rainbond 獲取鏡像成功會解析鏡像的元數據獲取創建組件所需的屬。
如果希望可以批量添加環境變量,最好將其定義到鏡像元數據中(即 Dockerfile 中定義)。Rainbond 識別時將自動從其中識別獲取。
1、應用檢測通過后即可創建組件。
2、構建完成后即可訪問組件
由 Docker 鏡像創建的組件就完成了。如果從私有鏡像倉庫的鏡像創建組件,需要注意下述幾類問題:
私有倉庫 Https 配置完善,可以直接拉取鏡像。
如果私有倉庫使用自簽證書,Rainbond Chaos 組件所在節點需要配置私有倉庫信任,參考運維文檔。
如果鏡像倉庫是私有的,請提供正確的密碼。
示例部署帶啟動命令的鏡像
通過 docker run 命令方式部署: docker run -p 8490:8490 goodrain.me/test -s “ws://192.168.1.1:8490”
通過指定鏡像方式:
鏡像地址: goodrain.me/test 并構建
應用構建源處修改啟動命令為 -s “ws://192.168.1.1:8490”
goodrain.me/test請替換為自己鏡像
制作可復用的應用模版編輯此頁面目的
通過文檔學習如何將用戶自己部署的業務系統,發布到 Rainbond 提供的 應用市場 中,成為可復用的 應用模版。
這么做的意義在于,將用戶自己的業務系統作為解決方案發布之后:
企業內部的其他用戶可以通過從應用市場安裝應用模版來快速復制這個解決方案。
應用模版 支持 在線交付 和 離線導出/導入,可以通過這兩種方式,進行軟件交付。
意義
通過實,學習如何自己制作可復用的應用模版,應用市場最終為企業提供了復制的能力。
前提條件
完成 從源碼部署一個服務組件 獲得 Java演示示例。
完成 從應用市場部署一個應用 獲得 Mysql5.7(單機版)。
完成 建立依賴關系 獲得完整的解決方案示例。
接下來,我們來將 Java演示示例 + Mysql5.7(單機版) 組合而成的應用 (業務層面可視為一套完整的解決方案)發布為一個應用模版。
發布應用模版
在應用拓撲圖頁面左邊欄點擊 發布 進入 發布記錄管理 頁面。
點擊 發布到應用市場 進入 應用模版及發布版本設置 頁面。
選擇或創建 應用模版,如創建,則必須定義 應用模版名稱,分享范圍(定義該應用模版的可見范圍,僅當前團隊可見或企業均可見)。
應用模版及發布版本設置
定義 版本號,使用如 1.0 這樣的數字定義,后續會根據版本號的大小判斷版本的新舊。
如有必要,填寫 版本別名(如生產版本、預發布版本等)、 版本說明(簡要說明)。
在 發布組件模型配置 中定義模版中各個組件的詳細設置,包括 連接、環境變量、伸縮規則。
點擊 提交,進入應用同步頁面。
應用同步
在這個頁面里,Rainbond 會自動進行應用同步,包括鏡像的打包與推送。用戶只需要靜待同步完成,看到下面的情況,即同步完成。
同步完成
點擊 確認分享,就完成了 應用模版 的發布。
應用模版展示
應用模版一旦被成功發布,就會出現在應用市場的頁面中,根據創建應用模版時 發布范圍 選擇的不同,應用模版的可見范圍也不一樣。
發布范圍選擇 團隊 的情況下,我們僅可以在發布該應用模版的團隊分頁下找到應用模版。
應用市場團隊分頁
發布范圍僅在選擇 企業 的情況下,才可以在企業分頁下找到應用模版,否則不可見。示例應用模版發布時選擇發布范圍為 團隊,所以無法在企業分頁展示。
應用市場企業分頁
與可見范圍相對應的,當前應用模版,只可以在 發布時使用的團隊 中安裝。僅有發布范圍為 企業 時,應用模版才可以在當前企業下的所有團隊里安裝使用。
編輯應用模板
已創建的應用模版,可以進行編輯。編輯的入口如下圖所示:
編輯應用模版
可編輯的內容包括:
名稱,應用模版的名字。
發布范圍,可以修改到 指定團隊 或 當前企業。
分類標簽,添加標簽可以將應用模版進行快速的歸類和過濾。
描述,簡要的介紹當前應用模版。
LOGO,可以上傳一個圖片,作為應用模版的 logo。
是否 release,特殊標簽,指示當前應用模版的開發狀態。
基于版本號一鍵上線/回
概述
以下內容針對通過共享庫進行應用升級上線的場景
具體流程:
1、在測試環境對應用進行測試,并在測試完畢后發布至共享庫,
2、在生產環境中一鍵安裝該應用,作為生產應用,
3、模擬測試環境應用進行了升級,并重新發布至共享庫,定義新的應用版本,
4、在生產環境將生產應用進行升級,并且模擬在升級出現問題后執行回作。
前提條件
完成 將應用發布為應用模版 ,擁有基于示例應用模版安裝的應用
作步驟
1.模擬測試環境代碼改動,進行構建后再次將應用發布至共享庫,定義 應用版本2.0,
2.發布完成后在生產環境該應用 升級 界面將會提示當前應用可升級,點擊升級按鈕進行升級,
3.升級界面查看 云市應用升級記錄 ,點擊查看組件詳情,點擊 回 按鈕即可對升級作一鍵回。