CICD流程

CICD整體介紹

一、產(chǎn)品上線流程

1、運(yùn)營(yíng)與用戶(hù)進(jìn)行交流與溝通,確認(rèn)需求
2、運(yùn)營(yíng)將需求轉(zhuǎn)交給產(chǎn)品經(jīng)理,產(chǎn)品經(jīng)理分析需求,確認(rèn)需求,注意: 確認(rèn)需求之后要進(jìn)行內(nèi)部會(huì)議,確認(rèn)產(chǎn)品的可行性,并且將需求轉(zhuǎn)換為具體的項(xiàng)目方向(用戶(hù)提出的需求都是一個(gè)比較大的方向,需求提出人員要和用戶(hù)進(jìn)行溝通,確認(rèn)需求是否滿(mǎn)足期望)
3、需求可行性通過(guò)之后,產(chǎn)品經(jīng)理要和設(shè)計(jì)師共同協(xié)作完成PRD(產(chǎn)品需求文檔)和原型
4、UI根據(jù)需求文檔和原型進(jìn)行UI設(shè)計(jì)
5、需求和原型設(shè)計(jì)出來(lái)之后,產(chǎn)品經(jīng)理將需求轉(zhuǎn)交給相關(guān)的業(yè)務(wù)開(kāi)發(fā)人員,業(yè)務(wù)開(kāi)發(fā)人員首先根據(jù)項(xiàng)目需求進(jìn)行項(xiàng)目可行性分析,然后并根據(jù)具體項(xiàng)目給出開(kāi)發(fā)周期,最后將項(xiàng)目具體分工到開(kāi)發(fā)人員
6、開(kāi)發(fā)人員完成項(xiàng)目(保證項(xiàng)目可run,并且對(duì)項(xiàng)目進(jìn)行了code review之后提交)之后,移交測(cè)試人員進(jìn)行測(cè)試
7、測(cè)試人員寫(xiě)測(cè)試用例,編寫(xiě)測(cè)試文檔,最后編寫(xiě)測(cè)試報(bào)告,通過(guò)發(fā)郵箱的方式告知開(kāi)發(fā)人員,測(cè)試有BUG則告知開(kāi)發(fā)人員進(jìn)行修改
8、測(cè)試通過(guò)之后,移交產(chǎn)品經(jīng)理進(jìn)行驗(yàn)收,不通過(guò)則返回修改,通過(guò)則告知運(yùn)維人員準(zhǔn)備上線,
9、運(yùn)維人員接到通知之后,進(jìn)行上線準(zhǔn)備,首先在測(cè)試環(huán)境測(cè)試完畢之后,移交預(yù)生產(chǎn)環(huán)境進(jìn)行測(cè)試,確保萬(wàn)無(wú)一失之后部署項(xiàng)目上線生產(chǎn)環(huán)境,項(xiàng)目上生產(chǎn)環(huán)境之前發(fā)郵箱通知領(lǐng)導(dǎo),項(xiàng)目上線完畢之后也要通知相關(guān)領(lǐng)導(dǎo)

二、項(xiàng)目上線流程

開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境,預(yù)生產(chǎn)環(huán)境,生產(chǎn)環(huán)境的區(qū)別

1、開(kāi)發(fā)環(huán)境: 顧名思義,開(kāi)發(fā)人員使用的環(huán)境
2、測(cè)試環(huán)境: 顧名思義,測(cè)試人員使用的環(huán)境,測(cè)試環(huán)境不會(huì)連接生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù),數(shù)據(jù)都是測(cè)試人員偽造的虛擬數(shù)據(jù)
3、預(yù)生產(chǎn)環(huán)境:測(cè)試環(huán)境到生產(chǎn)環(huán)境的過(guò)濾,預(yù)生產(chǎn)環(huán)境一般都會(huì)連接生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù),力求做到和生產(chǎn)環(huán)境一致,測(cè)試時(shí)候要注意,避免產(chǎn)生臟數(shù)據(jù),影響生產(chǎn)環(huán)境的使用
4、生產(chǎn)環(huán)境: 即線上環(huán)境,用戶(hù)直接訪問(wèn)的環(huán)境,

另外,還有個(gè)灰度發(fā)布,發(fā)生在預(yù)發(fā)布環(huán)境之后,生產(chǎn)環(huán)境之前。
生產(chǎn)環(huán)境一般會(huì)部署在多臺(tái)機(jī)器上,以防某臺(tái)機(jī)器出現(xiàn)故障,這樣其他機(jī)器可以繼續(xù)運(yùn)行,不影響用戶(hù)使用。灰度發(fā)布會(huì)發(fā)布到其中的幾臺(tái)機(jī)器上,驗(yàn)證新功能是否正常。如果失敗,只需回滾這幾臺(tái)機(jī)器即可。


1、開(kāi)發(fā)環(huán)境部署到測(cè)試環(huán)境

這里用jenkins+Gitlab+Maven的方式對(duì)項(xiàng)目進(jìn)行上線
jenkinsCI主要使用的有webhook,輪詢(xún),參數(shù)化三種構(gòu)建方式,這里使用webhook的方式進(jìn)行觸發(fā)式構(gòu)建
使用webook機(jī)你向嗯構(gòu)建的理由: 當(dāng)開(kāi)發(fā)人員合并分支到master觸發(fā)webhook的時(shí)候,jenkins不需要人員的干預(yù),實(shí)現(xiàn)了自動(dòng)化構(gòu)建

具體構(gòu)建步驟
1、初始化,配置Gitlab中代碼倉(cāng)庫(kù)的webhook
2、創(chuàng)建pipeline類(lèi)型工程 ===》 一個(gè)工程對(duì)應(yīng)一個(gè)項(xiàng)目對(duì)應(yīng)一個(gè)webhook
3、通過(guò)maven對(duì)java項(xiàng)目進(jìn)行打包
注意; 對(duì)java項(xiàng)目進(jìn)行打包,可以打包成jar或者war包,打包成jar包可以直接通過(guò)java命令運(yùn)行,war需要通過(guò)tomcat中間件運(yùn)行
4、包管理

包管理服務(wù)器創(chuàng)建不同的項(xiàng)目目錄,區(qū)分版本和項(xiàng)目

5、發(fā)布(編寫(xiě)對(duì)應(yīng)的腳本)
6、因?yàn)閖ava不能動(dòng)態(tài)加載,需要重啟服務(wù),重啟服務(wù)(自定義重啟腳本)
7、確認(rèn)發(fā)布是否成功?可以通過(guò)查看進(jìn)程,查看端口,以及訪問(wèn)API接口的方式進(jìn)行判斷
8、通知開(kāi)發(fā)、測(cè)試(以郵箱的方式發(fā)送)


2、部署到預(yù)生產(chǎn)環(huán)境上

這里用jenkins+Gitlab+Maven的方式對(duì)項(xiàng)目進(jìn)行上線
jenkinsCI主要使用的有webhook,輪詢(xún),參數(shù)化三種構(gòu)建方式,這里使用參數(shù)化構(gòu)建的方式部署項(xiàng)目

具體構(gòu)建步驟
ansible dev-hosts 通過(guò)ansible指定資產(chǎn)清單文件的方式進(jìn)行上線

[project_1]
IP-1  # 這里代表的是預(yù)生產(chǎn)服務(wù)器
IP-2

1、jenkins參數(shù)化構(gòu)建
參數(shù):

  • 項(xiàng)目名稱(chēng)
  • Serice_status 服務(wù)狀態(tài)
  • 發(fā)布方式 選項(xiàng)參數(shù)
    publish
    reback
  • 回滾指定版本文件(文件參數(shù))

發(fā)布腳本

#!/bin/env bash
PROJECT_NAME=$1
SERVICE_STATUS=$2
PUBLISH_TYPE=$3
ROLLBACK_VERSION=$4

# 1、拉取代碼
rpm -qa | grep ^git-
if [ ! $? -eq 0 ];then
    yum -y install git
fi
# ssh方式拉取代碼之前先將機(jī)器的公鑰上傳到gitlab服務(wù)器上
git clone git@ip:user/project.git

#2、通過(guò)maven對(duì)java項(xiàng)目進(jìn)行打包
maven  

#3、mv 包管理文件夾
mv 

#4、根據(jù)參數(shù)進(jìn)行上線或者回滾
if [ "$PUBLISH_TYPE" == "publish" ];then
    ansible -i dev-hosts 組名 -m copy -a "src=xx.jar dest=/app/pro"
else
    
fi

#5、重啟服務(wù)

#6、檢查進(jìn)程

3、部署到生產(chǎn)環(huán)境上的步驟與部署到預(yù)生產(chǎn)類(lèi)似
4、灰度環(huán)境

灰度環(huán)境: 生產(chǎn)環(huán)境有多臺(tái)服務(wù)器,當(dāng)有新版本需要發(fā)布的時(shí)候,可以現(xiàn)在其中幾臺(tái)服務(wù)器上進(jìn)行測(cè)試或者現(xiàn)在某些地方進(jìn)行測(cè)試,查看新版本上線是否有問(wèn)題

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • CICD整體介紹一、產(chǎn)品上線流程1、運(yùn)營(yíng)與用戶(hù)進(jìn)行交流與溝通,確認(rèn)需求2、運(yùn)營(yíng)將需求轉(zhuǎn)交給產(chǎn)品經(jīng)理,產(chǎn)品經(jīng)理分析需...
    魔曦帝天閱讀 2,981評(píng)論 0 0
  • 原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!原文鏈接地址:『高級(jí)篇』docker之gitlab和je...
    IT人故事會(huì)閱讀 2,353評(píng)論 0 10
  • DevOps Handbook 本文譯自gene kim和jez humble的"Devops Handbook"...
    AIOPstack閱讀 1,177評(píng)論 0 3
  • 質(zhì)量綜述 隨著互聯(lián)網(wǎng)快速發(fā)展,早期的傳統(tǒng)軟件公司強(qiáng)調(diào)工程的嚴(yán)謹(jǐn)性,CMMI,ISO9000格局已經(jīng)發(fā)生變化,逐漸退...
    老余2017閱讀 4,102評(píng)論 6 31
  • 疲倦的時(shí)候,靜下來(lái)想想,我們正當(dāng)年的年齡,應(yīng)該依靠誰(shuí),父母年齡已大,唯一能為我們做的就是送上一口熱飯,其他的真心不...
    燕飛82閱讀 126評(píng)論 0 1

友情鏈接更多精彩內(nèi)容