DevOps
DevOps是Development和Operations的組合,是一種方法論,是一組過程、方法與系統的統稱,用于促進應用開發、應用運維和質量保障(QA)部門之間的溝通、協作與整合。以期打破傳統開發和運營之間的壁壘和鴻溝。
DevOps是一種重視“軟件開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。通過自動化“軟件交付”和“架構變更”的流程,來使得構建、測試、發布軟件能夠更加地快捷、頻繁和可靠。具體來說,就是在軟件交付和部署過程中提高溝通與協作的效率,旨在更快、更可靠的的發布更高質量的產品。
也就是說DevOps是一組過程和方法的統稱,并不指代某一特定的軟件工具或軟件工具組合。各種工具軟件或軟件組合可以實現DevOps的概念方法。其本質是一整套的方法論,而不是指某種或某些工具集合,與軟件開發中設計到的OOP、AOP、IOC(或DI)等類似,是一種理論或過程或方法的抽象或代稱。
CI
CI的英文名稱是Continuous Integration,中文翻譯為:持續集成。
CI中,開發人員將會頻繁地向主干提交代碼,這些新提交的代碼在最終合并到主干前,需要經過編譯和自動化測試流進行驗證。
持續集成(CI)是在源代碼變更后自動檢測、拉取、構建和(在大多數情況下)進行單元測試的過程。持續集成的目標是快速確保開發人員新提交的變更是好的,并且適合在代碼庫中進一步使用。CI的流程執行和理論實踐讓我們可以確定新代碼和原有代碼能否正確地集成在一起。
CD
CD可對應多個英文名稱,持續交付Continuous Delivery和持續部署Continuous Deployment ,以下分別介紹。
查了一些資料,關于持續交互和持續部署的概念比較混亂,以下的概念總結按大部分的資料總結而來。
持續交付
完成 CI 中構建及單元測試和集成測試的自動化流程后,持續交付可自動將已驗證的代碼發布到存儲庫。為了實現高效的持續交付流程,務必要確保 CI 已內置于開發管道。持續交付的目標是擁有一個可隨時部署到生產環境的代碼庫。
在持續交付中,每個階段(從代碼更改的合并,到生產就緒型構建版本的交付)都涉及測試自動化和代碼發布自動化。在流程結束時,運維團隊可以快速、輕松地將應用部署到生產環境中或發布給最終使用的用戶。
持續部署
對于一個成熟的CI/CD管道(Pipeline)來說,最后的階段是持續部署。作為持續交付——自動將生產就緒型構建版本發布到代碼存儲庫——的延伸,持續部署可以自動將應用發布到生產環境。
持續部署意味著所有的變更都會被自動部署到生產環境中。持續交付意味著所有的變更都可以被部署到生產環境中,但是出于業務考慮,可以選擇不部署。如果要實施持續部署,必須先實施持續交付。
持續交付并不是指軟件每一個改動都要盡快部署到產品環境中,它指的是任何的代碼修改都可以在任何時候實施部署。
持續交付表示的是一種能力,而持續部署表示的則一種方式。持續部署是持續交付的最高階段
Agile Development
另外一個概念,也就是所謂的敏捷開發,似乎還沒有所謂的簡稱,而且這個稱呼似乎在國內被濫用了。敏捷開發著重于一種開發的思路,擁抱變化和快速迭代。如何實現敏捷開發,目前似乎尚沒有完善的工具鏈,更多的是一種概念性,調侃的說法“既想馬兒跑得快,又想馬兒不吃草”的另外一種說法。
上圖揭示了敏捷開發的一些內涵和目標,似乎有點兒一本真經的胡說八道的意思。
CI、CD、DevOps關系
概念性的內容,每個人的理解都有所不同。就好比CGI 這個詞,即可以理解成CGI這種協議,也可以理解成實現了CGI協議的軟件工具,都沒有問題,咬文嚼字過猶不及。留意下圖:
責任編輯:lq
-
軟件開發
+關注
關注
0文章
621瀏覽量
27384 -
代碼
+關注
關注
30文章
4808瀏覽量
68815 -
devops
+關注
關注
0文章
116瀏覽量
12038
原文標題:DevOps、CI、CD都是什么鬼?
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
云服務器Flexus X實例,Docker集成搭建Jenkins CI/CD平臺
![云服務器Flexus X實例,Docker集成搭建Jenkins <b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>平臺](https://file1.elecfans.com//web3/M00/04/27/wKgZPGdv2BuAbU5XAAHzPWpIORI19.webp)
CI/CD方案:推動智能汽車開發的高效利器
![<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>方案:推動智能汽車開發的高效利器](https://file.elecfans.com/web2/M00/52/D4/pYYBAGLNkrKAeFJaAAAjXRuImx0496.png)
汽車軟件DevOps解決方案
![汽車軟件<b class='flag-5'>DevOps</b>解決方案](https://file1.elecfans.com/web3/M00/02/72/wKgZO2dfkVGAPke9AABiL-XqrFQ518.png)
devops使用最廣泛的集成工具盤點
艾體寶產品 CircleCI:高效的CI/CD平臺,助力開發團隊加速交付!
![艾體寶產品 CircleCI:高效的<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>平臺,助力開發團隊加速交付!](https://file1.elecfans.com/web1/M00/F5/6E/wKgZoWc9R1WAPe6VAAK3zucEm38108.png)
Devops工具鏈集成的意義及基本原理
常用的devops工具集成方法
Perforce靜態分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改進和安全增強
![Perforce靜態分析工具2024.2新增功能:Helix QAC全新<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>集成支持、Klocwork分析引擎改進和安全增強](https://file1.elecfans.com/web2/M00/E7/A3/wKgZomZMQFaABPseAAAwD5kHnx4413.png)
行云流水線 滿足你對工作流編排的一切幻想~skr
在KubeSphere 容器中快速部署使用 GitLab 并構建 DevOps 項目
![在KubeSphere 容器中快速部署使用 GitLab 并構建 <b class='flag-5'>DevOps</b> 項目](https://file1.elecfans.com//web2/M00/FE/A1/wKgZomajFbGAKFM8AAAkQAhb3Tc459.jpg)
在Linux服務器上使用IAR Build Tools實現DevOps和CI/CD
![在Linux服務器上使用IAR Build Tools實現<b class='flag-5'>DevOps</b>和<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>](https://file1.elecfans.com/web2/M00/FE/58/wKgZomaht5GATMTZAAAQBmEbFx4528.png)
2.4GHz無線MCU芯片手冊解讀:Ci2451和Ci2454有何不同?
![2.4GHz無線MCU芯片手冊解讀:<b class='flag-5'>Ci</b>2451和<b class='flag-5'>Ci</b>2454有何不同?](https://file1.elecfans.com/web2/M00/F2/68/wKgaomZ1NfiAPl3GAADlH5Apdyc561.png)
CD4073B CD4081B CD4082B TYPES 數據表
![<b class='flag-5'>CD</b>4073B <b class='flag-5'>CD</b>4081B <b class='flag-5'>CD</b>4082B TYPES 數據表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CD4020B CD4024B CD4040B TYPES 數據表
![<b class='flag-5'>CD</b>4020B <b class='flag-5'>CD</b>4024B <b class='flag-5'>CD</b>4040B TYPES 數據表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論