自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

項(xiàng)目開展CICD的實(shí)踐探路

開發(fā) 項(xiàng)目管理
基于公司Bamboo、EOS,SonarQube平臺(tái),在項(xiàng)目中開展CICD持續(xù)集成與部署。介紹CICD開展的場(chǎng)景,項(xiàng)目中的實(shí)際應(yīng)用,以及后續(xù)規(guī)劃。

本文介紹了作者對(duì)CICD的理解以及在項(xiàng)目中開展CICD的幾種場(chǎng)景,總結(jié)了每種場(chǎng)景實(shí)踐的關(guān)鍵節(jié)點(diǎn)、帶來(lái)的收益,以及結(jié)合具體項(xiàng)目開展的實(shí)際應(yīng)用。讀者可以借鑒本文中描述的場(chǎng)景,或借鑒文中提到的實(shí)踐方式,在項(xiàng)目中開展CICD,為項(xiàng)目在持續(xù)集成部署上做具體的支撐。

1 前言

基于公司Bamboo、EOS,SonarQube平臺(tái),在項(xiàng)目中開展CICD持續(xù)集成與部署。介紹CICD開展的場(chǎng)景,項(xiàng)目中的實(shí)際應(yīng)用,以及后續(xù)規(guī)劃。

2 CICD基礎(chǔ)概念

CICD 是持續(xù)集成(Continuous Integration)和持續(xù)部署(Continuous Deployment)簡(jiǎn)稱。指在研發(fā)過(guò)程中自動(dòng)執(zhí)行一系列腳本來(lái)降低開發(fā)引入 bug 的概率,在新代碼從開發(fā)到部署的過(guò)程中,盡量減少人工的介入。

CICD 核心:持續(xù)集成、持續(xù)部署、持續(xù)交付。

CI:Continuous Integration,表示持續(xù)集成。

指在向遠(yuǎn)程倉(cāng)庫(kù) push 代碼后,在這次提交合并入主分支前進(jìn)行一系列測(cè)試,構(gòu)建等流程。
假設(shè)現(xiàn)在有個(gè)應(yīng)用的代碼存儲(chǔ)在 倉(cāng)庫(kù)上,每天開發(fā)都會(huì) push 很多次提交,針對(duì)每次 push,你可以創(chuàng)建一系列腳本進(jìn)行自動(dòng)測(cè)試,降低往應(yīng)用里引入錯(cuò)誤的概率。它可以應(yīng)用在包括開發(fā)分支在內(nèi)的多個(gè)分支上。
持續(xù)集成過(guò)程中很重視自動(dòng)化測(cè)試驗(yàn)證結(jié)果,以保障所有的提交在合并主線之后的質(zhì)量問(wèn)題,對(duì)可能出現(xiàn)的一些問(wèn)題進(jìn)行預(yù)警。

CD:Continuous Delivery,表示持續(xù)交付。

指在完成CI后可自動(dòng)將已驗(yàn)證的代碼發(fā)布到倉(cāng)庫(kù)。
持續(xù)交付的目標(biāo)是擁有一個(gè)可隨時(shí)部署到生產(chǎn)環(huán)境的代碼庫(kù)。

CD:Continuous Deployment,表示持續(xù)部署。

指在持續(xù)集成的基礎(chǔ)上更進(jìn)一步,指將推送指?jìng)}庫(kù)默認(rèn)分支代碼部署到特定環(huán)境。
通過(guò)自動(dòng)化的構(gòu)建、測(cè)試和部署循環(huán)來(lái)快速交付高質(zhì)量的產(chǎn)品。某種程度上代表了一個(gè)開發(fā)團(tuán)隊(duì)工程化的程度,任何修改通過(guò)了所有已有的工作流就會(huì)直接和客戶見(jiàn)面,只有當(dāng)一個(gè)修改在工作流中構(gòu)建失敗才能阻止它部署到產(chǎn)品線。

3 CICD的開展場(chǎng)景

3.1 編譯部署

實(shí)現(xiàn)代碼提交之后的自動(dòng)編譯-部署過(guò)程,取代j-one上構(gòu)建-部署手動(dòng)操作

內(nèi)容:

  • 代碼提交后的自動(dòng)構(gòu)建、自動(dòng)部署、構(gòu)建部署結(jié)果通知;

收益:

  • 去除Jone上代碼構(gòu)建完成后的手動(dòng)部署操作中等待時(shí)間;

3.2 單元測(cè)試

開展基于Junit的單元測(cè)試

內(nèi)容:

  • 針對(duì)后端代碼,基于Junit編寫單元測(cè)試腳本,開展單測(cè),獲取單測(cè)報(bào)告、jacoco代碼覆蓋率報(bào)告;

收益:

  • 提升測(cè)試覆蓋率,提高代碼質(zhì)量;
  • 減少bug,快速定位bug;
  • 有限支撐重構(gòu);

3.3 代碼掃描

實(shí)現(xiàn)基于SonarQube的代碼質(zhì)量檢測(cè)

實(shí)現(xiàn)基于EOS的代碼質(zhì)量檢測(cè)

內(nèi)容:

  • 實(shí)現(xiàn)基于SonarQube、或公司平臺(tái)EOS的代碼掃描檢測(cè);
  • 代碼提交自動(dòng)觸發(fā)代碼掃描,最終生成報(bào)告、結(jié)果通知;
  • 掃描結(jié)果計(jì)入項(xiàng)目質(zhì)量,記錄跟蹤問(wèn)題,直至問(wèn)題閉環(huán)解決。

收益:

  • 代碼質(zhì)量檢測(cè)的手段豐富;
  • 多層次的自動(dòng)化測(cè)試,提升代碼質(zhì)量;
  • 自動(dòng)觸發(fā)測(cè)試執(zhí)行,縮減測(cè)試等待時(shí)間,提高效率,實(shí)現(xiàn)無(wú)人值守;

3.4 自動(dòng)化測(cè)試

實(shí)現(xiàn)基于Python、EasyOne、DeepTest、Jmeter 的自動(dòng)化測(cè)試。

內(nèi)容:

  • 實(shí)現(xiàn)基于SonarQube的代碼質(zhì)量檢測(cè);
  • 實(shí)現(xiàn)全鏈路各環(huán)節(jié)的自動(dòng)化測(cè)試;
  • 代碼提交自動(dòng)觸發(fā)測(cè)試執(zhí)行、生成報(bào)告、報(bào)告通知;

收益:

  • 多層次的自動(dòng)化測(cè)試,提升代碼質(zhì)量;
  • 自動(dòng)觸發(fā)測(cè)試執(zhí)行,縮減測(cè)試等待時(shí)間,提高效率,實(shí)現(xiàn)無(wú)人值守;

3.5 全鏈路測(cè)試探索

將上述單個(gè)場(chǎng)景進(jìn)行組合形成全鏈路測(cè)試場(chǎng)景;
代碼提交觸發(fā)鏈路自動(dòng)運(yùn)行,以及報(bào)告生成、郵件發(fā)送。

4 項(xiàng)目實(shí)踐

結(jié)合公司內(nèi)部平臺(tái)在實(shí)際項(xiàng)目中開展CICD。

4.1 公司內(nèi)部平臺(tái)

BambooBamboo是京東自研的一套CI/CD流水線解決方案,覆蓋軟件開發(fā)的完整生命周期。

EOSEOS是技術(shù)與數(shù)據(jù)中臺(tái)自主研發(fā)的代碼掃描系統(tǒng),通過(guò)掃描分析代碼,定位到工程中不規(guī)范的編碼片段并給出修改建議,能有效監(jiān)督約束開發(fā)人員統(tǒng)一編碼習(xí)慣,減少因編碼不規(guī)范引起的低級(jí)錯(cuò)誤,提高代碼可讀性,提高團(tuán)隊(duì)協(xié)作效率。

4.2 項(xiàng)目實(shí)際應(yīng)用

1)編譯-部署

對(duì)Jone上高頻構(gòu)建部署分支進(jìn)行在Bamboo上搭建流水線,實(shí)現(xiàn):
代碼提交-調(diào)用Jone的構(gòu)建-調(diào)用Jone的部署-結(jié)果通知

觸發(fā)編譯構(gòu)建的幾種方式:

  • 手動(dòng)執(zhí)行;
  • 代碼提交觸發(fā)執(zhí)行;
  • 定時(shí)任務(wù)觸發(fā)執(zhí)行;
  • 級(jí)聯(lián)其他流水線觸發(fā)執(zhí)行;

應(yīng)用情況:

  • 組內(nèi)所測(cè)試所覆蓋都已部署相關(guān)流水線;
  • 支撐測(cè)試人員在所測(cè)項(xiàng)目中部署自動(dòng)構(gòu)建流水線,共計(jì)調(diào)用次數(shù):364次。

2)單元測(cè)試

對(duì)后端項(xiàng)目開展單元測(cè)試,實(shí)現(xiàn):
代碼提交-maven構(gòu)建-獲取單測(cè)報(bào)告-結(jié)果通知

應(yīng)用效果:

  • 極大簡(jiǎn)化了獲取單測(cè)報(bào)告的過(guò)程,通過(guò)簡(jiǎn)單的過(guò)程即可針對(duì)項(xiàng)目開展單測(cè)、執(zhí)行單測(cè)、并獲取單測(cè)結(jié)果;
  • 支撐超過(guò)8個(gè)項(xiàng)目部署單測(cè)流水線,JDL-CRM權(quán)限系統(tǒng)單測(cè)有效提升率:20%

3)自動(dòng)化測(cè)試

項(xiàng)目部署之后,開展自動(dòng)化回歸測(cè)試,用于項(xiàng)目上線前的回歸測(cè)試,實(shí)現(xiàn):
自動(dòng)化測(cè)試-測(cè)試報(bào)告-測(cè)試結(jié)果通知

目前基于Python語(yǔ)言,依托Py第三方模塊,實(shí)現(xiàn)腳本編寫,集成到Bamboo平臺(tái),執(zhí)行流水線,獲取報(bào)告。

應(yīng)用效果:

  • 負(fù)責(zé)在銷服項(xiàng)目中開展上線前的UAT自動(dòng)回歸測(cè)試;

4)代碼掃描

基于公司搭建的SonarQube、EOS平臺(tái),開展代碼掃描,實(shí)現(xiàn):
代碼提交-代碼掃描-掃描報(bào)告-問(wèn)題手工記錄行云

5 后續(xù)規(guī)劃

CICD過(guò)程數(shù)據(jù)與質(zhì)量效能數(shù)據(jù)相結(jié)合。
基于DeepTest開展更多項(xiàng)目的自動(dòng)化測(cè)試,集成到BamBoo平臺(tái)。
代碼掃描在項(xiàng)目中的應(yīng)用。

作者:京東物流 陳維

來(lái)源:京東云開發(fā)者社區(qū) 自猿其說(shuō)Tech 轉(zhuǎn)載請(qǐng)注明來(lái)源


責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2024-05-30 14:18:04

2021-07-26 14:31:49

GitLab KubernetesFlask Web

2022-10-17 10:35:34

DevOpsCICD

2023-02-10 10:54:48

DevOpsCICD

2021-07-07 10:21:26

技術(shù)

2022-09-07 09:27:31

漏洞CICD管道網(wǎng)絡(luò)攻擊

2013-07-05 11:22:31

思科遠(yuǎn)程醫(yī)療思科

2022-05-11 08:45:49

VaultGitlab加密

2017-08-08 10:01:20

項(xiàng)目管理敏捷實(shí)踐團(tuán)隊(duì)

2013-12-16 14:43:08

BYODH3C華三

2019-11-22 15:27:07

技術(shù)漏洞管理網(wǎng)絡(luò)

2019-11-24 23:39:01

漏洞管理漏洞風(fēng)險(xiǎn)

2020-05-06 09:25:10

微前端qiankun架構(gòu)

2021-04-06 09:58:35

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IOT

2021-06-02 05:41:48

項(xiàng)目實(shí)踐Axiosaxios二次封裝

2020-07-17 19:55:50

Vue前端性能優(yōu)化

2013-12-02 16:01:53

存儲(chǔ)

2023-05-16 12:24:53

2022-05-19 09:00:00

安全CI/CD工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)