實(shí)操:《需求與制品雙向追蹤,Jira與Artifactory珠聯(lián)玉映》

業(yè)務(wù)敏捷如火如荼,產(chǎn)品迭代日新月異。如何通過Jira與Artifactory實(shí)現(xiàn)需求與制品的雙向追蹤,為價值交付打下堅(jiān)實(shí)的基礎(chǔ)?Talk is cheap. Show you my code.
課程大綱:
1,Jira與Artifactory集成的前置條件(jenkins流水線)
2,代碼與集成規(guī)范的維護(hù)
3,Share library 模版編寫
4,需求與制品雙向打通的jenkins流水線
課程收益:
為什么需要實(shí)現(xiàn)需求與制品的雙向追蹤
如何做到需求與制品的雙向追蹤
最佳實(shí)踐
活動時間:2021年6月15日(周日)
北京時間:20:00 – 21:00(線上活動)
可前往杰蛙科技官網(wǎng)進(jìn)行報名,報名地址:
https://www.bagevent.com/event/7511171
TDS,TaikangcloudDevOps Service(泰康云DevOps服務(wù)平臺)是整合敏捷開發(fā)與DevOps的研發(fā)管理工具,提供產(chǎn)品規(guī)劃、項(xiàng)目管理、Git/Svn代碼托管、Sonar代碼檢查、Jenkins持續(xù)集成和持續(xù)發(fā)布(CI/CD)、制品管理等能力,讓復(fù)雜的研發(fā)協(xié)作更簡單,幫助組織團(tuán)隊(duì)來完成軟件生命周期管理,從而更快、更頻繁地交付更穩(wěn)定得軟件。從需求管理到代碼審查,優(yōu)化開發(fā)流程,簡單易用,讓開發(fā)流程更高效。
是一款企業(yè)級軟件開發(fā)協(xié)作系統(tǒng)。
實(shí)現(xiàn)細(xì)粒度的訪問控制,管理 Git 存儲庫,確保代碼的安全。
實(shí)現(xiàn)高效的Sonar代碼審查功能,協(xié)同合并請求,保障代碼提交的安全性及專注性。
項(xiàng)目中使用JIRA任務(wù)管理與代碼托管無縫銜接,保障開發(fā)流程的可追溯性。
文件管理、Wiki模塊可記錄整個項(xiàng)目的來龍去脈,讓項(xiàng)目協(xié)作清晰便捷。
使用Jenkins持續(xù)集成le提供安全、穩(wěn)定、高效的企業(yè)軟件開發(fā)協(xié)作平臺,并提供Pipeline As Code的配置模式。

TDS是泰康保險集團(tuán)沉淀多年的研發(fā)運(yùn)營一體化支撐體系,承擔(dān)著數(shù)百款業(yè)務(wù)CI/CD的使命。tds的服務(wù)支撐覆蓋到人壽、健康險、車險、醫(yī)療、養(yǎng)老、護(hù)理等不同領(lǐng)域的業(yè)務(wù),這些業(yè)務(wù)來自于自研或者代理,研發(fā)團(tuán)隊(duì)間的技術(shù)棧以及設(shè)計(jì)理念不同導(dǎo)致了架構(gòu)差異性和復(fù)雜性,也給CICD應(yīng)用在包交付模式和靈活的編排上提出更多的挑戰(zhàn)。研發(fā)與運(yùn)維團(tuán)隊(duì)職責(zé)不同和環(huán)境差異化,在版本交付過程中版本因環(huán)境差異帶來的問題,導(dǎo)致溝通成本非常高。研發(fā)團(tuán)隊(duì)在日常版本構(gòu)建過程中,往往容易忽略代碼檢查以及安全掃描的事項(xiàng),版本包外發(fā)現(xiàn)導(dǎo)致了業(yè)務(wù)出現(xiàn)問題等。以上種種問題,都使得CICD的產(chǎn)品設(shè)計(jì)理念以及如何串連各大工具鏈,讓業(yè)務(wù)在安全保障,版本穩(wěn)定,效率提升上獲得到最大收益,成為了CICD設(shè)計(jì)和實(shí)踐的首要任務(wù)和重要挑戰(zhàn)。

DevOps的基礎(chǔ)是自動化,需要一系列的工具來支撐,目前業(yè)界主流方式是基于開源工具鏈打造穩(wěn)定可靠、敏捷的CI/CD流水線;Jenkins憑借其良好的設(shè)計(jì)和強(qiáng)大的社區(qū)成為了我們的選擇,jenkinspipeline 2.0強(qiáng)大而靈活,是企業(yè)級DevOps流水線實(shí)現(xiàn)的不二選擇;雖說是研發(fā)與為一體化,然而開發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)對流水線的需求是不一樣的,研發(fā)團(tuán)隊(duì)偏向CI,而運(yùn)維團(tuán)隊(duì)偏向CD,對工具鏈平臺還有流水線的設(shè)計(jì)提出了挑戰(zhàn);TDS平臺由原來的CI/CD融合流水線模式演進(jìn)到了CI、CD可自由分離+自由組合的模式;在CI/CD分離的模式化,原有的簡單FTP模式不再適應(yīng),對制品平臺的管理和使用提出了更高的要求;

所以建設(shè)企業(yè)級的統(tǒng)一軟件制品倉庫成了一個必然選擇,需滿足企業(yè)級的高可用、多租戶、多項(xiàng)目、安全掃描、靈活的質(zhì)量閾、多組織架構(gòu)人員等需求;

企業(yè)級制品倉庫需具備的能力:
軟件制品是指由源碼編譯打包生成的二進(jìn)制文件,不同的開發(fā)語言對應(yīng)著不同格式的二進(jìn)制文件,這些二進(jìn)制通常可以直接運(yùn)行在服務(wù)器上;制品庫(Repository Manager)用以管理源代碼編譯后的構(gòu)建產(chǎn)物,支持Docker、Maven、Helm、npm、PyPI 包等常見制品庫類型。制品庫可以跟源代碼協(xié)同進(jìn)行版本化控制,可以與本地各構(gòu)建工具和云上的持續(xù)集成、持續(xù)部署無縫結(jié)合,并支持漏洞掃描等特性,是一種企業(yè)處理軟件開發(fā)過程中產(chǎn)生的所有包類型的標(biāo)準(zhǔn)化方式。起了兩方面的作用:
作為外部第三方制品庫的內(nèi)部鏡像。
發(fā)布內(nèi)部開發(fā)的制品。
軟件廠商也是按照這個思路在操作,以市面上主流的產(chǎn)品 Nexus 的Proxy / Hosted、JFrog Artifactory的 Remote / Local Repositories,前者作為鏡像后者作為內(nèi)部庫,但是等事情進(jìn)一步復(fù)雜時,一些概念開始變得混亂。以 Maven 為例,并不是所有的 Jar 包都是這個體系的,如 IBM DB2 的 JDBC Jar,在 Maven Central Repository 或其他Public Repository 都不存在,只能去相應(yīng)廠商網(wǎng)站手工下載并上傳至 Hosted / LocalRepository 供內(nèi)部引用。從功能上講,這么做沒有問題,絕大多數(shù)用戶也是如此操作;但是無論從終端用戶的使用、還是服務(wù)本身的運(yùn)維,其實(shí)是將兩件不同性質(zhì)的事情混淆在了一起。無論是從 Proxy / Remote Repository 自動鏡像,還是用手工方式下載上傳到Hosted / Local Repository(可以看作手工鏡像),這些制品本質(zhì)上都是第三方庫;而內(nèi)部開發(fā)構(gòu)建并發(fā)布到 Hosted / Local Repository 的制品,卻是企業(yè)自己的軟件資產(chǎn)。這兩者在特性上的差別比想象中要大得多,本文不做展開,以后另外發(fā)文展開討論;我們最終選擇了Jfrog 的Artifactory做為企業(yè)Repository Manager,其能提供強(qiáng)大的全棧軟件支持、元數(shù)據(jù)收集、安全掃描、主流DevOps工具鏈支持、高可用架構(gòu)等能力;
企業(yè)級制品倉庫需具備的能力:
為適應(yīng)復(fù)雜的軟件交付流程,tds團(tuán)隊(duì)搭建了 tds pipeline2.0,包括Git/SVN,Jenkins集群,Artifactory制品及元數(shù)據(jù)倉庫,使用SonarQube做代碼檢查,Jfrog Xray做二進(jìn)制包檢查,使用tds的標(biāo)準(zhǔn)運(yùn)維流程進(jìn)行非容器的部署使用及Helm Kubernetes的容器部署;鑒于各事業(yè)部和業(yè)務(wù)開發(fā)團(tuán)隊(duì)的管理需求,tds團(tuán)隊(duì)利用artifactory的repos-path靈活搭建各級制品倉庫,配置權(quán)限,使用snapshot-release管理制品的生命周期;
這樣的好處是,Jenkins集群無需在臨時存放構(gòu)建物,做到了CI和CD的完全分離,構(gòu)建環(huán)境更加靈活、資源利用率也大大提高,開發(fā)團(tuán)隊(duì)可以更加快捷的拿到歷史構(gòu)建物并進(jìn)行版本管理,關(guān)聯(lián)CI數(shù)據(jù)。QA團(tuán)隊(duì)可以基于構(gòu)建物發(fā)起部署,挑選上線包,協(xié)作更加靈活;

本文就軟件制品倉庫對于DevOps交付實(shí)踐的作用做了簡述,實(shí)現(xiàn)CI/CD的完全分離和元數(shù)據(jù)的管理是構(gòu)建企業(yè)DevOps平臺的必由之路,這也是進(jìn)行軟件生命周期管理和質(zhì)量分析、研發(fā)度量的基礎(chǔ),微服務(wù)和云原生對CI/CD提出了新的要求:更高、更快、更強(qiáng);下一步泰康云TDS團(tuán)隊(duì)將繼續(xù)加強(qiáng)DevOps工具鏈的建設(shè)和開發(fā),對接運(yùn)營體系工具:監(jiān)控、鏈路追蹤、CMDB、微服務(wù)網(wǎng)關(guān)等,為業(yè)務(wù)開發(fā)提供強(qiáng)有力的支持,基于云提供更便捷的研發(fā)基礎(chǔ)設(shè)施。
掃描報名


