精品欧美一区二区三区在线观看 _久久久久国色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级片网站| 亚洲国产欧美一区二区三区同亚洲| 穿情趣内衣被c到高潮视频| 蜜臀av在线观看| 日韩成人免费在线| 欧美巨猛xxxx猛交黑人97人| av网页在线观看| 欧美日一区二区三区| 亚洲男人都懂的| 青青草国产精品| 亚洲国产成人在线观看| 丝袜国产日韩另类美女| 精品国产区一区二区三区在线观看| 久久香蕉国产线看观看av| 亚洲精品影院| 四虎永久在线精品免费网址| 美国十次了思思久久精品导航| 欧美—级a级欧美特级ar全黄| 日本理论中文字幕| 国产精品网站在线看| 欧美日本精品一区二区三区| 91猫先生在线| 丝袜在线视频| 国产精品麻豆一区二区| 久久精品综合一区| 精品久久久久成人码免费动漫| 日韩va亚洲va欧美va久久| 欧美精品www| 日本妇女毛茸茸| 日韩av大片| 亚洲人在线观看| www.超碰97| 亚洲日本一区二区三区在线| 91国在线观看| 美女av免费在线观看| 国模私拍视频在线播放| 亚洲精品中文在线| 天天成人综合网| 番号在线播放| 国产视频一区二区三区在线观看| 精品久久久久久中文字幕动漫| 国产熟女一区二区丰满| 久久99久久99小草精品免视看| 欧美专区福利在线| 国产精品人人人人| 国产农村妇女毛片精品久久莱园子| 色在人av网站天堂精品| 国产激情无码一区二区三区 | 91精品国产91久久久久青草| 最近中文字幕在线免费观看| 日本特黄久久久高潮| 国产福利精品av综合导导航| 午夜精品福利在线视频| 亚洲精品久久| 色综合久综合久久综合久鬼88| 农村妇女精品一区二区| 黄色在线播放网站| 大香伊人久久精品一区二区| 91精品国产综合久久福利软件| 一起操在线视频| 欧美v亚洲v综合v国产v仙踪林| 欧美日韩在线观看一区二区| 永久免费的av网站| 国产亚洲字幕| 精品国产乱码久久| 奇米777第四色| 欧美变态网站| 亚洲欧洲成视频免费观看| 久久av无码精品人妻系列试探| 国产99亚洲| 最近的2019中文字幕免费一页 | 欧美在线视频观看免费网站| 四虎成人在线观看| 日本不卡视频一二三区| 国产日韩欧美电影在线观看| 国产精品视频久久久久久| 国产黄人亚洲片| 久久精品日韩精品| 国产51人人成人人人人爽色哟哟| 国产精品剧情在线亚洲| 欧洲金发美女大战黑人| 丁香花在线观看完整版电影| 日韩人体视频一二区| 在线观看高清免费视频| 成人精品视频在线观看| 亚洲电影免费观看高清完整版在线| 人妻丰满熟妇av无码久久洗澡| 猛男gaygay欧美视频| 日韩在线资源网| 久草视频免费在线| 久久综合网络一区二区| 91精品视频在线免费观看| 亚洲精品无amm毛片| 久久久国际精品| 国产av第一区| 欧美电影免费观看| 日韩亚洲欧美一区| 国产精品无码一区二区三区| 91综合久久一区二区| 性色av一区二区三区| 中文字幕人成人乱码亚洲电影| 国产精品一品二品| 欧美在线3区| 欧美精品videossex少妇| 色狠狠av一区二区三区| 麻豆精品国产传媒| 欧美视频网址| 91wwwcom在线观看| 国产视频一区二区三区四区五区| 久久先锋资源网| 91精品国产毛片武则天| 日韩成人高清| 亚洲国产私拍精品国模在线观看| 亚洲av无一区二区三区| 亚洲综合欧美| 国产福利一区二区三区在线观看| 高清福利在线观看| 国产精品不卡一区二区三区| 黄色影院一级片| 日韩精品一区二区三区中文 | 4438x亚洲最大成人网| 亚洲第一页av| 欧美午夜在线| 91免费国产视频| 国产高清视频在线观看| 欧美日韩国产精品一区二区不卡中文 | 欧美色爱综合网| 波多野结衣av在线免费观看| 亚洲电影成人| 亚洲一区二区在线| 嫩草在线视频| 欧美日韩精品系列| 天天舔天天操天天干| 欧美亚洲一区| 麻豆传媒一区二区| 蜜桃在线视频| 国产偷国产偷亚洲清高网站| 国产成人愉拍精品久久| 成人爱爱电影网址| 久久精品无码中文字幕| 中文字幕一区二区三区日韩精品| 久久黄色av网站| 国产一区二区在线播放视频| 国产精品乱码一区二三区小蝌蚪| 亚洲精品视频导航| 成人一区二区| 国产日韩欧美在线播放| 婷婷成人激情| 91精品综合久久久久久| 国产精品视频一区二区三 | 亚洲免费观看| 久久久7777| 中文字幕av一区二区三区佐山爱| 亚洲欧美国产视频| 九九热最新视频| 国产精品美女久久久久久久网站| 午夜精品中文字幕| 在线中文字幕亚洲| 成人欧美视频在线| 激情aⅴ欧美一区二区欲海潮| 亚洲精品日韩在线| 中文精品久久久久人妻不卡| 国产精品国产三级国产三级人妇| 日本黄色的视频| 欧美片第1页综合| 精品在线观看一区二区| 欧美亚洲韩国| 久久久精品国产网站| 国内精品久久久久久久久久久| 亚洲国产中文字幕在线视频综合| aaaa黄色片| 日本不卡一区二区三区| 六月婷婷激情网| 欧美美女在线直播| 国产精品黄色影片导航在线观看| 免费av在线网址| 亚洲成人动漫在线播放| 久久人妻免费视频| 最新国产成人在线观看| 永久免费未满蜜桃| 丝袜亚洲另类丝袜在线| 中文字幕乱码免费| 久久黄色影视| 国产精品久久久久久av| 亚洲综合影视| 亚洲老头同性xxxxx| 国产又大又长又粗| 亚洲大型综合色站| 69xxx免费| av综合在线播放| 特级丰满少妇一级| 在线看片一区| 亚洲国产精品www| 国产美女撒尿一区二区| 国产精品旅馆在线| 国产91足控脚交在线观看| 国产午夜一区二区| 亚洲黄色精品视频| 欧美日韩久久久| 日韩欧美高清在线观看| 《视频一区视频二区| 一区二区三区少妇| 国产成人精品一区二区三区四区| 熟妇人妻无乱码中文字幕真矢织江| 欧美视频一区| 一区二区三区av在线| 亚洲区小说区图片区qvod按摩| 成人国产精品一区二区| 高潮一区二区| 久久久欧美一区二区| 欧美天天影院| 亚洲午夜精品视频| 污视频网站免费观看| 欧美久久久久免费| 无码人妻精品一区二区三区不卡| 一区二区三区免费| 青花影视在线观看免费高清| 久久久99免费| 丰满大乳奶做爰ⅹxx视频| 国产成人午夜视频| 三级一区二区三区| 免费不卡在线观看| 九色porny91| 久久亚洲一区| 午夜肉伦伦影院| 99国产精品视频免费观看一公开| japanese在线播放| 婷婷综合五月| 一区二区视频在线播放| 欧美日韩国产传媒| 日韩色妇久久av| 国产剧情一区| 欧美精品七区| 国产欧美日韩精品一区二区免费| 国产在线一区二| 久久久久97| 久久av一区二区| 免费看久久久| 久草热久草热线频97精品| 久久资源综合| 久久国产精品久久| 亚洲国产合集| 欧美亚州在线观看| 久久不见久久见中文字幕免费| 久久艳妇乳肉豪妇荡乳av| 少妇高潮一区二区三区| 久久99精品久久久久久久久久| 国产在线播放精品| 久久99精品久久久久久秒播放器 | 18国产免费视频| 欧美丝袜自拍制服另类| 一区二区视频播放| 欧美日韩亚洲综合| 国产精品欧美亚洲| 日韩久久免费av| 成人午夜精品福利免费| 亚洲成人av中文字幕| 日本私人网站在线观看| 国产偷国产偷亚洲清高网站| 国产黄在线观看免费观看不卡| 中文字幕成人在线| 黄色网在线看| 久久久中精品2020中文| 在线女人免费视频| 国产精品高清在线观看| 外国成人毛片| www.成人av| 天堂av一区二区三区在线播放 | 欧美一区二区| 久久这里只有精品23| 美女被久久久| 999这里有精品| 北条麻妃一区二区三区| 全黄一级裸体片| 国产精品久久网站| 久久精品久久精品久久| 日韩欧美精品中文字幕| 免费看av在线| 日韩精品一区在线| 蜜桃视频在线入口www| 精品国产拍在线观看| av女在线播放| 国产欧美日韩中文字幕在线| 超碰成人在线观看| 日韩精品一区二区三区丰满| 欧美永久精品| 欧美少妇性生活视频| 狠狠色狠狠色综合| 中文字幕一区二区三区人妻电影| 国产蜜臀97一区二区三区| 久久在线视频精品| 在线观看日产精品| 性做久久久久久久| 国产亚洲欧洲高清| 超碰在线网站| 成人在线中文字幕| 亚洲日产av中文字幕| 欧美性受xxxx黑人猛交88| 美女网站久久| 动漫av在线免费观看| 中文字幕成人网| 国产午夜在线播放| 欧美一区二区三区在线看| 毛片在线免费| 高清欧美性猛交xxxx黑人猛交| 亚洲精品555| 精品网站在线看| 欧美~级网站不卡| 五月天婷婷亚洲| 久久久久久免费毛片精品| 久久综合亚洲色hezyo国产| 欧美三级在线播放| 日韩在线免费看| 久久免费高清视频| 麻豆精品国产| 中文网丁香综合网| 免费成人在线观看视频| 国产a√精品区二区三区四区| 国产精品麻豆一区二区 | 日韩av网站在线观看| 欧美成人午夜免费视在线看片| 国内在线视频| 91性高湖久久久久久久久_久久99| 国产va免费精品观看精品视频| 黄色激情在线视频| 国产一区二区h| 亚洲国产精品一区二区久久hs| 色综合久久中文综合久久97| 天天干天天爽天天操| 欧美激情伊人电影 | 天堂在线一区二区| 中文字幕无码人妻少妇免费| 亚洲国产另类精品专区| 性生活黄色大片| 欧美二区在线播放| 婷婷综合国产| 国产免费裸体视频| 懂色中文一区二区在线播放| 欧美成人精品一区二区免费看片| 91精品在线麻豆| 中文字幕中文字幕在线中高清免费版| 91夜夜未满十八勿入爽爽影院| 91精品在线观看国产| 亚洲精品在线视频播放| 亚洲男帅同性gay1069| 国产黄色免费大片| 久久久久成人精品| 精品亚洲免a| 日本成年人网址| 欧美国产精品一区二区| 一本色道久久综合熟妇| 精品国产一区二区三区久久久| 精品视频在线观看网站| 黄色一级片国产| av亚洲精华国产精华精| 黄色在线免费观看| 在线看片第一页欧美| 亚洲日本中文| 久久av综合网| 91免费观看在线| 中文天堂在线资源| 久久亚洲综合国产精品99麻豆精品福利 | 色菇凉天天综合网| 91社区在线| 亚洲最大的免费| 亚洲日本视频| 免费看91的网站| 欧美一级片免费看| 成年男女免费视频网站不卡| 欧美日韩亚洲一区二区三区四区| 青青草97国产精品免费观看无弹窗版| 三级黄色免费观看| 欧美成人精品福利| 综合毛片免费视频| 伊人色综合久久天天五月婷| 高清国产一区二区| 在线观看黄网站| 中文字幕不卡av| y111111国产精品久久久| 熟女性饥渴一区二区三区| 国产精品久久毛片a| www.色视频| 日韩**中文字幕毛片| 欧美电影三区| 免费黄色三级网站| 精品视频一区三区九区| 国产盗摄一区二区| 亚洲一区不卡在线| av男人天堂一区| 在线观看一二三区| 97在线观看视频| 五月婷婷六月综合| 免费黄色在线视频| 日韩欧美中文一区| 欧美暴力调教| 热99这里只有精品| 综合久久给合久久狠狠狠97色|