国产在线观看精品免费,亚洲日本VA久久一区二区,香蕉久久99综合一区二区三区,久久精品99国产精品蜜桃小说

DevOps、CI、CD都是什么鬼?

2021-11-04 09:29:34 shuai.chang

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

DevOps

DevOps是DevelopmentOperations的組合,是一種方法論,是一組過(guò)程、方法與系統的統稱(chēng),用于促進(jìn)應用開(kāi)發(fā)、應用運維和質(zhì)量保障(QA)部門(mén)之間的溝通、協(xié)作與整合。以期打破傳統開(kāi)發(fā)和運營(yíng)之間的壁壘和鴻溝。

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
開(kāi)發(fā)和運營(yíng)之間的壁壘和鴻溝

DevOps是一種重視“軟件開(kāi)發(fā)人員(Dev)”和“IT運維技術(shù)人員(Ops)”之間溝通合作的文化、運動(dòng)或慣例。通過(guò)自動(dòng)化“軟件交付”和“架構變更”的流程,來(lái)使得構建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。具體來(lái)說(shuō),就是在軟件交付和部署過(guò)程中提高溝通與協(xié)作的效率,旨在更快、更可靠的的發(fā)布更高質(zhì)量的產(chǎn)品。

也就是說(shuō)DevOps是一組過(guò)程和方法的統稱(chēng),并不指代某一特定的軟件工具或軟件工具組合。各種工具軟件或軟件組合可以實(shí)現DevOps的概念方法。其本質(zhì)是一整套的方法論,而不是指某種或某些工具集合,與軟件開(kāi)發(fā)中設計到的OOP、AOP、IOC(或DI)等類(lèi)似,是一種理論或過(guò)程或方法的抽象或代稱(chēng)。

CI

CI的英文名稱(chēng)是Continuous Integration,中文翻譯為:持續集成。

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
Continuous Integration

CI中,開(kāi)發(fā)人員將會(huì )頻繁地向主干提交代碼,這些新提交的代碼在最終合并到主干前,需要經(jīng)過(guò)編譯和自動(dòng)化測試流進(jìn)行驗證。

持續集成(CI)是在源代碼變更后自動(dòng)檢測、拉取、構建和(在大多數情況下)進(jìn)行單元測試的過(guò)程。持續集成的目標是快速確保開(kāi)發(fā)人員新提交的變更是好的,并且適合在代碼庫中進(jìn)一步使用。CI的流程執行和理論實(shí)踐讓我們可以確定新代碼和原有代碼能否正確地集成在一起。

CD

CD可對應多個(gè)英文名稱(chēng),持續交付Continuous Delivery和持續部署Continuous Deployment ,一下分別介紹。

查了一些資料,關(guān)于持續交付和持續部署的概念比較混亂,以下的概念總結按大部分的資料總結而來(lái)。

持續交付

完成 CI 中構建及單元測試和集成測試的自動(dòng)化流程后,持續交付可自動(dòng)將已驗證的代碼發(fā)布到存儲庫。為了實(shí)現高效的持續交付流程,務(wù)必要確保 CI 已內置于開(kāi)發(fā)管道。持續交付的目標是擁有一個(gè)可隨時(shí)部署到生產(chǎn)環(huán)境的代碼庫。

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
持續交付

在持續交付中,每個(gè)階段(從代碼更改的合并,到生產(chǎn)就緒型構建版本的交付)都涉及測試自動(dòng)化和代碼發(fā)布自動(dòng)化。在流程結束時(shí),運維團隊可以快速、輕松地將應用部署到生產(chǎn)環(huán)境中或發(fā)布給最終使用的用戶(hù)。

持續部署

對于一個(gè)成熟的CI/CD管道(Pipeline)來(lái)說(shuō),最后的階段是持續部署。作為持續交付——自動(dòng)將生產(chǎn)就緒型構建版本發(fā)布到代碼存儲庫——的延伸,持續部署可以自動(dòng)將應用發(fā)布到生產(chǎn)環(huán)境。

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
持續部署

持續部署意味著(zhù)所有的變更都會(huì )被自動(dòng)部署到生產(chǎn)環(huán)境中。持續交付意味著(zhù)所有的變更都可以被部署到生產(chǎn)環(huán)境中,但是出于業(yè)務(wù)考慮,可以選擇不部署。如果要實(shí)施持續部署,必須先實(shí)施持續交付。

持續交付并不是指軟件每一個(gè)改動(dòng)都要盡快部署到產(chǎn)品環(huán)境中,它指的是任何的代碼修改都可以在任何時(shí)候實(shí)施部署。

持續交付表示的是一種能力,而持續部署表示的則一種方式。持續部署是持續交付的最高階段

Agile Development

另外一個(gè)概念,也就是所謂的敏捷開(kāi)發(fā),似乎還沒(méi)有所謂的簡(jiǎn)稱(chēng),而且這個(gè)稱(chēng)呼似乎在國內被濫用了。敏捷開(kāi)發(fā)著(zhù)重于一種開(kāi)發(fā)的思路,擁抱變化和快速迭代。如何實(shí)現敏捷開(kāi)發(fā),目前似乎尚沒(méi)有完善的工具鏈,更多的是一種概念性,調侃的說(shuō)法“既想馬爾跑得快,又想馬兒不吃草”的另外一種說(shuō)法。

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
Agile Development

上圖揭示了敏捷開(kāi)發(fā)的一些內涵和目標,似乎有點(diǎn)兒一本真經(jīng)的胡說(shuō)八道的意思。

CI、CD、DevOps關(guān)系

概念性的內容,每個(gè)人的理解都有所不同。就好比CGI 這個(gè)詞,即可以理解成CGI這種協(xié)議,也可以理解成實(shí)現了CGI協(xié)議的軟件工具,都沒(méi)有問(wèn)題,咬文嚼字過(guò)猶不及。留下一圖:

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
DevOps、CI、CD的區別




我要咨詢(xún)