91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 基于Jenkins如何打造符合DevOps能力成熟度三級標準的持續集成流水線

基于Jenkins如何打造符合DevOps能力成熟度三級標準的持續集成流水線

發布時間:2021-11-26 15:01:25 來源:億速云 閱讀:210 作者:柒染 欄目:開發技術

基于Jenkins如何打造符合DevOps能力成熟度三級標準的持續集成流水線,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

DevOps的核心是自動化,自動化的核心是標準化。而DevOps最重要的一環節是持續交付,持續交付中建設的重點是流水線,所以如何打造標準的持續交付流水線則為DevOps建設中最重要的一環,也是評估DevOps能力的一個重要的打分點。

基于jenkins,對持續集成流水線建設的一些關鍵點進行技術應答,帶領大家把方法論落地到具體的技術點上。

文中涉及到的幾個名詞解釋:

1, 流水線:pipeline,一個應用程序從構建、部署、測試和發布這個過程實現自動化

2, 制品:構建過程的輸出物,包括軟件包、測試報告、應用配置文件等。

3, 制品庫:存儲全語言制品的倉庫,提供依賴解析及文件存儲能力。

4, 元數據:軟件生命周期全過程數據,如需求id、代碼提交信息、構建環境、靜態掃描結果、測試通過率、安全掃描結果等。

文章中涉及到的一些技術詳解:見文章《打造企業級pipeline服務的18個疑問》

下面,我們來看一下持續集成流水線建設中的配置管理、構建與持續集成、測試管理、部署與發布管理、環境管理、數據管理、度量與反饋的七個維度的三級標準是如何定義的,并且哪些指標需要在jenkins流水線中體現,如何使用jenkins流水線達到此標準。

一, 配置管理


三級標準

Jenkins流水線落地建議方案

版本控制

版本控制系統

1)將配置文件、構建和部署等自動化腳本納入版本控制系統管理。2)有健全的版本控制系統管理機制,包括:代碼庫命名規范備份與可用性保障機制權限模型專人專崗管理。

流水線內容(Jenkinsfile)需要納入版本管理流水線的命名需要有明確規范流水線應明確權限,開發人員應只有可讀權限,模版由專門團隊編寫技術點:可使用jenkins的Share library特性,由專門團隊在源碼倉庫中統一管理流水線,

分支管理

短周期分支分支頻繁地向主干合并

非流水線內容

制品管理

1)將依賴組件納入制品庫管理2)將所有交付制品納入制品庫管理,比如:測試報告3)制品庫讀寫有清晰的權限管控制度

建設統一制品庫,如Artifactory。設置完整的權限。收集構建流水線過程中的所有工具的結果數據,并將此類數據定義成元數據,與制品綁定。如需求、代碼提交信息、構建環境信息、依賴信息、靜態掃描信息、單元測試信息、安全掃描信息等。技術點:可采用商用制品庫、如Artifactory。也可自行開發元數據管理系統,收集構建中過程數據。

單一可信數據源

版本控制系統和制品庫作為單一可信數據源,覆蓋生產部署環節

建立統一制品庫,在jenkinsfile中指明制品庫地址,構建時不使用pom文件中的依賴解析地址,而由其他方式修改依賴解析倉庫到唯一可信倉庫中技術點:使用Artifactory統一管理制品庫,保證唯一可信源

變更管理

變更過程

1)所有配置項變更由變更管理系統觸發2)針對每次變更內容進行評審,并使用自動化手段

不涉及流水線、注意配置與應用分離、及配置中心管理

變更追溯

實現版本控制系統和變更管理系統的自動化關聯,信息雙向同步和實時可追溯

不涉及流水線

變更回滾

1)實現變更管理系統和版本控制系統的同步回滾,保證狀態的一致性2)回滾操作實現自動化

不涉及流水線,

二, 構建與持續集成


三級標準

Jenkins流水線落地建議方案

構建實踐

構建方式

1)定義結構化構建腳本,實現模塊級共享復用2)構建腳本由專人專崗統一維護

技術點:使用Jenkins ShareLibrary實現構建模塊化管理,并實現全局共享

構建環境

1)構建環境配置實現標準化2)有獨立的構建資源池

打造少量固定的標準化構建節點作為獨立的構建資源池,并用k8s集群創建動態構建節點作為動態資源池。技術點:jenkins主從架構、jenkins on k8s

構建計劃

1)實現定期自動執行構建和代碼提交觸發構建2)明確定義構建計劃和規則,并在研發團隊內共享

技術點:jenkins觸發器,可實現定時構建、輪詢源碼構建或webhook觸發構建

構建職責

構建工具和環境由專門團隊維護并細分團隊人員職責

jenkins主從節點或構建鏡像由統一團隊維護。業務部門只使用,不能修改。

持續集成

集成服務

組建專門的持續集成團隊,負責優化持續集成系統和服務

統一團隊構建流水線模版與持續集成環境,供開發人員選擇技術點:可以通過jenkins on k8s方式,打造多種構建環境鏡像,開發人員提交構建任務時定義所需環境。

集成頻率

研發人員至少每天向代碼主干集成一次

不涉及流水線

集成方式

每次代碼提交觸發自動化構建,構建問題通自動分析精準推送相關人員處理

每次提交代碼觸發jenkins進行構建,并在構建過程中執行完整的靜態掃描、單元測試等步驟技術點:jenkins的觸發器功能,可以設置輪訓scm或git的webhook觸發

反饋周期

集成問題反饋和解決可以在幾個小時內完成

jenkins pipeline中要通知構建工作完成或失敗狀態,發郵件或webhook給運維團隊和業務團隊

三, 測試管理


三級標準

Jenkins流水線落地建議方案

測試分層策略

分層方法

1)采用代碼級測試對模塊的函數或類方法進行覆蓋全面的單元測試;2)系統全面的進行性能、容量、穩定性、可靠性、易用性、兼容性、安全性等非功能性測試

在流水線中進行單元測試,收集單元測試通過率作為元數據與制品綁定。

分層策略

1)測試設計以對接口/服務級測試為主,兼顧用戶/業務級測試輔以少量的代碼級測試2)對非功能性測試進行全面系統的設計

在流水線中可以集成接口測試,并收集接口測試通過率作為元數據與制品綁定。

測試時機

1)測試在持續交付過程中的介入時間提前到開發的編碼階段2)代碼級測試在模塊的函數或類方法開發完成后進行

提高單元測試覆蓋率。

代碼質量管理

質量規約

1)建立組織級代碼質量規約2)建立完整的質量規約,將安全漏洞檢查、合規檢查納入規約3)建立強制執行的質量門禁體系4)建立規約固定更新機制

需要在jenkins流水線中增加安全掃描步驟,并對掃描測試結果設置質量關卡。技術點:Xray作為安全掃描工具集成在流水線中、通過制品元數據作為質量門禁判斷構建產物是否達標

檢查方式

代碼質量檢查完全自動化,不需要手工干預

流水線集成sonar掃描工具,每次代碼提交自動觸發構建、自動化進行源碼掃描,并將代買壞味道數量、代碼重復率等結果數據以元數據方式回寫制品庫。技術點:sonarqube代碼靜態掃描

反饋處理

根據代碼質量檢查結果反饋及時處理,根據質量規約維持一定的技術債

代碼靜態掃描結果與制品綁定,回寫到制品庫。通過制品攜帶的元數據是否通過質量門禁,來判斷制品質量。

自動化測試

自動化設計

1)對接口/服務級測試進行自動化設計2)對代碼級測試進行自動化設計

jenkins 流水線增加接口測試及服務測試

自動化開發

1)建立統一的自動化測試框架,統一管理自動化測試用例2)自動化測試腳本開發采用數據驅動、關鍵字驅動等方法;

不涉及流水線

自動化執行

1)對接口/服務級與代碼級測試采用自動化測試2)自動化測試由流水線自動化觸發

在流水線中進行所需測試

自動化分析

對自動化測試結果具備較強的自動判斷能力,誤報少

流水線中收集各項測試結果,作為元數據與交付物關聯,保障每個制品都能獲取到完整的測試結果。

四, 部署與發布管理


三級標準

Jenkins流水線落地建議方案

部署與發布模式

部署方式

部署和發布實現全自動化

部署過程作為流水線的必要步驟技術點:對接如saltstack、ansible等工具在流水線中部署

部署過程

1)使用相同的過程和工具完成所有環境部署2)一次部署過程中使用相同的構建產物

為確保發布內容為測試過的內容,要實現一次構建多次部署。通過元數據與倉庫名標識制品成熟度。流水線中要將制品在不同成熟度倉庫移動,并收集各個環境中的結果數據作為元數據存儲。技術點:應用配置分離、Artifactory元數據及promotion功能

部署策略

1)采用定期部署策略,具備按天進行部署的能力2)應用和環境整體作為部署的最小單位3)應用和配置進行分離

不涉及流水線

部署質量

1)部署失敗率低2)部署活動集成自動化測試功能,并以測試結果為部署前置條件3)每次部署活動提供變更范圍報告和測試報告

部署后會在流水線中進行簡單驗證,收集驗證結果數據。測試結果收集到元數據中,部署時驗證元數據,判斷是否通過質量門禁,來實現部署。               技術點:Artifactory元數據

持續部署流水線

協作模式

通過定義完整的軟件交付過程和清晰的交付規范,保證團隊之間交付的有序

標準化工具鏈及持續集成流水線,收集個階段結果數據作為元數據,用元數據標識制品的質量標準,供各個團隊間進行使用。

流水線過程

軟件交付過程中的各個環節建立自動化能力以提升處理效率

不涉及流水線

過程可視化

1)交付過程在團隊內部可見,信息在團隊間共享2)交付狀態可追溯

流水線中收集整個構建過程結果數據,與制品綁定,供所有團隊查看。技術點:Artifactory元數據

五, 環境管理


三級標準

Jenkins流水線落地建議方案

環境管理

環境類型

建立標準的研發環境

不涉及流水線

環境構建

1)環境的構建通過自服務的資源交付平臺來完成2)環境準備時間小時級

可在流水線中自動創建所需環境。技術點:使用k8s的helm自動拉起整套環境,helm是最佳的實現方式

環境依賴于配置管理

以應用為中心,有服務級依賴的配置管理能力,比如:依賴的關聯服務,數據庫服務、緩存服務、關聯應用服務等等

不涉及流水線

六, 數據管理


三級標準

Jenkins流水線落地建議方案

測試數據管理

數據來源

導出部分生產環境數據并清洗敏感信息后形成基準的測試數據集

不涉及流水線

數據覆蓋

建立體系化測試數據,進行數據依賴管理,覆蓋全部測試分層策略要求的測試類型

不涉及流水線

數據獨立性

1)每個測試用例擁有專屬的測試數據有明確的測試初始狀態2)測試用例的執行不依賴其他測試用例執行所產生的數據

不涉及流水線

數據變更管理

變更過程

將數據變更納入持續部署流水線,經人工確認后自動完成

流水線與審批系統集成。

兼容回滾

每次數據變更同時提供明確的回滾機制,并實現進行變更測試,如:提供升級和回滾兩個自動化腳本

不涉及流水線

數據監控

針對不同環境和危險程度對數據變更建立分級監控機制

不涉及流水線

七, 度量與反饋


三級標準

Jenkins流水線落地建議方案

度量指標

度量指標定義

建立跨組織度量指標,進行跨領域綜合維度的度量

不涉及流水線

度量指標類型

度量指標覆蓋過程指標,客觀反映組織研發現狀

流水線中需要收集元數據,作為后續度量指標

度量數據管理

持續收集度量數據歷史度量數據有明確的管理規則

流水線中需要收集元數據,作為后續度量指標

度量指標更新

1)度量指標可以按照需求定期更新2)度量指標的優先級在團隊內部達成一致

不涉及流水線

度量驅動改進

內容和生成方式

度量報告進行分類分級并按需生成內容

流水線中需要收集元數據,作為后續度量指標。對元數據進行二次清晰,生成報告

數據時效性

通過可視化看板實時展示數據

看板需要展示流水線狀態,如構建時間、通過率、故障率等

覆蓋范圍

全部團隊成員均可查看報告

不涉及流水線

反饋改進

度量反饋問題納入研發迭代的待辦事項列表,作為持續改進的一部分

不涉及流水線

通過上述數據及分析,可以看出,打造出一個標準的流水線服務可以匹配到60%的三級標準。那么我們可以在整個DevOps的建設中投入較大的力量來打造流水線。一套標準的流水線服務和穩定的工具鏈將會成為DevOps建設的一個基石,并且成為貫穿你的整個建設周期中。

看完上述內容,你們掌握基于Jenkins如何打造符合DevOps能力成熟度三級標準的持續集成流水線的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昔阳县| 保康县| 胶州市| 淳化县| 乐山市| 兖州市| 天峨县| 沭阳县| 绥中县| 宁化县| 洛扎县| 宜昌市| 津南区| 顺昌县| 彭泽县| 文山县| 太保市| 乌拉特中旗| 白山市| 孝感市| 南安市| 宁阳县| 星子县| 运城市| 兴海县| 共和县| 得荣县| 奉新县| 任丘市| 大新县| 清丰县| 宁河县| 大英县| 辽阳县| 浦北县| 沈阳市| 雷山县| 佛教| 布拖县| 铁力市| 仁寿县|