敏捷是一種方法,一種組織軟件開發(fā)動(dòng)態(tài)以獲得最有效結(jié)果的方法。它強(qiáng)調(diào)最簡(jiǎn)化可實(shí)行產(chǎn)品(MVP)的增量交付,以及一個(gè)頻繁的反饋循環(huán),為團(tuán)隊(duì)提供有關(guān)改進(jìn)內(nèi)容的數(shù)據(jù)。實(shí)施更改后,將重復(fù)該過程,直到品質(zhì)保證(QA)批準(zhǔn)該軟件以部署到生產(chǎn)中。
敏捷開發(fā)是通過在通常持續(xù) 1-2周的Sprint周期中迭代開發(fā)特定功能來執(zhí)行。基準(zhǔn)系統(tǒng)產(chǎn)品被推送到QA測(cè)試,然后發(fā)送回團(tuán)隊(duì)進(jìn)行調(diào)試與修正。通過團(tuán)隊(duì)內(nèi)部和團(tuán)隊(duì)之間的頻繁、透明與無縫的協(xié)作和溝通才能實(shí)現(xiàn)。參與項(xiàng)目的所有團(tuán)隊(duì)成員都必須在時(shí)間表、業(yè)務(wù)需求和技術(shù)優(yōu)先級(jí)方面達(dá)成一致,敏捷開發(fā)才能成功。
敏捷是一種哲學(xué)理論,必須通過某些框架轉(zhuǎn)化為現(xiàn)實(shí)的實(shí)踐。這些框架,例如Scrum與精益是操作藍(lán)圖,為如何開展開發(fā)事項(xiàng)動(dòng)制定了逐步的可行計(jì)劃。
敏捷開發(fā)有四個(gè)基本原則:
在非DevOps開發(fā)運(yùn)維中,開發(fā)員創(chuàng)建代碼,在他們自己的系統(tǒng)上對(duì)其進(jìn)行測(cè)試,通過QA運(yùn)行并將其推送到運(yùn)行維護(hù)操作中。由于運(yùn)維(Ops)團(tuán)隊(duì)無法承受對(duì)其系統(tǒng)進(jìn)行頻繁更改,因此新代碼通常并不兼容。因此運(yùn)維將代碼發(fā)回給開發(fā)員而他們又必須又得從頭開發(fā),然后循環(huán)往復(fù)給兩個(gè)團(tuán)隊(duì)帶來了相互隔離的現(xiàn)象,為此,沒有太多關(guān)于是什么原因?qū)е麓a不兼容的交流而帶來各司其職不負(fù)責(zé)任的結(jié)果。
DevOps專注于消除開發(fā)與運(yùn)維團(tuán)隊(duì)之間的這種隔閡,從而在不影響質(zhì)量的情況下促進(jìn)更快的交付。 DevOps消除了將開發(fā)和運(yùn)維團(tuán)隊(duì)限制在孤島中的情況。就像敏捷開發(fā)一樣,DevOps也是一種開發(fā)哲學(xué)理論,它使整個(gè)團(tuán)隊(duì)和組織的工作變得更輕松。DevOps還需要協(xié)作才能成功而不僅是開發(fā)和運(yùn)維,QA和安全團(tuán)隊(duì)通常也需要將自己集成到管道中,以實(shí)現(xiàn)快速交付完美的軟件產(chǎn)品。
DevOps能否成功取決于將自動(dòng)化大量整合到開發(fā)過程中。自動(dòng)化工具有助于完成單個(gè)任務(wù)(由多個(gè)工程師區(qū)分代碼,通過預(yù)定的測(cè)試場(chǎng)景推送代碼等)。這就需要一個(gè)技術(shù)堆棧,將后續(xù)步驟歸結(jié)為一門科學(xué),并將代碼從一個(gè)階段推送到另一個(gè)階段,直到準(zhǔn)備好發(fā)布作為一個(gè)功能齊全的優(yōu)化應(yīng)用程序。毋庸置疑,對(duì)于各方加快進(jìn)度大有幫助。因此CI/CD在此間就有了用武之地,也可以說CI/CD就是DevOps的核心。
CI/CD是DevOps把理論變?yōu)楝F(xiàn)實(shí)的核心有效方法與方案。為滿足現(xiàn)今數(shù)字市場(chǎng)的需求,企業(yè)公司必須在不錯(cuò)過質(zhì)量和功能以極快的速度發(fā)布軟件于市場(chǎng)中。
為了實(shí)現(xiàn)這一點(diǎn),開發(fā)人員和測(cè)試人員必須使用CI/CD流水線確保以快速、安全和可靠的方式創(chuàng)建和發(fā)布軟件。
CI(持續(xù)集成)是一種實(shí)踐,開發(fā)員定期將代碼推送到共享存儲(chǔ)庫(kù),通常一天幾次。每次“推送”都會(huì)自動(dòng)驗(yàn)證,并在沒有任何錯(cuò)誤的情況下與主分支集成。定期集成允許在早期測(cè)試和調(diào)試小批量代碼,這樣就不會(huì)在開發(fā)生命周期的后期階段出現(xiàn)重大問題。
CD(持續(xù)交付、持續(xù)部署)可確保代碼始終準(zhǔn)備好交付或部署,其中包括所有更改——新功能、錯(cuò)誤修復(fù)、配置更改等。通過CI實(shí)現(xiàn)推送代碼、測(cè)試代碼并將其自動(dòng)合并到主分支。無論一天內(nèi)集成多少次代碼,即使數(shù)量是數(shù)千也可輕松實(shí)現(xiàn)。此處的目的是始終擁有已通過必要測(cè)試的可部署、無錯(cuò)誤的產(chǎn)品。
CD有時(shí)也指持續(xù)部署。在實(shí)踐中,一旦所有更改經(jīng)過測(cè)試并與主代碼庫(kù)集成,軟件就會(huì)自動(dòng)部署到生產(chǎn)環(huán)境中。在持續(xù)交付中,部署需要一名或多名人員(QA、業(yè)務(wù)或技術(shù)經(jīng)理)的監(jiān)督和批準(zhǔn)。持續(xù)部署是消除人工干預(yù)的最后一步。
與敏捷開發(fā)和DevOps一樣,CI/CD需要正確的工具、框架和熟練的人員才能成功并提供所需的技術(shù)與商業(yè)成果。
敏捷開發(fā)
DevOps
CI/CD
通過這篇文章,希望您對(duì)這方面的知識(shí)有進(jìn)一步的加深!我們將會(huì)持續(xù)發(fā)表相關(guān)敏捷開發(fā)、DevOps與CI/CD更多詳細(xì)的實(shí)踐與操作的文章以便您能將其使用到工作中去。
]]>