本發(fā)明屬于互聯(lián)網(wǎng)軟件開發(fā)運維,具體涉及一種基于云平臺的devops持續(xù)集成交付系統(tǒng)。
背景技術(shù):
1、隨著云計算技術(shù)的飛速發(fā)展,軟件開發(fā)與運維的邊界日益模糊,對高效、自動化的持續(xù)集成與交付流程需求迫切。傳統(tǒng)開發(fā)運維模式存在溝通不暢、交付周期長、質(zhì)量難以保證等問題。云計算以其彈性、可擴展性和按需服務(wù)的特性,為軟件開發(fā)和運維提供了強大的基礎(chǔ)設(shè)施支持。devops技術(shù)打破了開發(fā)和運維的壁壘,將開發(fā)、測試和運維的緊密協(xié)作和自動化流程,以提高軟件交付效率和質(zhì)量。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明提供一種基于云平臺的devops持續(xù)集成交付系統(tǒng),旨在通過整合云計算的彈性計算、高可用性和自動化管理優(yōu)勢,以及devops的敏捷開發(fā)與運維一體化理念,實現(xiàn)軟件開發(fā)從代碼提交到生產(chǎn)部署的全自動化系統(tǒng)。
2、本發(fā)明的技術(shù)方案:
3、一種基于云平臺的devops持續(xù)集成交付系統(tǒng),包括項目管理模塊和制品庫模塊;
4、項目管理模塊用于規(guī)劃、執(zhí)行和監(jiān)控所有項目,項目包括項目信息表、運維云平臺管理、開發(fā)庫、運維庫和測試庫;
5、制品庫模塊作為中央化存儲平臺,用于存儲和管理與軟件交付相關(guān)的組件和文檔,包括環(huán)境和工具安裝包、開發(fā)域制品、測試域制品和生產(chǎn)域制品;
6、所述項目管理模塊與所述制品庫模塊基于流水線腳本交互,流水線腳本實現(xiàn)環(huán)境包和中間制品的下發(fā)以及代碼的持續(xù)集成和交付;其中環(huán)境包基于ci流水線傳遞,中間制品基于cd流水線傳遞。
7、進(jìn)一步的,所述持續(xù)集成交付系統(tǒng)的運行過程包括以下步驟:
8、s1:將項目的軟件需求和問題進(jìn)行拆解,在項目管理模塊上通過需求單或問題單的方式將拆解后的任務(wù)分發(fā);
9、s2:配置云計算平臺作為devops系統(tǒng)的運行支撐;
10、s:3:根據(jù)需求單或問題單對項目代碼進(jìn)行迭代開發(fā);
11、s4:執(zhí)行ci流水線,對提交的代碼進(jìn)行編譯、代碼靜態(tài)檢查、執(zhí)行單元測試和打包鏡像操作;
12、s5:執(zhí)行cd流水線,拉取中間態(tài)制品、部署環(huán)境包、執(zhí)行系統(tǒng)測試并發(fā)布制品;
13、s6:對項目系統(tǒng)進(jìn)行詳細(xì)測試,將制品從開發(fā)域環(huán)境轉(zhuǎn)至測試域環(huán)境;
14、s7:制品通過測試后從測試域轉(zhuǎn)至生產(chǎn)域,保存發(fā)布記錄,在生產(chǎn)域完成部署。
15、進(jìn)一步的,開發(fā)庫用于存儲開發(fā)者編寫的代碼、產(chǎn)品對應(yīng)的版本以及產(chǎn)品對應(yīng)的分支信息,每個開發(fā)庫都包含一條ci流水線;當(dāng)開發(fā)人員根據(jù)所述需求單或問題單對代碼進(jìn)行變更時,將代碼提交至開發(fā)庫,自動觸發(fā)流水線執(zhí)行持續(xù)集成的操作。
16、進(jìn)一步的,運維庫用于維護(hù)運維者編寫的ci流水線腳本和cd流水線腳本,ci流水線腳本和cd流水線腳本分別存儲在ci庫和cd庫;項目的每一個產(chǎn)品對應(yīng)一條ci流水線,每一個項目對應(yīng)一條cd流水線。
17、進(jìn)一步的,測試庫用于維護(hù)測試者編寫的自動化測試代碼、用例和測試文檔,當(dāng)代碼提交至開發(fā)庫或者啟動cd流水線時,測試代碼被拉取至環(huán)境中部署并運行。
18、進(jìn)一步的,環(huán)境和工具安裝包用于存儲所有項目所需的環(huán)境和工具安裝包,項目相關(guān)人員可以從制品庫模塊中手動下載并安裝環(huán)境和工具,ci流水線腳本和cd流水線腳本可通過網(wǎng)絡(luò)接口自動下載至執(zhí)行節(jié)點。
19、進(jìn)一步的,限定計算節(jié)點和制品的權(quán)限為開發(fā)、測試和生產(chǎn);
20、限定開發(fā)域被開發(fā)者使用,開發(fā)者根據(jù)需求構(gòu)建新的環(huán)境,用于對開發(fā)制品進(jìn)行驗證;
21、限定測試域被測試者使用,測試者根據(jù)需求文檔構(gòu)建環(huán)境,并對最終產(chǎn)品進(jìn)行系統(tǒng)性驗證,測試結(jié)束后將結(jié)果在測試域中進(jìn)行歸檔;
22、限定生產(chǎn)域被用戶使用;
23、ci流水線腳本和cd流水線腳本基于云計算平臺的云計算節(jié)點執(zhí)行。
24、進(jìn)一步的,開發(fā)庫、測試庫和運維庫均設(shè)置有不同分支,不同分支對應(yīng)不同的項目。
25、進(jìn)一步的,所述開發(fā)庫執(zhí)行ci流水線的具體流程如下:
26、s4.1環(huán)境拉取:從制品庫中拉取編譯環(huán)境壓縮包,本地構(gòu)建好編譯環(huán)境;
27、s4.2?ci代碼拉取:從運維配置庫拉取最新版的ci腳本到本地指定目錄;
28、s4.3代碼拉取:拉取最新版的代碼到本地指定目錄;
29、s4.4編譯:執(zhí)行編譯腳本,代碼編譯成二進(jìn)制;
30、s4.5靜態(tài)檢查:調(diào)用掃描工具api進(jìn)行代碼掃描,返回掃描是否通過的結(jié)果;
31、s4.6單元測試:執(zhí)行單元測試用例返回測試結(jié)果;
32、s4.7上傳制品:將編譯好的制品上傳至制品庫對應(yīng)的路徑。
33、進(jìn)一步的,運維庫執(zhí)行cd流水線的具體流程如下:
34、s5.1拉取制品:從制品庫中拉取需要測試的項目制品;
35、s5.2部署系統(tǒng):根據(jù)部署需求,部署組件至各個節(jié)點,搭建系統(tǒng);
36、s5.3拉取測試代碼:根據(jù)項目型號和版本,從測試代碼庫中拉取對應(yīng)的測試代碼;
37、s5.4系統(tǒng)測試:初始化測試代碼,執(zhí)行系統(tǒng)測試,其中流水線使用者可以通過配置關(guān)鍵字跳過某些測試用例;
38、s5.5發(fā)布:全部測試流程通過,將制品上傳至制品庫交付安裝包目錄下,編寫制品使用文檔附上測試結(jié)果報告。
39、本發(fā)明的有益效果:
40、本發(fā)明構(gòu)建了devops與項目管理連接的橋梁,每一次的迭代周期,都實現(xiàn)了項目-產(chǎn)品-需求/問題-代碼全流程的自動化管理,極大地提升了產(chǎn)品質(zhì)量和團(tuán)隊效率;分別建立了三種代碼庫:開發(fā)、運維和測試,將不同項目人員的職責(zé)進(jìn)行了有效劃分,實施嚴(yán)格的權(quán)限管理和訪問控制策略,有效地防止了未經(jīng)授權(quán)的訪問和操作;通過流水線可以執(zhí)行更加全面的自動化測試,包括單元測試、集成測試、回歸測試和性能測試等,確保每一次代碼的變更都可經(jīng)過充分驗證,以發(fā)現(xiàn)和修復(fù)潛在的問題;借助云計算平臺提供的彈性擴展的能力,可以根據(jù)實際需求自動化擴展或伸縮流水線資源,避免了資源浪費和復(fù)雜的容量規(guī)劃,更好地幫助企業(yè)降低運維成本。
1.一種基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,包括項目管理模塊和制品庫模塊;
2.根據(jù)權(quán)利要求1所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,所述持續(xù)集成交付系統(tǒng)的運行過程包括以下步驟:
3.根據(jù)權(quán)利要求2所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,開發(fā)庫用于存儲開發(fā)者編寫的代碼、產(chǎn)品對應(yīng)的版本以及產(chǎn)品對應(yīng)的分支信息,每個開發(fā)庫都包含一條ci流水線;當(dāng)開發(fā)人員根據(jù)所述需求單或問題單對代碼進(jìn)行變更時,將代碼提交至開發(fā)庫,自動觸發(fā)流水線執(zhí)行持續(xù)集成的操作。
4.根據(jù)權(quán)利要求3所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,運維庫用于維護(hù)運維者編寫的ci流水線腳本和cd流水線腳本,ci流水線腳本和cd流水線腳本分別存儲在ci庫和cd庫;項目的每一個產(chǎn)品對應(yīng)一條ci流水線,每一個項目對應(yīng)一條cd流水線。
5.根據(jù)權(quán)利要求4所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,測試庫用于維護(hù)測試者編寫的自動化測試代碼、用例和測試文檔,當(dāng)代碼提交至開發(fā)庫或者啟動cd流水線時,測試代碼被拉取至環(huán)境中部署并運行。
6.根據(jù)權(quán)利要求5所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,環(huán)境和工具安裝包用于存儲所有項目所需的環(huán)境和工具安裝包,項目相關(guān)人員可以從制品庫模塊中手動下載并安裝環(huán)境和工具,ci流水線腳本和cd流水線腳本可通過網(wǎng)絡(luò)接口自動下載至執(zhí)行節(jié)點。
7.根據(jù)權(quán)利要求6所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,限定計算節(jié)點和制品的權(quán)限為開發(fā)、測試和生產(chǎn);
8.根據(jù)權(quán)利要求7所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,開發(fā)庫、測試庫和運維庫均設(shè)置有不同分支,不同分支對應(yīng)不同的項目。
9.根據(jù)權(quán)利要求8所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,所述開發(fā)庫執(zhí)行ci流水線的具體流程如下:
10.根據(jù)權(quán)利要求9所述的基于云平臺的devops持續(xù)集成交付系統(tǒng),其特征在于,運維庫執(zhí)行cd流水線的具體流程如下: