拓維信息使用 Rainbond 的云原生落地實踐

?我是來自拓維信息基石研究院 PAAS 團隊的 Golang 工程師丁鵬,同時我也是 Rainbond 社區(qū) TOC 成員之一。
我們團隊主要負責云原生應(yīng)用平臺的選型,搭建與開發(fā),以此做到對下屏蔽底層的基礎(chǔ)設(shè)施,對上托管我們的微服務(wù)應(yīng)用,便捷高效的幫助企業(yè)內(nèi)服務(wù)的云原生落地。
?
企業(yè)簡介
拓維信息是中國領(lǐng)先的軟硬一體化產(chǎn)品及解決方案提供商。
1996年成立,2008年上市(002261.SZ),以湖南為總部,在北京、上海、深圳等地設(shè)有分支機構(gòu),員工4000余名。業(yè)務(wù)涵蓋政企數(shù)字化、智能計算、鴻蒙生態(tài),覆蓋全國31個省級行政區(qū)、海外10+國家,聚焦數(shù)字政府、運營商、考試、交通、制造、教育等重點領(lǐng)域和行業(yè),服務(wù)超過1500家政企客戶,為其提供全棧國產(chǎn)數(shù)字化解決方案和一站式全生命周期的綜合服務(wù)。
拓維信息立志成為一家不斷創(chuàng)新的科技企業(yè),從運營商到數(shù)字政府、考試、制造、交通、教育等行業(yè)和領(lǐng)域,持續(xù)深耕IT軟件領(lǐng)域。
PAAS 之前
在使用一款易用的 PAAS 產(chǎn)品之前,我們各個團隊的服務(wù)部署方式并不統(tǒng)一:
A 團隊申請云服務(wù)器,自搭建 jenkins將應(yīng)用直接部署到服務(wù)器;B 團隊申請云服務(wù)器,使用 kubeadm搭建 K8s 集群,開發(fā)成員編譯鏡像,運維成員編寫應(yīng)用聲明文件進行部署與維護;C 團隊...
可以看出,當前的應(yīng)用運維管理方式存在著很多問題:
云資源管理的混亂:費用統(tǒng)計麻煩,資源利用率低; 團隊應(yīng)用管理的混亂:多制品庫,多種配套管理軟件;無法對應(yīng)用生命周期的可視化管理,監(jiān)控問題,日志問題; 運維重心:以資源為運維重心,耗費人力創(chuàng)造力,重心應(yīng)該轉(zhuǎn)移到應(yīng)用本身,更關(guān)注業(yè)務(wù)的創(chuàng)新;

PAAS 需求

為了解決眼前資源以及應(yīng)用管理亂象,我們需要一個 PAAS 平臺。這個 PAAS 平臺我們期待它具有的能力:
易用:不需要開發(fā)人員,運維人員耗費大量的時間精力學習應(yīng)用管理,云部署等知識,做到應(yīng)用的快速交付,持續(xù)交付; 自動化:對應(yīng)用全生命周期可管理,從源碼到可訪問的服務(wù),到日志,監(jiān)控等都可以在平臺呈現(xiàn); 可視化:應(yīng)用全生命周期可管理,從基本的應(yīng)用部署,滾動更新,停止等,上升到日志,監(jiān)控,可伸縮等能力,可以在平臺可視且輕松管理;
選型 Rainbond
為了加快 PAAS 平臺建設(shè)的步伐,我們決定站在巨人的肩膀上,從社區(qū)中對 幾款 PAAS 產(chǎn)品進行篩選。對比其優(yōu)劣勢,選擇更符合我們團隊需求的那款——最終 Rainbond 脫穎而出了。
Rainbond 的優(yōu)勢:
以應(yīng)用為中心的設(shè)計理念,做到了真正的易用,屏蔽基礎(chǔ)設(shè)施概念,讓開發(fā)團隊得以專注業(yè)務(wù)本身; 較完整的自動化能力,完整的可視化管理能力,基本符合需求的日志監(jiān)控功能; 直觀的微服務(wù)拓撲展示,利用服務(wù)網(wǎng)格治理實現(xiàn)本地訪問,減少服務(wù)上 PAAS 的配置改動(這是一個意外驚喜~); 應(yīng)用商店提供了常用軟件,幫助一鍵部署。
除此之外,Rainbond 還具有讓我們額外驚喜的能力:
應(yīng)用跨集群,跨團隊的快速復制能力,使多環(huán)境高效部署成為可能;
完備的集群端組件,網(wǎng)關(guān),日志,甚至制品庫(可替換),使得 Rainbond 本身可以完整提供應(yīng)用管理的能力;
自定義初始化容器以及SideCar容器能力,可插拔的方式為組件提供額外能力;
Rainbond 實踐
我們使用 Rainbond 構(gòu)建組件呈現(xiàn):
可視化的組件拓撲以及組件依賴,以及由此帶來的相互依賴組件之間本地化的訪問方式

組件的全生命周期管理,組件所需基礎(chǔ)設(shè)置資源輕易配置

高效的網(wǎng)關(guān)配置中心,不再需要頻繁登錄云平臺控制臺配置負載均衡

Rainbond 足夠易用到不需要我們?nèi)ソ榻B怎么使用它來構(gòu)建與管理組件。
我們在其他領(lǐng)域的一些使用經(jīng)驗。
單域名多路由服務(wù)
默認組件開通 http 端口時得到這樣的訪問 url:
a組件:http://a.apps.example.com
b組件:http://a.apps.example.com
而下面才是你期待的 url:
a 組件:http://apps.example.com/a
b 組件:http://apps.example.com/b
那么你可以使用 Rainbond 網(wǎng)管的 PathRewrite 功能:

自定義插件
基于 Rainbond 的插件可插拔設(shè)計,我們可以自定義插件服務(wù)。
文件管理插件
你可能會有上傳文件到組件容器的需求,得益于 Rainbond 自定義開發(fā)插件的功能,你可以通過開發(fā)插件來為組件實現(xiàn)文件管理插件,你只需要為你的組件安裝具有文件管理能力的插件,然后再為組件創(chuàng)建一個目標目錄的共享存儲,再通過開通組件端口,即可實現(xiàn)組件容器的文件管理。類似下圖
「創(chuàng)建插件」

「配置插件環(huán)境變量」

「開通插件」

「創(chuàng)建共享存儲」

「開通http網(wǎng)關(guān)」

「數(shù)據(jù)中間件管理插件」
部署了如 MySQL,Redis 的數(shù)據(jù)中間件,苦于沒有現(xiàn)成的管理軟件,或者當前無法對外開通 tcp 端口,那么你可以基于 dbgate 這款開源軟件來開發(fā)一款數(shù)據(jù)中間件的管理插件。
我相信大家已經(jīng)會舉一反三了,不再示例。
最后
Rainbond 目前已經(jīng)迭代到了 V5 大版本了,作為一款易用的 PAAS 云原生應(yīng)用平臺,功能也趨于完備,我們也期待 Rainbond 能發(fā)展的越來越好。
得益于 Rainbond 的社區(qū)支持,我們在使用 Rainbond 時都比較順利,Rainbond 確實幫助我們團隊內(nèi)順利的過渡到了云原生的應(yīng)用管理階段,降低了耗費在云資源管理上的精力,轉(zhuǎn)而關(guān)注應(yīng)用本身。
而在使用過程中遇到功能 bug 或有更佳實踐時,我們也倡導團隊積極向社區(qū)提交 issue,或排查解決,這是開源的健康循環(huán)的一點。
About Rainbond
?Rainbond 核心100%開源,使用簡單,不需要懂容器和Kubernetes,支持管理多種Kubernetes集群,提供企業(yè)級應(yīng)用的全生命周期管理。
?
?? Github:https://github.com/goodrain/rainbond
?? 官網(wǎng):https://www.rainbond.com
?? 微信群:關(guān)注 Rainbond 公眾號加入技術(shù)交流群
?? 釘釘群:請搜索釘釘群號 31096419
