一焕襟、什么是devops
1.1 devops定義
DevOps是一組過程方法與系統(tǒng)的統(tǒng)稱宜狐,用于促進(jìn)開發(fā)朱监、技術(shù)運(yùn)營(yíng)和質(zhì)量保障部門之間的溝通岸啡、協(xié)作與整合:以始為終,運(yùn)維合一
1.2 devops理念
理念是讓開發(fā)人員可以持續(xù)集成,運(yùn)維人員可以持續(xù)交付和持續(xù)部署赌朋。讓整個(gè)開發(fā)過程自動(dòng)部署與上線
1.3 devops實(shí)現(xiàn)
這里從開發(fā)和運(yùn)維兩個(gè)方面初步介紹devops實(shí)現(xiàn)需要用到的工具
- 開發(fā):git凰狞、gitlab、github沛慢、githab(代碼平臺(tái))赡若,sonarqube(代碼質(zhì)量檢測(cè)),appscan(漏洞掃描)……
-運(yùn)維:jenkins团甲、docker逾冬、k8s、maven……
二、CI/CD/CO基礎(chǔ)
- CI:持續(xù)集成
- CD:持續(xù)交付
- CO:持續(xù)部署
2.1 持續(xù)集成CI
持續(xù)集成指的是開發(fā)人員能夠頻繁地將其代碼集成到公共代碼倉(cāng)庫(kù)的主分支中身腻。
開發(fā)人員能夠在任何時(shí)候多次向倉(cāng)庫(kù)提交作品产还,而不是獨(dú)立地開發(fā)每個(gè)功能模塊并在開發(fā)周期結(jié)束時(shí)一一提交。
持續(xù)集成的好處就是可以加速了軟件開發(fā)進(jìn)度嘀趟,快速的發(fā)現(xiàn)錯(cuò)誤脐区,節(jié)省人力成本。
2.2 持續(xù)交付CD
持續(xù)交付指的是在持續(xù)集成的環(huán)境基礎(chǔ)之上她按,將代碼部署到預(yù)生產(chǎn)環(huán)境牛隅。
持續(xù)交付:代碼開發(fā)->單元測(cè)試->合并代碼-->測(cè)試-->手動(dòng)-->部署到預(yù)生產(chǎn)
2.3 持續(xù)部署CO
持續(xù)部署是持續(xù)交付的下一步,指代碼在任何時(shí)刻都是可部署的酌泰,最后將部署到生產(chǎn)環(huán)境的過程自動(dòng)化媒佣。
持續(xù)部署和持續(xù)交付的區(qū)別就是最終部署到生產(chǎn)環(huán)境是自動(dòng)化的
三、持續(xù)集成實(shí)施(代碼發(fā)布流程)
- 第一步陵刹,開發(fā)者向代碼倉(cāng)庫(kù)提交代碼默伍。
- 第二步,根據(jù)開發(fā)者提交的代碼合并到主分支進(jìn)行自動(dòng)化測(cè)試衰琐,這里是進(jìn)行單元測(cè)試也糊,也就是對(duì)函數(shù)和模塊進(jìn)行測(cè)試。
- 第三步羡宙,源碼構(gòu)建显设,指的是將源碼轉(zhuǎn)換為可以運(yùn)行的實(shí)際代碼,比如安裝依賴辛辨,配置各種資源。
- 第四步瑟枫,構(gòu)建完成進(jìn)行第二輪全面測(cè)試斗搞,這里會(huì)進(jìn)行單元測(cè)試和集成測(cè)試,對(duì)產(chǎn)品功能進(jìn)行全鏈路測(cè)試慷妙。
- 第五步僻焚,將通過測(cè)試的代碼版本進(jìn)行打包存檔,發(fā)送到生產(chǎn)環(huán)境的web服務(wù)器膝擂,web服務(wù)器解壓后虑啤,將站點(diǎn)目錄通過符號(hào)鏈接指向解壓后的本地目錄。(ps:在部署之前將數(shù)據(jù)庫(kù)進(jìn)行備份架馋,方便新版本出現(xiàn)的問題時(shí)進(jìn)行回滾)
- 第六步狞山,新版本出現(xiàn)難以修復(fù)的問題時(shí)進(jìn)行回滾到之前版本,這里只需要將符號(hào)鏈接指向指向上一個(gè)版本的目錄即可叉寂,將之前備份的數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)萍启。