2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

DevOps研發(fā)模式下CI/CD實(shí)踐詳解指南

 測(cè)試開(kāi)發(fā)技術(shù) 2022-06-18 發(fā)布于廣東

優(yōu)質(zhì)文章,第一時(shí)間送達(dá)!

閱讀全文大概需要 10分鐘。

1. 前言

借著公司今年新組建的中臺(tái)研發(fā)部東風(fēng),我作為其中的主要負(fù)責(zé)人,在研發(fā)中心主導(dǎo)推行DevOps研發(fā)管理模式轉(zhuǎn)變及質(zhì)量管理創(chuàng)新建設(shè),本篇文章摘取自今年9月底,筆者在公司內(nèi)部針對(duì)全體研發(fā)人員的一次DevOps培訓(xùn)PPT中的部分內(nèi)容,涉及公司敏感信息和部分章節(jié)內(nèi)容順序已經(jīng)作過(guò)處理。

相信公眾號(hào)內(nèi),大部分讀者此前,對(duì)DevOps沒(méi)并有過(guò)多或全面的接觸,為了回饋?zhàn)x者,因此將此次公司內(nèi)訓(xùn)其中涉及DevOps一些核心理念和實(shí)踐經(jīng)驗(yàn)抽取出來(lái),分享給大家。(如有不正確的,歡迎糾正

2. 到處都在說(shuō)DevOps,到底DevOps是什么?

最近幾年,相信大家經(jīng)常會(huì)看到DevOps這個(gè)詞,也有很多專門(mén)以DevOps為主題的大型行業(yè)技術(shù)峰會(huì)。雖然DevOps最近幾年才在國(guó)內(nèi)公司流行,但實(shí)際上DevOps早在2009 年就已經(jīng)被提出來(lái)了。

那經(jīng)常一直說(shuō)DevOps,DevOps到底是個(gè)什么東西?

DevOps目前其實(shí)并沒(méi)有一個(gè)權(quán)威的定義,即便一些在DevOps領(lǐng)域耕耘很久的大師,對(duì)DevOps也無(wú)法給出一個(gè)統(tǒng)一的定義,久而久之,行業(yè)也有這樣的一個(gè)說(shuō)法:“如果有1000個(gè)人在說(shuō)DevOps,那DevOps可能就有一千種意思?!?/span>

Anyway,無(wú)論有多少種意思,但我想說(shuō)的是DevOps它最根本的那個(gè)意思是基本上類似的。

2.1 聊一聊DevOps組成

看到上面這張圖,可能有人就會(huì)說(shuō)DevOps是不是Dev+Ops。

單純從字面上來(lái)理解,DevOps 是Dev(開(kāi)發(fā)人員)+Ops(運(yùn)維人員),雖然名字來(lái)源于開(kāi)發(fā)和運(yùn)維的縮寫(xiě),但DevOps并不是簡(jiǎn)單的就是開(kāi)發(fā)加運(yùn)維。

 DevOps 所涵蓋的角色范圍會(huì)更廣:除了開(kāi)發(fā)、測(cè)試、運(yùn)維還會(huì)涉及到項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理,甚至和銷售、市場(chǎng)等各個(gè)部門(mén),跨職能部門(mén)互相合作,完成某一項(xiàng)目或任務(wù)。

2.2  DevOps不是什么

在幫助大家理解 DevOps 到底是什么之前,先說(shuō)說(shuō) DevOps 不是什么,很多人對(duì) DevOps 可能存在一些誤解:

誤解一:DevOps不是一種工具,有人可能會(huì)說(shuō)我在用Docker又或Jenkins等工具,是不是就表明在做DevOps了?然而這些并不意味著就在做DevOps的事情。

誤解二:DevOps不是一個(gè)新角色或者說(shuō)是一個(gè)新的職位, 雖然說(shuō)國(guó)內(nèi)確實(shí)有些公司有單獨(dú)的職位是DevOps工程師,但并不代表,DevOps是一個(gè)職位,嚴(yán)格來(lái)說(shuō)它是一類工程師的統(tǒng)稱。

誤解三:還有人說(shuō),DevOps出來(lái)之后,是不是由一個(gè)獨(dú)立的團(tuán)隊(duì)去做所有事情,從開(kāi)發(fā)到運(yùn)維,一個(gè)部門(mén)就都干掉。

其實(shí)上面這幾點(diǎn)都沒(méi)有錯(cuò),但對(duì)于DevOps這個(gè)概念而言,太過(guò)于狹隘了,不是簡(jiǎn)單的說(shuō)DevOps就是開(kāi)發(fā)加運(yùn)維,DevOps是由一個(gè)團(tuán)隊(duì)或者由開(kāi)發(fā)加運(yùn)維就能搞定的。

實(shí)際上DevOps從需求到設(shè)計(jì)到開(kāi)發(fā)、到測(cè)試到運(yùn)維,甚至是線上的運(yùn)營(yíng)反饋整個(gè)全生命周期的,所以它應(yīng)該是一個(gè)打通多個(gè)部門(mén)協(xié)調(diào),協(xié)作的這樣的一個(gè)平臺(tái)。至于工具和自動(dòng)化實(shí)際上只是DevOps實(shí)現(xiàn)的一種手段?;蛘哒f(shuō)DevOps是通過(guò)工具,自動(dòng)化,來(lái)達(dá)到這種通過(guò)工具鏈與持續(xù)集成、交付、反饋、優(yōu)化進(jìn)行端到端整合,完成無(wú)縫的跨團(tuán)隊(duì)、跨系統(tǒng)協(xié)作。

3. DevOps包含一系列工具鏈、平臺(tái)

DevOps實(shí)踐涉及到開(kāi)發(fā)部門(mén)以及軟件研發(fā)的整個(gè)生命周期,這意味著在整個(gè)開(kāi)發(fā)生命周期中,涉及到一大批新舊工具,包括從規(guī)劃、編碼、測(cè)試、發(fā)布、監(jiān)控等自動(dòng)化的流程工具。

3.1  DevOps包含了一系列工具鏈

DevOps融合了一系列基本原則和實(shí)踐的方法論,并從這些實(shí)踐中派生出了各種工具。這些工具體現(xiàn)在軟件開(kāi)發(fā)和交付過(guò)程的不同階段:

  • 編碼:代碼開(kāi)發(fā)和審閱,版本控制工具、代碼合并工具

  • 構(gòu)建:持續(xù)集成工具、構(gòu)建狀態(tài)統(tǒng)計(jì)工具

  • 測(cè)試:通過(guò)測(cè)試和結(jié)果確定績(jī)效的工具

  • 打包:成品倉(cāng)庫(kù)、應(yīng)用程序部署前暫存

  • 發(fā)布:變更管理、發(fā)布審批、發(fā)布自動(dòng)化

  • 配置:基礎(chǔ)架構(gòu)配置和部署,基礎(chǔ)架構(gòu)即代碼工具

  • 監(jiān)控:應(yīng)用程序性能監(jiān)視、最終用戶體驗(yàn)

3.2 國(guó)內(nèi)主流的三大DevOps管理平臺(tái)

除了上面說(shuō)的這些工具鏈以外,也有一些DevOps管理平臺(tái)服務(wù),國(guó)內(nèi)比較出名的就三個(gè)。

  • 云效

  • TAPD

  • 靈雀云

其中云效和TAPD屬于SaaS類平臺(tái),靈雀云是基于容器技術(shù),以DevOps為理念,面向微服務(wù)應(yīng)用的新一代PaaS平臺(tái)。

3.3 對(duì)DevOps工具鏈、平臺(tái)存在的誤區(qū)

好的工具、平臺(tái)可以對(duì)DevOps的實(shí)施提供出非常強(qiáng)有力的支持,但并不代表,實(shí)施DevOps,就一定需要重新去引入或購(gòu)買(mǎi)一堆工具、平臺(tái)。

問(wèn)題的關(guān)鍵在于:如何解決問(wèn)題,而不是具體應(yīng)用哪一款的工具、平臺(tái)。如果組織僅僅是購(gòu)買(mǎi)工具而不改變工作流程,這樣不會(huì)改變?nèi)魏问虑椤?/span>

4. DevOps成功的關(guān)鍵:組織文化的轉(zhuǎn)變

DevOps 成功的關(guān)鍵在于文化轉(zhuǎn)變,除了上面提到的工具,組織文化的轉(zhuǎn)變也同等重要,我們總結(jié)出了很多 DevOps 的其他因素,比如人(People)的思想和思考方式、開(kāi)發(fā)和運(yùn)維的流程(Process)、精益(Lean)、自動(dòng)化(Automation)、測(cè)量(Measurement。

在組織文化方面,DevOps 推崇:

  • 尊重(Respect)

  • 正視失?。℉ealthy attitude about failure)

  • 不埋怨(Avoiding Blame)

  • 精益求精

  • 工程質(zhì)量文化

  • 快速驗(yàn)證文化

  • 客戶導(dǎo)向文化

5.  重新定義DevOps

到此你大概能對(duì)DevOps有一個(gè)概要的認(rèn)識(shí)和理解,DevOps它是由一些規(guī)范方法,自動(dòng)化實(shí)踐,合作文化等在組織內(nèi)部不斷演進(jìn)修復(fù)而產(chǎn)生的一種提升軟件工程發(fā)布質(zhì)量和效率的方法和實(shí)踐。

總結(jié)為三點(diǎn):

  • DevOps 理念:以客戶、業(yè)務(wù)需求為導(dǎo)向,向著同一個(gè)目標(biāo)前進(jìn),強(qiáng)調(diào)多個(gè)部門(mén)緊密溝通與協(xié)作的軟件交付過(guò)程。它包括產(chǎn)品管理,軟件開(kāi)發(fā)及運(yùn)營(yíng)等各個(gè)方面。

  • DevOps核心實(shí)踐:人員協(xié)作文化+持續(xù)交付能力支撐

  • DevOps目標(biāo)是建立一種精誠(chéng)合作的文化和環(huán)境,通過(guò)工具鏈與持續(xù)集成、交付、反饋、優(yōu)化來(lái)實(shí)現(xiàn)跨團(tuán)隊(duì)、跨系統(tǒng)協(xié)作方式。

6. 實(shí)踐DevOps需要建立哪些能力

6.1 能力一:DevOps不可或缺的自動(dòng)化能力

自動(dòng)化是DevOps底線?。。∪绻浖到y(tǒng)沒(méi)有一套較完善的自動(dòng)化測(cè)試體系,就請(qǐng)不要談DevOps,要想同時(shí)提升發(fā)布效率和產(chǎn)品穩(wěn)定性,以自動(dòng)化替代手工方式快速、頻繁的對(duì)軟件質(zhì)量進(jìn)行驗(yàn)證是首要的手段。

主要體現(xiàn)在三點(diǎn)上:

  • 自動(dòng)化比手動(dòng)快。

  • 工具不會(huì)像人一樣容易犯錯(cuò)誤。

  • 通過(guò)自動(dòng)化按照定義執(zhí)行確保每次執(zhí)行的一致性。

6.2 能力二:建立持續(xù)交付能力

實(shí)現(xiàn)DevOps,需要給產(chǎn)品交付團(tuán)隊(duì)提供一個(gè)軟件持續(xù)交付平臺(tái)或者能持續(xù)交付的部署流水線,讓軟件從代碼提交構(gòu)建到交付給用戶的整個(gè)過(guò)程都能自動(dòng)在流水線上完成。

主要體現(xiàn)在三點(diǎn)上:

  • 通過(guò)統(tǒng)一的部署流水線將從代碼提交到交付給用戶的整個(gè)過(guò)程高度可視化出來(lái),信息透明;讓開(kāi)發(fā)、測(cè)試和運(yùn)維以高度一致的方式工作在同一個(gè)流水線上,真正建立起協(xié)作。

  • 每一次的軟件變更在這個(gè)完整的流水線中得到充分的驗(yàn)證,盡早發(fā)現(xiàn)有缺陷的變更。

  • 將一些必不可少的控制環(huán)節(jié)內(nèi)建到自動(dòng)化過(guò)程中,比如質(zhì)量保障過(guò)程、過(guò)程度量、過(guò)程審計(jì)信息等,從而弱化很多傳統(tǒng)依靠人為檢查的管理流程。

6.3 能力三:利益共同利的合作文化

以提高業(yè)務(wù)響應(yīng)效率出發(fā),要有一榮俱榮,精誠(chéng)合作,共同進(jìn)步的工作態(tài)度。

7. 實(shí)踐DevOps應(yīng)該如何實(shí)施

DevOps所涉及的內(nèi)容是非常廣的,根據(jù)不同的公司現(xiàn)狀的不同,實(shí)施落地的方式也會(huì)有所不一樣。

不要盲目的去追從DevOps,不是因?yàn)榇蠹叶甲觯晕乙惨觯?strong>需要具備更高的全局觀,從瓶頸點(diǎn)開(kāi)始著手。

應(yīng)該出于解決某個(gè)業(yè)務(wù)問(wèn)題的角度出發(fā),知道要解決什么樣的問(wèn)題,這是非常非常重要的。如果你的交付質(zhì)量和交付效率在自身企業(yè)內(nèi)覺(jué)得沒(méi)有問(wèn)題,如果你們覺(jué)得沒(méi)有問(wèn)題,想想平時(shí)升級(jí)發(fā)版加班的苦逼。

當(dāng)你用一些實(shí)踐來(lái)解決一些業(yè)務(wù)中的實(shí)際問(wèn)題,將他們串聯(lián)起來(lái),并且形成以管道式的發(fā)布流水線后,你會(huì)發(fā)現(xiàn),其實(shí)你已經(jīng)開(kāi)始在做DevOps了。

8. DevOps轉(zhuǎn)型的實(shí)踐手段

8.1 實(shí)踐一:以小批量的方式工作(開(kāi)發(fā)、架構(gòu)、組織文化的演進(jìn))

以小批量、持續(xù)的方式進(jìn)行,通過(guò)反復(fù)實(shí)驗(yàn)、根據(jù)反饋循環(huán)快速學(xué)習(xí),找到最正確的實(shí)施路徑。這樣需要把大的問(wèn)題拆成一系列小的問(wèn)題逐個(gè)、漸進(jìn)式解決。

8.2 實(shí)踐二:創(chuàng)建反饋循環(huán)

在小批量工作的基礎(chǔ)上,我們要建立起反饋循環(huán)。反饋循環(huán)讓我們能夠持續(xù)學(xué)習(xí),基于學(xué)習(xí)進(jìn)行持續(xù)改進(jìn),持續(xù)交付流水線就是反饋循環(huán)的具體實(shí)現(xiàn)。

9.實(shí)踐DevOps最佳實(shí)踐手段:CI/CD

相信大部分讀者對(duì)DevOps和CI/CD經(jīng)常會(huì)弄混淆,那么如何來(lái)理解DevOps和CI/CD之間的關(guān)系呢?可以這樣來(lái)理解:DevOps是CI/CD思想的延伸,CI/CD則是DevOps的技術(shù)核心,如果沒(méi)有CI/CD,沒(méi)有自動(dòng)化測(cè)試,DevOps是沒(méi)有任何意義的。所以說(shuō)DevOps是以CI/CD為基礎(chǔ)來(lái)優(yōu)化程序的開(kāi)發(fā)、測(cè)試、運(yùn)維等各個(gè)不同環(huán)節(jié)。

9.1  CI:持續(xù)集成

持續(xù)集成是一種開(kāi)發(fā)實(shí)踐,它倡導(dǎo)團(tuán)隊(duì)成員需要頻繁的集成他們的工作,每次集成都通過(guò)自動(dòng)化構(gòu)建(包括編譯、構(gòu)建、自動(dòng)化測(cè)試)來(lái)驗(yàn)證,從而盡快地發(fā)現(xiàn)集成中的錯(cuò)誤。讓正在開(kāi)發(fā)的軟件始終處于可工作狀態(tài),讓產(chǎn)品可以快速迭代,同時(shí)還能保持高質(zhì)量。

9.2 什么是CD?

談到CD,其中是包含了兩層內(nèi)容:持續(xù)交付持續(xù)部署。

有時(shí)候很多人會(huì)把持續(xù)交付誤認(rèn)為成持續(xù)部署,然而兩者是兩個(gè)不同層次的能力。

持續(xù)交付:

持續(xù)交付是持續(xù)集成的延伸或者看作持續(xù)集成的下一步,它將集成后的代碼部署到類生產(chǎn)環(huán)境,確保可以以可持續(xù)的方式快速向客戶發(fā)布新的更改。如果代碼沒(méi)有問(wèn)題,可以繼續(xù)手工部署到生產(chǎn)環(huán)境中。它強(qiáng)調(diào)的是,不管怎么更新,軟件是隨時(shí)隨地可以交付的。


持續(xù)部署:

持續(xù)部署是持續(xù)交付的下一步,在持續(xù)交付的基礎(chǔ)上,由開(kāi)發(fā)人員或運(yùn)維人員自助式的定期向生產(chǎn)環(huán)境部署穩(wěn)定的構(gòu)建版本,持續(xù)部署的目標(biāo)是代碼在任何時(shí)刻都是可部署的,并可自動(dòng)進(jìn)入到生產(chǎn)環(huán)境。

說(shuō)到這里,相信大部人已經(jīng)能清楚明白了,持續(xù)交付是指團(tuán)隊(duì)確保每個(gè)變更可以部署至生產(chǎn)環(huán)境,但也許并不需要實(shí)際部署,這通??赡苁浅鲇跇I(yè)務(wù)方面的原因。而持續(xù)部署是指每個(gè)變更可以自動(dòng)部署到生產(chǎn)環(huán)境只有成功實(shí)現(xiàn)持續(xù)交付的前提下,才能進(jìn)行持續(xù)部署。

10.DevOps提倡的原則

DevOps持續(xù)交付的八大原則對(duì)可運(yùn)維性給出了這樣的定義,在企業(yè)中研發(fā)和運(yùn)維體系必然需要相互配合,開(kāi)發(fā)團(tuán)隊(duì)負(fù)責(zé)功能性需求實(shí)現(xiàn)的同時(shí),在架構(gòu)和編碼上注重非功能性需求的實(shí)現(xiàn),測(cè)試團(tuán)隊(duì)與運(yùn)維團(tuán)隊(duì)將圍繞著各自職能的需求,規(guī)劃與建設(shè)DevOps流水線中對(duì)應(yīng)的工具系統(tǒng),加速企業(yè)IT價(jià)值鏈的流轉(zhuǎn),以為企業(yè)創(chuàng)造更大的商業(yè)價(jià)值。

DevOps提倡的原則

  •  從瓶頸點(diǎn)著手

  • Start Small,從小做起

  • 痛苦的事情優(yōu)先解決

  • 工具也是一種文化

  • 自動(dòng)化別人,先自動(dòng)化自己

  • 價(jià)值拉動(dòng),而非事務(wù)驅(qū)動(dòng)

  • 構(gòu)建指標(biāo),驅(qū)動(dòng)DevOps落地。

  • 創(chuàng)建從開(kāi)發(fā)過(guò)程下游至上游的反饋環(huán)。

  • 強(qiáng)調(diào)全局優(yōu)化,避免局部?jī)?yōu)化。

  • 持續(xù)做試驗(yàn)和學(xué)習(xí)的文化,通過(guò)反復(fù)實(shí)踐來(lái)達(dá)到精通。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多