很高興向大家宣布Rainbond v5.0正式發布!
Rainbond是開源的企業應用雲作業系統,支撐企業應用開發、架構、交付和運維的全流程,通過無侵入架構,無縫銜接各類企業應用,底層資源可以對接和管理IaaS、虛擬機和物理伺服器。
此前發布的Beta版本經過幾十家企業用戶安裝試用,非常感謝社區用戶反饋的每個問題。我們在5.0版本中進行了大量優化重構,同時也增加了多項重要功能,使得Rainbond的社區兼容性和穩定性得到全面提升。下面來介紹一下新版本重點功能:
對接已有Kubernetes集群,並升級了內置的Kubernetes和Docker版本基於過去版本在生產使用中積累的經驗和問題,我們將Rainbond應用運行時進行了完全重構。此次重構升級了Kubernetes和Docker的版本,並引入了Kubernetes的Deployment、Secret、Ingress、ConfigMap等資源,同時可支持對接已有Kubernetes集群。在應用存儲方面,運行時提供了分布式存儲和本地存儲的Provider, 在網絡方面增加了對Flannel的支持,在服務調度方面增加了更多的調度選擇機制。服務日誌方面,增加了計算節點日誌收集器完成日誌收集和與第三方日誌系統對接。
本次重構將Rainbond服務抽象進行了改進,使得Rainbond抽象能夠更好的支持Kubernetes原生抽象模型,為5.1版本Rainbond支持Helm Chart源碼創建應用奠定了基礎。
新增應用網關在之前的版本中我們支持基礎的域名綁定和四層的訪問支持,這些只解決了基礎的訪問需求,用戶現在可以通過應用網關體驗到大量開箱即用的訪問控制功能。應用網關是以應用為核心抽象的關鍵環節,網關一詞大家不會陌生,不管是傳統的流量網關還是API網關,都是業務服務的外層屏障。Rainbond應用網關基於Openresty進行功能擴展,其核心功能是應用訪問的負載路由和安全控制 。5.0版本中的重點是在負載路由方面,當前版本我們設計了兩類路由策略管理:
Rainbond應用網關自動發現當前數據中心運行的所有服務端點,根據用戶配置的訪問策略透明化的工作。後續的版本中應用網關將持續升級,帶來以下特性:
多種負載均衡算法
服務安全控制(插件式擴展業務安全控制)
多維度監控數據
支持gRPC等更多的L7應用級協議路由策略
升級源碼構建,支持Gradle構建Rainbond提供的源碼構建功能在過去的版本中深得用戶喜歡,從5.0版本開始,源碼CI機制的相關功能更新優先級將被提高。當前版本中我們首先帶來了對所有支持語言的Runtime版本的升級,具體升級版本見源碼支持文檔,對於Java我們增加了Gradle編譯方式的支持, 對於.NetCore增加自定義編譯命令功能的支持。
服務控制臺中增加了構建源設置區域,提供了對各類支持語言的編譯環境的相關設置,後續版本中將提供更豐富的設置項目方便用戶靈活選擇。
引入Windows應用的支持(Alpha)Windows應用目前依然存在於大多數傳統企業中,得益於微軟對容器化的大力支持,Windows容器技術目前已經可以投入商用。Windows體系是完全獨立的體系,從應用的編譯、構建、調度、運行都是獨立於Linux環境,因此對於Windows的支持工作量巨大。在5.0版本中我們完成了對Windows應用的自動化構建、調度、運行的支持。但從節點安裝、應用源碼構建方面還不完善,當前版本Windows應用的支持僅作為試用功能。
豐富大量文檔之前版本Rainbond在文檔方面不足,我們也認識到文檔對於開源項目的重要性。隨著5.0版本的發布,我們對文檔從結構上和內容上進行了整體的調整,在控制臺使用、平臺安裝與運維、技術架構等多方面進行文檔完善。
多達100多項的功能改進當前版本除了上訴的功能變化以外,我們在集群(節點)管理、應用管理、應用控制臺UI等方面進行了100多項改進。
詳細功能列表1. 新增應用網關(1)移除了原rbd-entrance rbd-lb 兩個組件,增加rbd-gateway組件
(2)支持HTTP、TCP服務訪問策略管理
(3)HTTP策略支持基於域名、訪問路徑、請求頭、Cookie訪問路由控制
(4)支持配置HTTPs規則、HTTP轉HTTPs規則
(5)支持泛域名規則
(6)支持SSL證書管理
(7)支持A/B測試、灰度發布控制
(8)TCP策略支持基於IP、埠訪問控制
(9)自定義負載均衡策略,目前支持支持輪詢算法,後續測試版本支持一致性Hash算法,Session粘連算法
(10)rbd-gateway支持集群部署,高可用與流量均攤,可工作於4層高性能軟硬體負載均衡之後。
(1)應用運行時完整重構,提供以應用為核心的控制器抽象
(2)無狀態服務部署類型更改為Kubernetes Deployment資源
(3)有狀態服務本地存儲、共享存儲提供更改為動態PV,運行時提供Provider
(4)應用狀態維護由集中式更改為分布式,去除單點間歇性故障
(5)有狀態服務、無狀態服務皆提供自動化滾動升級策略
(6) 默認Kubernetes版本升級到1.10版本 Docker版本升級到17.06版本
(7) 支持社區版本Kubernetes集群對接
(1)Java PHP Python NodeJS Golang .NetCore 各語言可選Runtime版本升級
(2)Java語言支持Gradle源碼構建 ,支持War、Jar包部署
(3)Dockerfile支持多階段構建
(4)支持離線環境下的源碼持續構建(離線環境已具有必要的使用語言包倉庫)
(1)明確定義 應用/服務 兩級抽象。
(2)應用Dashboard頁面拓撲圖應用狀態實時刷新。
(3)應用Dashboard頁面增加快捷創建服務組件的流程。
(4)應用Dashboard頁面增加應用級啟動、停止、升級控制。
(5)增加應用網關完整的控制流程頁面 (完成)。
(6)服務組件支持(更新升級)操作 。
(7)服務組件支持源碼構建配置 。
(8)應用安裝支持先安裝,配置後啟動選擇。
(1)node 組件支持windows節點部署,管理windows節點和平臺服務
(2)rbd-chao 組件支持windows節點部署,構建windows應用
(3)服務構建調度支持區分windows和linux應用。
(4)服務運行調度,存儲支持Windows節點。
(5)數據中心鏡像倉庫升級支持Windows鏡像。
(1)系統安裝策略由SaltStack更換為Ansible
(2)新加windowsutil組件支持傳統程序或腳本部署為windows服務
(3)支持多配置文件配置節點服務
(4)支持Windows節點下服務守護和健康檢查
(5)grctl多個命令升級改造
(6)內置支持安裝flannel host-gateway網絡