精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

所有你想知道的DevOps實(shí)踐都在這里

原創(chuàng)
云計(jì)算 開發(fā)工具
隨著互聯(lián)網(wǎng)產(chǎn)業(yè)的飛速發(fā)展,IT 研發(fā)的工作方式也越發(fā)的靈活多變。從應(yīng)用的角度來說,由原來的單服務(wù)應(yīng)用,到現(xiàn)在的微服務(wù)應(yīng)用,處理的數(shù)據(jù)量和類型也在不斷增長(zhǎng)。

【51CTO.com原創(chuàng)稿件】隨著互聯(lián)網(wǎng)產(chǎn)業(yè)的飛速發(fā)展,IT 研發(fā)的工作方式也越發(fā)的靈活多變。從應(yīng)用的角度來說,由原來的單服務(wù)應(yīng)用,到現(xiàn)在的微服務(wù)應(yīng)用,處理的數(shù)據(jù)量和類型也在不斷增長(zhǎng)。

[[281102]] 

圖片來自 Pexels

從團(tuán)隊(duì)的角度來說,不僅包括開發(fā),測(cè)試人員,還引入了運(yùn)維,安全,系統(tǒng),網(wǎng)絡(luò)等各個(gè)專業(yè)的人員。

那么在新的時(shí)代下,我們?nèi)绾卫?DevOps(開發(fā)運(yùn)維)的方法論指導(dǎo)交付過程,就顯得尤為重要了。

我們將從 DevOps 的兩個(gè)要點(diǎn)三個(gè)原則切入,來看看組織,團(tuán)隊(duì),流程的優(yōu)秀實(shí)踐。

DevOps 的兩個(gè)要點(diǎn)和三原則

做任何一件事情都有其價(jià)值,做事的過程就是“把業(yè)務(wù)構(gòu)想轉(zhuǎn)化為客戶價(jià)值的過程”,我們稱之為價(jià)值流。

對(duì)于研發(fā)團(tuán)隊(duì)來說,也存在技術(shù)價(jià)值流。它就是通過“開發(fā)+運(yùn)維”的敏捷迭代的方式為用戶提供價(jià)值。技術(shù)價(jià)值流就是第一個(gè)要點(diǎn)。

 

通過開發(fā)運(yùn)維的方式,幫助業(yè)務(wù)想法觸達(dá)到客戶需求

如果把我們創(chuàng)造價(jià)值流的工作分成兩個(gè)階段:

  • 第一個(gè)階段是設(shè)計(jì)和開發(fā)
  • 第二個(gè)階段是測(cè)試和運(yùn)維

 

技術(shù)價(jià)值流創(chuàng)造的兩個(gè)階段

那么前置時(shí)間是客戶提出需求,我們創(chuàng)建一個(gè)工單解決這個(gè)需求,然后處理工單,直到工作完成的時(shí)間的總和。前置時(shí)間作為第二個(gè)要點(diǎn)是我們值得關(guān)注的。

 

部署工作的前置時(shí)間和處理時(shí)間

通常情況下從設(shè)計(jì),開發(fā),測(cè)試,運(yùn)維中間需要經(jīng)歷很多復(fù)雜漫長(zhǎng)的過程。

 

交付的過程復(fù)雜且漫長(zhǎng)

我們想要達(dá)到的目標(biāo)是,在代碼版本控制中不斷提交小批量的代碼,每次提交都會(huì)做自動(dòng)化的編譯,自動(dòng)化測(cè)試,手動(dòng)測(cè)試(探索測(cè)試),然后再部署到生產(chǎn)環(huán)境中。

為了實(shí)現(xiàn)這個(gè)目標(biāo),需要盡量讓設(shè)計(jì),開發(fā),測(cè)試,發(fā)布的時(shí)間縮短,給客戶提供最大程度的技術(shù)價(jià)值流。

基于上面提到的兩個(gè)要點(diǎn),下面三個(gè) DevOps 原則就是最好的選擇。

流動(dòng)原則

為了縮短從開發(fā)到上線之間的時(shí)間,提高服務(wù)質(zhì)量和可靠性,我們會(huì)加快開發(fā)(Dev)和運(yùn)維(Ops)之間的流動(dòng)。我們一起來看看需要注意哪些方面。

①使工作可見

和傳統(tǒng)行業(yè)相比軟件開發(fā)行業(yè)的工作可見度不高。通常只有完全做完才能看到可以使用的用戶界面,有的后臺(tái)服務(wù)甚至完成以后都看不到長(zhǎng)什么樣子。

但是對(duì)于不可見的東西,人們對(duì)其又難以掌控,所以我們需要對(duì)工作進(jìn)行可視化。

在敏捷開發(fā)中我們會(huì)對(duì)每個(gè)階段的任務(wù)進(jìn)行切割,協(xié)助項(xiàng)目推薦和軟件開發(fā)的完成。

 

開發(fā),運(yùn)維,UAT,交付全流程

同時(shí)我們要告訴團(tuán)隊(duì),只有軟件交付到用戶手中并且給用戶帶來價(jià)值了,我們的工作才算完成。

②限制每人同時(shí)持有的任務(wù)數(shù)

這種場(chǎng)景大家是不是經(jīng)常遇到,你在開發(fā)某一個(gè)功能的時(shí)候,測(cè)試同學(xué)向你報(bào)了一個(gè)急需解決的 Bug,同時(shí)產(chǎn)品經(jīng)理又跑過來說這個(gè)需求可能需要再改改,架構(gòu)師也找你談重構(gòu)的事情。

這導(dǎo)致一個(gè)人同時(shí)要處理很多事情,每件事情都很重要,都需要馬上完成。就好像攤大餅一樣,每個(gè)事情都做,每件事都做不好。你會(huì)不斷地被打擾,在任務(wù)之間切換,使得效率變低。

因此,需要借助看板控制每人的任務(wù)量,讓任務(wù)保持合理的數(shù)量,從而保證質(zhì)量和效率。

 

一人持有多個(gè)任務(wù)

③減少批量大小

我們?cè)陂_發(fā)過程中經(jīng)常會(huì)遇到這種情況,一個(gè)事情有四個(gè)步驟組成,我們需要完成 100 件這樣的事情。

于是,根據(jù)抽象和分工合作的原則,我們把這個(gè)事情分成 4 步,每個(gè)步驟分配給一個(gè)人來完成,這樣每個(gè)人完成每個(gè)步驟 100 次這個(gè)事情就完成了。

這個(gè)方法沒有錯(cuò),但是在做這個(gè)事情的初期,最好是把這個(gè)事情的四個(gè)步驟由一個(gè)人先完成一次,看看是否存在潛在的問題,在看看在完成過程中是否有可以總結(jié)的經(jīng)驗(yàn)和需要踩的坑。

這樣往復(fù)幾次,把一些問題解決以后再找其他幾個(gè)人來分步驟幫忙。這種方式在快速試錯(cuò)的互聯(lián)網(wǎng)企業(yè)用的非常的多。

 

先完成閉環(huán)流程,再?gòu)?fù)制經(jīng)驗(yàn)

④減少交接次數(shù)

我們?cè)谕瓿梢粋€(gè)事情的時(shí)候往往會(huì)和其他的團(tuán)隊(duì)和人員進(jìn)行大量的溝通,請(qǐng)求,委派,通知,協(xié)調(diào)等工作。

例如:軟件發(fā)布過程中就需要面臨功能測(cè)試,集成測(cè)試,環(huán)境搭建,配置服務(wù)器,存儲(chǔ)管理,網(wǎng)絡(luò)等工作。如果任何事情都需要審核,協(xié)調(diào)勢(shì)必會(huì)降低工作的效率。

這里互聯(lián)網(wǎng)企業(yè)的扁平化管理就可以借鑒,每個(gè)小隊(duì)包括技術(shù),業(yè)務(wù),管理和不同領(lǐng)域的人員,這樣減少了跨部門的溝通,工作效率更高。

 

減少交接

⑤識(shí)別和改善約束點(diǎn)

在軟件開發(fā)交付的過程中有很多約束,包括:人員,時(shí)間,軟件,服務(wù)器,網(wǎng)絡(luò)等等。

在 DevOps 中也一樣,我們需要不斷的識(shí)別這個(gè)約束,并且不斷改善這些限制條件才能推進(jìn)整個(gè)開發(fā)的進(jìn)度。

 

讓約束點(diǎn)之間能夠平滑過度

環(huán)境搭建:建議使用自動(dòng)的環(huán)境部署,利用現(xiàn)在容器技術(shù)(Docker)提高整個(gè)環(huán)境的搭建速度。

代碼部署:建議讓代碼上傳,編譯,部署自動(dòng)化起來。這些動(dòng)作在一個(gè)軟件交付團(tuán)隊(duì)每天都在不斷的上演,開發(fā)團(tuán)隊(duì)的人越多這個(gè)工作更是需要做。

測(cè)試執(zhí)行:這個(gè)是承接上一點(diǎn)的,一旦一個(gè)軟件發(fā)布以后就需要跟進(jìn)自動(dòng)化的測(cè)試。

至少用自動(dòng)化腳本針對(duì)核心 20% 的功能進(jìn)行測(cè)試,然后再由測(cè)試人員對(duì)具體功能進(jìn)行冒煙測(cè)試。

軟件隨著功能擴(kuò)展,測(cè)試工作量也會(huì)隨之增大。如果不用自動(dòng)化測(cè)試,依靠手動(dòng)測(cè)試工作量是很大的。

解耦架構(gòu):隨著微服務(wù)的風(fēng)行,現(xiàn)在基本都是組件式的設(shè)計(jì),組件出現(xiàn)問題都做故障隔離和熔斷機(jī)制,那么也需要針對(duì)組件進(jìn)行發(fā)布。

反饋原則

如果說流動(dòng)原則說的是,從開發(fā)到運(yùn)維的快速流動(dòng),那么反饋原則就是從運(yùn)維到開發(fā)快速的反饋。這兩個(gè)原則周而復(fù)始運(yùn)轉(zhuǎn),才能為客戶交付最好最快的軟件服務(wù)。

①及時(shí)發(fā)現(xiàn)問題

一個(gè)服務(wù)/產(chǎn)品的交付歷經(jīng)了很多個(gè)過程,從需求分析,原型設(shè)計(jì),架構(gòu)設(shè)計(jì),編碼,測(cè)試,發(fā)布,集成測(cè)試,驗(yàn)收測(cè)試,一直到上線。

每個(gè)階段都有工作者參與其中。任何一個(gè)問題的產(chǎn)生都是有原因的,即使不能阻止問題的產(chǎn)生,但可以第一時(shí)間發(fā)現(xiàn)問題,讓問題暴露出來。

例如:產(chǎn)品經(jīng)理沒有分析透徹,到了開發(fā)的時(shí)候就會(huì)遇到需求不清的問題,這時(shí)程序員就可以提出問題,產(chǎn)品經(jīng)理就需要對(duì)需求進(jìn)行澄清。

 

發(fā)現(xiàn)問題,反饋問題,解決問題流程圖

②解決分析問題

有這樣一種情況,在開發(fā)的時(shí)候發(fā)現(xiàn)的問題,在需求和設(shè)計(jì)上都沒有提到。如果放任錯(cuò)誤不管顯然會(huì)影響系統(tǒng)運(yùn)行。

如果采取事不關(guān)己高高掛起的態(tài)度,那么問題永遠(yuǎn)無法發(fā)現(xiàn),那么出現(xiàn)問題我們應(yīng)該如何處理。

第一,上游環(huán)節(jié)出現(xiàn)問題,一定不要把問題帶到下游環(huán)節(jié)。在上游環(huán)節(jié)就把問題解決掉。

 

上游環(huán)節(jié)出現(xiàn)問題

第二,暫停上游環(huán)節(jié)的工作,避免新的問題繼續(xù)產(chǎn)生。

 

發(fā)現(xiàn)問題及時(shí)處理

第三,建立 PDCA 環(huán),計(jì)劃(Plan),實(shí)施(Do),檢查(Check),改進(jìn)(Action)避免此類問題不再發(fā)生。

 

建立 PDCA 機(jī)制

③源頭保證質(zhì)量

什么是源頭,相對(duì)下游來說上游就是源頭。產(chǎn)品經(jīng)理是開發(fā)的源頭,需求質(zhì)量不過關(guān)代碼就受影響。

程序員是測(cè)試人員的源頭,程序質(zhì)量有問題測(cè)試就會(huì)受影響;測(cè)試人員是客戶的源頭,如果問題都被放過了,那么就不能給客戶帶來價(jià)值。

所以,保證源頭就是保證交付的質(zhì)量。對(duì)每個(gè)過程和階段做監(jiān)控是我們要關(guān)注的:

  • 需求階段:需求評(píng)審,需求確認(rèn),需求宣講。
  • 開發(fā)階段:代碼審核,結(jié)對(duì)編程,單元測(cè)試。
  • 測(cè)試階段:冒煙測(cè)試,回歸測(cè)試,驗(yàn)收測(cè)試。
  • 發(fā)布階段:自動(dòng)配置,自動(dòng)部署,自動(dòng)檢測(cè)。

 

追根溯源圖

④客戶同理心

客戶分為兩種,內(nèi)部客戶和外部客戶。外部客戶是通常意義的客戶,我們?yōu)榭蛻籼峁┸浖桓叮瑵M足客戶的需求,為客戶創(chuàng)造價(jià)值。

內(nèi)部客戶就是我們的下游。產(chǎn)品經(jīng)理把開發(fā)人員作為客戶,開發(fā)人員把測(cè)試人員作為客戶。

我們?cè)谧鋈魏蝿?dòng)作,發(fā)現(xiàn)任何問題,做任何決定的時(shí)候都要想想我們的“客戶”,是否對(duì)他們有利。我們要把自己放在客戶的角度來看問題,好多問題在當(dāng)下就會(huì)被解決。

 

客戶在哪里,站在客戶的角度

學(xué)習(xí)原則

學(xué)習(xí)原則是對(duì)前面兩個(gè)原則的支持,是基礎(chǔ)原則。不管你在工作中踩了多少坑,不管你在編碼過程中遭受多少失敗都不要忘記學(xué)習(xí),持續(xù)的學(xué)習(xí)讓一個(gè)人變得更加強(qiáng)大,讓一個(gè)團(tuán)隊(duì)逐漸成熟。

①建立學(xué)習(xí)型的組織結(jié)構(gòu)

在服務(wù)交付的過程中,無論我們?nèi)绾蔚男⌒亩紵o法避免犯錯(cuò)。大家都有背鍋的經(jīng)歷。

比如某某需求,本來產(chǎn)品經(jīng)理就沒有說清楚,程序員在實(shí)現(xiàn)的時(shí)候忽略了,到了交付的時(shí)候就是程序員的鍋,之后項(xiàng)目經(jīng)理就會(huì)信誓旦旦地把開發(fā)人員批評(píng)一通。

這種場(chǎng)景在我早期工作的時(shí)候經(jīng)常遇到。后來隨著帶的項(xiàng)目越來越多,發(fā)現(xiàn)這樣“責(zé)備”式的解決問題方式是不對(duì)的。

我們應(yīng)該多從問題本身出發(fā),找出問題的原因。總結(jié)歸納,定義好的流程和機(jī)制讓兄弟們不再犯類似的錯(cuò)誤。

如果我們把組織分為三類的話,我希望我們應(yīng)該是生機(jī)型(學(xué)習(xí)型)的組織。

 

組織類型分類

病態(tài)型:組織中的成員感到大量的恐懼和威脅(生怕做錯(cuò)事情)。大家為了保全自己都不愿承擔(dān)責(zé)任,甚至隱瞞真相和事實(shí)。

官僚型:規(guī)則多,流程僵化,大家自掃門前雪。

生機(jī)型(學(xué)習(xí)型):在錯(cuò)誤中不斷總結(jié),不斷學(xué)習(xí),不斷進(jìn)步。大家積極探索,勇于承擔(dān),樂于共享。

 

生機(jī)型組織是我們的目標(biāo)

②日常工作制度化

這里的制度化并不是為了官僚而給大家加入的繁文縟節(jié),正好相反這些制度的產(chǎn)生都是兄弟們?cè)诠ぷ髦锌偨Y(jié)出來的經(jīng)驗(yàn)教訓(xùn),轉(zhuǎn)換成制度的原因是希望不要有其他的兄弟再踩這些坑。

舉個(gè)例子,早先我們做發(fā)布的時(shí)候總是忘記發(fā)布數(shù)據(jù)庫的腳本,導(dǎo)致生產(chǎn)環(huán)境的程序 Run 不起來。后來,我們把更新數(shù)據(jù)庫腳本作為發(fā)布前必須做的事情寫入到發(fā)布制度中。

再后來,作為自動(dòng)化腳本寫到自動(dòng)化發(fā)布中。實(shí)際上在工作中有很多好的經(jīng)驗(yàn),如果我們留心都可以建立這樣持續(xù)改進(jìn)的機(jī)制,成為心照不宣的制度。實(shí)際上我們?cè)谄綍r(shí)編碼中有很多事情都可以好好總結(jié)。

比如:編碼規(guī)范,命名規(guī)范,標(biāo)準(zhǔn)的 MVP/MVC/MVVM 寫法,發(fā)布流程,測(cè)試用例,測(cè)試腳本。

 

制度服務(wù)于流程

③局部經(jīng)驗(yàn)全局化

在開發(fā)/運(yùn)維過程中我們經(jīng)常會(huì)遇到各種各樣的事件(坑),這些事件或是迎刃而解或者困擾我們?cè)S久。

但最終解決以后,我們希望把這些經(jīng)驗(yàn)放到知識(shí)庫中保存起來,這是我們共同經(jīng)歷的一筆財(cái)富。

實(shí)際上一個(gè)項(xiàng)目做完以后,問問自己你在這個(gè)項(xiàng)目里面學(xué)到了什么,就是這些經(jīng)驗(yàn)的積累。

當(dāng)你找下一份工作的時(shí)候,面試官問你遇到最困難的問題是什么的時(shí)候,你就可以自豪的分享這些經(jīng)歷了。

就算是再小的經(jīng)驗(yàn),在放到全局的時(shí)候?qū)ζ渌募夹g(shù)人員甚至是跨部門的技術(shù)人員都是有啟發(fā)和幫助的。

 

用知識(shí)庫管理經(jīng)驗(yàn)

④注入彈性模式

這里說的彈性有兩個(gè)方面的意思,一個(gè)是指人員的彈性,一個(gè)是指我們維護(hù)系統(tǒng)的彈性。

人員的彈性,在沖刺項(xiàng)目的時(shí)候要有長(zhǎng)征的韌性和搶渡大渡河的勇氣。在項(xiàng)目不忙的時(shí)候,也需要不斷總結(jié),學(xué)習(xí)新知識(shí),每個(gè)人的成長(zhǎng)才能帶動(dòng)整個(gè)團(tuán)隊(duì)的成長(zhǎng)。

項(xiàng)目的彈性,用壓力測(cè)試的方法,對(duì)維護(hù)的系統(tǒng)進(jìn)行正壓力測(cè)試和負(fù)壓力測(cè)試,探查我們系統(tǒng)的承受極點(diǎn),從而完善他。

 

團(tuán)隊(duì)彈性和系統(tǒng)彈性

DevOps 組織結(jié)構(gòu)

根據(jù)康威定律,軟件的架構(gòu)和軟件團(tuán)隊(duì)的結(jié)構(gòu)是一致的,這個(gè)是康威定律對(duì)團(tuán)隊(duì)和架構(gòu)的解讀。

我經(jīng)歷過團(tuán)隊(duì)從小到大的發(fā)展,在初期人較少時(shí),工作流程概念不強(qiáng),一個(gè)人做多個(gè)角色的事情,基本沒有溝通成本,軟件的架構(gòu)基本是單應(yīng)用。

后來隨著開發(fā),測(cè)試,運(yùn)維人員的增加,總體需要處理的工作量也大了。為了方便管理和項(xiàng)目推進(jìn)效率,會(huì)對(duì)人和事情進(jìn)行切割,規(guī)定流程以及團(tuán)隊(duì)之間的溝通方式。

架構(gòu)也從原來的單應(yīng)用轉(zhuǎn)變成了后來的微服務(wù),數(shù)據(jù)庫從原來的單庫轉(zhuǎn)化為分表分庫的模式。

 

組織結(jié)構(gòu)決定軟件架構(gòu)

開發(fā),測(cè)試,運(yùn)維相互融合

在開發(fā)過程中,開發(fā),測(cè)試,運(yùn)維所屬不同的專業(yè),在項(xiàng)目推進(jìn)過程中各司其職。在 DevOps 的組織結(jié)構(gòu)中,需要他們?nèi)呋ハ嗳诤稀?/p>

開發(fā)完成以后需要通過單元測(cè)試,結(jié)對(duì)編程的方式保證代碼的質(zhì)量。測(cè)試需要發(fā)現(xiàn)/驗(yàn)證 Bug,并且與運(yùn)維合作完成壓力測(cè)試/性能測(cè)試。

大家會(huì)發(fā)現(xiàn),現(xiàn)在很多大廠的一線運(yùn)維人員都是來自開發(fā)團(tuán)隊(duì),甚至有很多公司都鼓勵(lì),開發(fā),測(cè)試人員參與運(yùn)維工作。讓他們感受一下自己的工作對(duì)下游工作的影響。

 

開發(fā),運(yùn)維,測(cè)試相互融合

DevOps 團(tuán)隊(duì)搭建

 

團(tuán)隊(duì)成員互為依托

既然了解了 DevOps 的組織結(jié)構(gòu),那么團(tuán)隊(duì)需要哪些成員參與呢?

  • 產(chǎn)品負(fù)責(zé)人:業(yè)務(wù)方面的代表,可以把他想象成客戶。
  • 開發(fā)團(tuán)隊(duì):負(fù)責(zé)具體功能開發(fā)。
  • QA 團(tuán)隊(duì):負(fù)責(zé)質(zhì)量保障。
  • 運(yùn)維團(tuán)隊(duì):維護(hù)生產(chǎn)環(huán)境,配置,發(fā)布。
  • 信息安全團(tuán)隊(duì):負(fù)責(zé)系統(tǒng)和信息的安全。

當(dāng)然,大家可以根據(jù)自己公司的需要在這個(gè)基礎(chǔ)上增加一些管理和支持職責(zé)的團(tuán)隊(duì)。

對(duì)初創(chuàng)企業(yè)來說,如果沒有運(yùn)維和信息安全的團(tuán)隊(duì),建議找開發(fā)團(tuán)隊(duì)的兄弟兼任。

團(tuán)隊(duì)價(jià)值流

多個(gè)團(tuán)隊(duì)合作工作,存在溝通,統(tǒng)一認(rèn)知等方面的問題。價(jià)值流圖就是為了統(tǒng)一大家的思想,讓每個(gè)團(tuán)隊(duì)的成員都知道,在什么階段需要做什么事情。實(shí)際這些圖在之前的文章中也有介紹,無非是把團(tuán)隊(duì)和階段對(duì)應(yīng)上。

 

團(tuán)隊(duì)價(jià)值流圖

工作在線

如果說要讓團(tuán)隊(duì)站在同一個(gè)平面上面,使用高效的工具是必不可少的。例如:Confluence,石墨文檔,Jira,禪道,ProcessOn,Jenkins,Bamboo,Git,JMeter,LoadRunner。

它們可以幫助我們從設(shè)計(jì),開發(fā),測(cè)試,發(fā)布各個(gè)階段提升工作效率。讓團(tuán)隊(duì)保持高度統(tǒng)一,讓所有的工作都在線。

 

讓工具為團(tuán)隊(duì)服務(wù),讓工作在線

DevOps 流水線部署

團(tuán)隊(duì)存在的目的是,為了客戶創(chuàng)造價(jià)值。那么將軟件交付到用戶手中的過程,就好像工廠的流水線一樣,流水線的上游是原料,經(jīng)過加工以后,輸出的是商品。作為 DevOps 的流水線部署,需要使這個(gè)過程自動(dòng)化。

作為交付團(tuán)隊(duì)每次完成代碼編寫完成,都需要提交版本庫。提交以后,版本庫會(huì)對(duì)整體的代碼進(jìn)行編譯(構(gòu)建/Build),并且執(zhí)行單元測(cè)試的代碼。

如果失敗,會(huì)把錯(cuò)誤信息打回交付團(tuán)隊(duì),程序員在修正錯(cuò)誤以后再次提交代碼。只有通過后,才發(fā)布到測(cè)試環(huán)境,進(jìn)行自動(dòng)化腳本的測(cè)試。

同樣沒有通過自動(dòng)化測(cè)試,依舊會(huì)打回到開發(fā)團(tuán)隊(duì),再次進(jìn)行修改。這個(gè)過程周而復(fù)始,直到通過用戶驗(yàn)收測(cè)試,并且發(fā)布。

 

DevOps 流水線

提交階段:是從技術(shù)角度上判斷系統(tǒng)是可以工作的。這個(gè)階段會(huì)進(jìn)行編譯,運(yùn)行單元測(cè)試腳本,通常這些腳本都是程序員自己編寫的。

另外,會(huì)針對(duì)具體代碼,由經(jīng)驗(yàn)豐富的程序員做代碼走查,或者代碼互查。這里可以使用 Junit 單元測(cè)試工具。

自動(dòng)化驗(yàn)收測(cè)試階段:是從功能和非功能角度上斷言整個(gè)系統(tǒng)是可以工作的,即從系統(tǒng)行為上看,它滿足用戶的需要并且符合客戶的需求規(guī)范。

手工測(cè)試階段:用于判斷系統(tǒng)是可用的,滿足了它的系統(tǒng)要求,試圖發(fā)現(xiàn)那些自動(dòng)化測(cè)試未能捕獲的缺陷,這部分測(cè)試內(nèi)容較為復(fù)雜,步驟較多,甚至存在多系統(tǒng)切換的情況。

這一階段通常包括探索性測(cè)試、集成環(huán)境上的測(cè)試以及 UAT(User Acceptance Testing,用戶驗(yàn)收測(cè)試)。測(cè)試人員會(huì)根據(jù) UAT 的用例對(duì)系統(tǒng)進(jìn)行測(cè)試。

發(fā)布階段:旨在將軟件交付給用戶,是直接將其應(yīng)用部署到生產(chǎn)環(huán)境,部署之后就進(jìn)入運(yùn)維階段。

按照流水線部署的好處就是,控制每個(gè)階段的交付質(zhì)量,逐步建立交付者的信心,通過層層篩選將問題擋在外面。

同時(shí)對(duì)于開發(fā),測(cè)試,運(yùn)維人員也是考驗(yàn)。他們需要大量的協(xié)同工作,不斷地讓應(yīng)用在流水線上流動(dòng),并且及時(shí)反饋給不同位置上的隊(duì)員。

在熟悉了流水線上的幾個(gè)階段以后,再來看看每個(gè)階段產(chǎn)生了哪些數(shù)據(jù),以及這些數(shù)據(jù)是如何流動(dòng)的。

①流程的起點(diǎn)是,開發(fā)人員向代碼庫提交代碼。在 Checkin 代碼之前,開發(fā)人員需要把代碼庫中相關(guān)的代碼和組件下載到本地,保證修改后的代碼在本地是可以編譯通過的。

比較規(guī)范的公司,是需要申請(qǐng) Code Review,讓其他的同事走查代碼。雖然在 Checkin 到代碼庫之后,平臺(tái)會(huì)自動(dòng)運(yùn)行單元測(cè)試。但是建議各位,先做單元測(cè)試。

因?yàn)椋坏┻M(jìn)入驗(yàn)收階段,編譯會(huì)花費(fèi)大量的時(shí)間,如果出現(xiàn)問題,系統(tǒng)會(huì)生成錯(cuò)誤報(bào)告并且發(fā)給 Team Leader 或者項(xiàng)目組。

如果那個(gè)時(shí)候再改代碼,恐怕所有人都知道 Bug 是從你這里出來的了。因此,還是先在本地跑一下單元測(cè)試。

其范圍包括你修改代碼的模塊,也包括其他模塊。實(shí)際上,任何對(duì)代碼的修改都有可能影響其他模塊,即使你并沒有修改其他模塊。

持續(xù)集成管理系統(tǒng)對(duì)這次代碼提交作出響應(yīng),從指定的代碼庫拉取代碼,并且進(jìn)行編譯,運(yùn)行單元測(cè)試,執(zhí)行代碼分析,組裝打包。

如果單元測(cè)試都通過,并且代碼符合編碼標(biāo)準(zhǔn),就可以打包成可執(zhí)行文件,并放到一個(gè)成品庫(artifact repository)中。

當(dāng)下的持續(xù)集成服務(wù)器,都提供這些功能,并讓用戶和流水線的后續(xù)階段能以簡(jiǎn)便的方式進(jìn)行。

另外,還有像 Nexus 和 Artifactory 這樣的工具可幫助管理過程產(chǎn)物。目前比較成熟的產(chǎn)品。例如 Bamboo,Jenkins 都可以通過配置代碼庫,成品庫,通過腳本命令的方式完成上述操作。

②第二個(gè)階段通常由運(yùn)行時(shí)間較長(zhǎng)的自動(dòng)化驗(yàn)收測(cè)試。這些測(cè)試的主要內(nèi)容,是針對(duì)一些 API 和模塊的測(cè)試。

也有的項(xiàng)目組用來做頁面的測(cè)試,但是個(gè)人不建議做頁面的自動(dòng)化,特別是在頁面設(shè)計(jì)的初期,頁面元素經(jīng)常變動(dòng),自動(dòng)化的腳本變化也很大,效果不是很好。

在此之后,部署流水線可能會(huì)有分支出現(xiàn),這樣就可以將該構(gòu)建版本獨(dú)立部署到多個(gè)不同的環(huán)境中,比如部署到用戶驗(yàn)收測(cè)試環(huán)境、容量測(cè)試環(huán)境和生產(chǎn)環(huán)境。

也有串行的例子,比如 DEV(開發(fā))環(huán)境,INT(集成測(cè)試)環(huán)境,MO(準(zhǔn)生成)環(huán)境,Prod(生產(chǎn))環(huán)境。

通常情況下,我們希望測(cè)試人員或運(yùn)維人員可以做到自服務(wù),即自己手工選擇需要的某個(gè)版本。

例如:可以通過 Bamboo 或者 Jenkins 工具選擇成品庫中的應(yīng)用版本,然后發(fā)布到指定的環(huán)境。

所謂的自動(dòng)化部署腳本也就是一行能夠在服務(wù)器上運(yùn)行的命令,執(zhí)行命令完成部署工作。

測(cè)試人員應(yīng)當(dāng)能夠看到需要手工測(cè)試的所有構(gòu)建版本,以及它們的狀態(tài),之后單擊一個(gè)按鈕,運(yùn)行相應(yīng)的部署腳本將選定的構(gòu)建版本部署到選定的環(huán)境上。

 

提交和驗(yàn)收階段

總結(jié)

DevOps 模式需要遵循三個(gè)原則,快速流動(dòng),及時(shí)反饋,堅(jiān)持學(xué)習(xí)。因此,DevOps 的組織結(jié)構(gòu)需要開發(fā),測(cè)試,運(yùn)維緊密合作。

按照這個(gè)標(biāo)準(zhǔn)去打造團(tuán)隊(duì),讓團(tuán)隊(duì)產(chǎn)生價(jià)值流,通過工作在線的方式,給用戶提供價(jià)值。

DevOps 的價(jià)值體現(xiàn)在流水線的部署方式,這里需要合理配置提交,驗(yàn)收,手工測(cè)試和發(fā)布階段。讓應(yīng)用快速流轉(zhuǎn),讓團(tuán)隊(duì)收獲及時(shí)反饋,從而穩(wěn)步推進(jìn)軟件交付。

作者:崔皓

簡(jiǎn)介:十六年開發(fā)和架構(gòu)經(jīng)驗(yàn),曾擔(dān)任過惠普武漢交付中心技術(shù)專家,需求分析師,項(xiàng)目經(jīng)理,后在創(chuàng)業(yè)公司擔(dān)任技術(shù)/產(chǎn)品經(jīng)理。善于學(xué)習(xí),樂于分享。目前專注于技術(shù)架構(gòu)與研發(fā)管理。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】

 

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2023-09-11 08:51:23

LinkedList雙向鏈表線程

2021-06-17 13:40:47

區(qū)塊鏈比特幣公有鏈

2019-04-24 08:31:43

分布式限流kafka

2020-03-18 18:20:19

區(qū)塊鏈數(shù)字貨幣比特幣

2018-11-28 10:39:01

5G網(wǎng)絡(luò)運(yùn)營(yíng)商

2019-04-26 09:38:36

中臺(tái)平臺(tái)化轉(zhuǎn)型

2018-03-31 08:45:52

iPhone交通卡iOS 11.3

2021-07-01 09:00:00

安全數(shù)字化轉(zhuǎn)型滲透

2022-11-08 15:55:34

鴻蒙開發(fā)套件

2021-07-02 14:09:36

開發(fā)技能代碼

2017-01-11 08:37:07

Apache SparStreamingDataFrames

2017-08-15 15:35:21

大數(shù)據(jù)數(shù)據(jù)分析薪資秘密

2017-08-15 16:05:18

大數(shù)據(jù)數(shù)據(jù)分析薪資秘密

2017-12-13 14:24:08

Google 開發(fā)者瀏覽器

2015-10-12 15:50:40

2018-05-10 08:50:31

AndroidGoogle 移動(dòng)系統(tǒng)

2019-10-29 15:28:40

Refs組件前端

2018-08-23 11:58:53

區(qū)塊鏈數(shù)字貨幣比特幣

2022-09-15 14:22:19

協(xié)作規(guī)范前后端

2019-12-04 07:57:22

6G5G網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一区二区三区在线播放欧美| 国产精品国产三级国产aⅴ原创| 免费av一区二区| 日韩精品国产一区| 亚洲少妇视频| 国产精品不卡一区| 国产一级二级三级精品| 国产99免费视频| 欧美~级网站不卡| 亚洲精品日韩在线| 三级黄色片播放| 性欧美18~19sex高清播放| 中文字幕av资源一区| 俄罗斯精品一区二区| 无码人妻精品一区二区三区蜜桃91 | 久操视频在线播放| 国产成人av资源| 国产精品91一区| 欧美精品一区二区蜜桃| 精品九九在线| 亚洲精品福利在线| 911av视频| 日韩电影网站| 午夜精品福利一区二区三区av| 五月天久久综合网| 日韩精品系列| 成人综合婷婷国产精品久久 | 欧美成人性色生活仑片| 久久久久无码精品国产sm果冻| 99re8这里有精品热视频8在线| 欧美视频自拍偷拍| 国产激情在线观看视频| 136福利第一导航国产在线| 综合久久国产九一剧情麻豆| 清纯唯美一区二区三区| 欧美一区二区在线观看视频| 国产激情一区二区三区四区| 国产欧美日韩中文| 成人黄色三级视频| 丝袜亚洲另类丝袜在线| 青青久久av北条麻妃海外网| 久久久久久久伊人| 欧美精品黄色| 久久99久久99精品中文字幕| 熟女少妇a性色生活片毛片| 国产伦精品一区二区三区千人斩 | 影音先锋中文字幕一区| 久久国产精品久久国产精品| 51精品免费网站| 97精品中文字幕| 色yeye香蕉凹凸一区二区av| 国产精品久久久久久久av| 国产欧美一区二区精品久久久| 日韩电影大片中文字幕| 欲求不满的岳中文字幕| 乱中年女人伦av一区二区| 亚洲国产精品小视频| 国产日韩视频一区| 精品亚洲自拍| 日韩福利视频在线观看| 国产国语性生话播放| 欧美成a人免费观看久久| 日韩成人黄色av| 扒开jk护士狂揉免费| 国产一区日韩| 一区二区三区四区视频| 国产第一页精品| 91精品国产自产在线观看永久∴| 久久的精品视频| 久久久精品国产sm调教| 在线亚洲自拍| 国产91精品最新在线播放| 真实新婚偷拍xxxxx| 久久99国产精品久久| 91黄色精品| 欧美 日韩 国产 成人 在线 91| 99精品视频一区二区| 欧美xxxx黑人又粗又长密月 | 六月丁香久久丫| 亚洲午夜久久久久久久| 国产探花在线视频| 国产一区二区三区四区三区四 | 精品国产av无码一区二区三区| 俺来俺也去www色在线观看| 精品欧美一区二区三区| 国产一级做a爰片久久| 蜜桃在线一区| 精品香蕉在线观看视频一| 少妇愉情理伦三级| 国产精品vip| 国产suv精品一区二区三区88区| 在线播放成人av| 成人a区在线观看| 亚洲v国产v| 国产色婷婷在线| 欧美性色黄大片| 日本成人在线免费| 国内精品久久久久久久久电影网| 美女啪啪无遮挡免费久久网站| 日韩久久精品视频| 美国毛片一区二区三区| 国产精品传媒毛片三区| 国产一级在线| 亚洲国产视频直播| 欧美男女交配视频| 日日狠狠久久偷偷综合色| 日韩视频免费中文字幕| 日本三级视频在线| 乱一区二区av| 农村寡妇一区二区三区| 欧美人与性动交α欧美精品济南到| 青娱乐国产盛宴| 免费久久99精品国产| 国模精品一区二区三区| 国产黄网站在线观看| 欧美视频免费在线观看| 波多野结衣网页| 狠狠做六月爱婷婷综合aⅴ | 精品176极品一区| 亚洲电影免费观看高清| avtt天堂在线| 麻豆国产精品官网| 日韩精品伦理第一区| 高清毛片在线观看| 日韩午夜av一区| 自拍偷拍第9页| 日本午夜一本久久久综合| 黄色小网站91| 成人影音在线| 日韩午夜激情免费电影| 日本青青草视频| 久久99国产精品久久99| 亚洲天堂电影网| 美女18一级毛片一品久道久久综合| 亚洲成年人在线播放| 精品午夜福利在线观看| 国产精品一区2区| 欧美性受xxxx黑人猛交88| 成人午夜亚洲| 中文字幕少妇一区二区三区| 波多野结衣电车| 国产香蕉久久精品综合网| 久久免费视频3| 欧美挤奶吃奶水xxxxx| 久久频这里精品99香蕉| 高清国产mv在线观看| 一区二区高清免费观看影视大全 | 播放灌醉水嫩大学生国内精品| 91精品啪在线观看国产手机| 欧美精品日韩www.p站| 国产一区二区三区成人| 综合分类小说区另类春色亚洲小说欧美| 国产熟人av一二三区| 日本精品三区| 国产日韩欧美中文在线播放| 欧美黄色激情| 欧美一区二区三区在| 国产va在线播放| 成人免费视频播放| 亚洲熟妇国产熟妇肥婆| 久久综合色占| 国产精品久久久久免费a∨大胸| 国产高清视频免费最新在线| 欧美久久久久中文字幕| 久草综合在线视频| 成人精品鲁一区一区二区| 国产h视频在线播放| 国产探花一区在线观看| 91精品久久久久久久久久另类| 成人免费在线| 欧美精品一区二区三区四区| 免费黄色网址在线| 国产精品久久一卡二卡| 自拍偷拍激情视频| 亚洲视频www| 亚洲国产午夜伦理片大全在线观看网站 | 午夜影视日本亚洲欧洲精品| 99久久久久久久久久| 蜜臀va亚洲va欧美va天堂| 久久99国产精品一区| 久久porn| 国产精品手机播放| 免费网站在线观看人| 亚洲日本中文字幕| 99国产精品99| 精品人伦一区二区三区蜜桃免费 | 亚洲国产成人高清精品| 国产精品成人一区二区三区电影毛片 | 亚洲狠狠爱一区二区三区| 亚洲一级中文字幕| 国产精品456露脸| 国产精品wwwww| 欧美区一区二| 日韩av电影免费在线| 久久久久久久久久久久电影| 欧美一区二区影院| 影院在线观看全集免费观看| 亚洲欧美在线看| 精品人妻一区二区三区四区不卡 | 亚洲国产另类av| 亚洲av毛片基地| 成人天堂资源www在线| 国产精品v日韩精品v在线观看| 在线精品在线| 自拍另类欧美| 精品国产乱码| 国产嫩草一区二区三区在线观看| 久久久加勒比| 91精品国产91久久久久久吃药| 国产激情小视频在线| 尤物tv国产一区| 色综合久久网女同蕾丝边| 91精品国产品国语在线不卡| 国模私拍一区二区| 欧美日韩亚洲一区二区| 麻豆成人在线视频| 中文字幕色av一区二区三区| 国产特黄级aaaaa片免| 国产成人超碰人人澡人人澡| theporn国产精品| 日韩精品免费专区| 蜜臀久久99精品久久久酒店新书 | 性xxxx18| 精品第一国产综合精品aⅴ| 国产欧美一级片| 欧美日本国产一区| 无码久久精品国产亚洲av影片| 午夜成人在线视频| 久久一二三四区| 尤物视频一区二区| 欧美另类videoxo高潮| 国产精品三级视频| 国产真人做爰视频免费| 91日韩一区二区三区| 久久久高清视频| 国产成人午夜精品影院观看视频 | 久久伊人精品天天| 秋霞a级毛片在线看| 亚洲视频在线观看| 黄色av免费在线看| 亚洲天堂视频在线观看| 伦理片一区二区三区| 亚洲男人天堂2023| 欧美日韩在线精品一区二区三区激情综| 亚洲成av人片在线观看香蕉| 欧美一区二区三区激情| 亚洲福利小视频| 四季av日韩精品一区| 亚洲白拍色综合图区| 欧美一级特黄aaaaaa大片在线观看| 欧美不卡一区二区三区| 精品人妻久久久久一区二区三区 | 亚洲成色精品| 热99这里只有精品| 亚洲永久免费| 黄色一级二级三级| 精品一二线国产| 91香蕉国产线在线观看| 国产高清精品久久久久| 在线看黄色的网站| 26uuu精品一区二区在线观看| 美国黄色a级片| 国产日本欧洲亚洲| 女人18毛片毛片毛片毛片区二 | 99re视频这里只有精品| 中文字幕av网址| 欧美国产精品专区| 成人免费毛片xxx| 亚洲成人动漫精品| 99久久久无码国产精品免费蜜柚| 欧美撒尿777hd撒尿| 国产成人毛毛毛片| 亚洲精品国产品国语在线| 久久久久久久久亚洲精品| 中文字幕亚洲欧美日韩高清| 麻豆影院在线| 国内精品伊人久久| 欧美成a人片在线观看久| 91精品久久久久久久久久入口| 日韩一区二区三区精品视频第3页| 国产精品国产三级国产专区53| 亚洲三级网页| 国产卡一卡二在线| 亚洲一区二区成人| 午夜免费看视频| 99久久精品国产毛片| 亚洲最大成人综合网| 亚洲激情在线播放| 国产一区二区视频免费| 日韩免费一区二区| 九色蝌蚪在线| 欧美大成色www永久网站婷| 成人免费直播| 91在线精品观看| 奇米狠狠一区二区三区| 黄黄视频在线观看| 日韩电影在线观看一区| 能看毛片的网站| 国产日产精品1区| 懂色av.com| 欧美精品久久一区二区三区| 手机看片国产1024| 久久视频免费在线播放| 成人美女视频| 国产欧美日本在线| 天天综合一区| 久久国产色av免费观看| 国产 欧美在线| 亚洲AV成人无码网站天堂久久| 午夜激情久久久| 精品人妻一区二区三区浪潮在线| 伊人伊人伊人久久| 91av久久| 成人午夜电影在线播放| 欧美aaaaaaaaaaaa| 国产精品69页| 91丨九色丨蝌蚪丨老版| 欧美成人免费观看视频 | 日产日韩在线亚洲欧美| swag国产精品一区二区| 国产91av视频在线观看| 日韩国产精品久久久久久亚洲| 在线观看成人动漫| 亚洲精品自拍动漫在线| 91久久精品无码一区二区| 亚洲天堂影视av| 午夜激情在线播放| 国产日韩一区二区| 欧美激情第10页| 国产乱码一区二区三区四区| 中文字幕巨乱亚洲| 国产情侣小视频| 亚洲免费高清视频| 末成年女av片一区二区下载| 国产伦精品一区二区三区视频免费| 欧美黄色aaaa| 黑人巨大猛交丰满少妇| 亚洲视频在线一区| 国产免费久久久| 久久国产精品久久久久| 国产精品国产亚洲精品| 国产系列第一页| 狠狠色丁香婷婷综合久久片| 亚洲精品自拍视频在线观看| 欧美日韩视频在线第一区| 岛国大片在线观看| 国产激情999| 日韩欧美高清在线播放| 天天综合网久久| 中文字幕在线一区二区三区| 一区二区三区黄色片| 久久精品国产亚洲一区二区| 99久久久国产| 国产女教师bbwbbwbbw| 成人永久免费视频| 在线看成人av| 日韩精品免费视频| 裤袜国产欧美精品一区| 日韩高清dvd| 美腿丝袜亚洲综合| 国内偷拍精品视频| 精品国内片67194| 色吧亚洲日本| 色综合电影网| 激情综合色播激情啊| 欧美日韩激情在线观看| 亚洲精品久久久久国产| 天堂av在线| 亚洲欧洲日韩精品| 国产一区二区三区免费| 久久精品国产亚洲av无码娇色| 日韩成人中文字幕在线观看| 亚洲a∨精品一区二区三区导航| 一区二区三区四区国产| 成人午夜在线播放| 中文字幕一区二区人妻电影| 在线观看国产成人av片| 日韩三级不卡| 精品一区二区中文字幕| 国产精品色哟哟| 国产 欧美 自拍| 国产成人一区二| 欧美日本中文| av男人的天堂av| 日韩亚洲欧美综合| xxxxx性欧美特大| 激情视频小说图片| 26uuu成人网一区二区三区| 一本色道久久综合精品婷婷| 久久久免费av| 四虎成人精品永久免费av九九| 亚洲一区二区在线免费| 欧美日韩亚洲国产综合| a级片免费在线观看| 一区二区精品在线| 99久久99久久精品免费看蜜桃| 亚洲一卡二卡在线观看| 97av在线视频免费播放| 小说区亚洲自拍另类图片专区 | ...xxx性欧美|