自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我們離DevOps有多遠(yuǎn):持續(xù)集成思想的延伸

運(yùn)維 系統(tǒng)運(yùn)維
DevOps并不僅僅關(guān)注軟件部署,它是部門(mén)間溝通協(xié)作的一組流程和方法。怎樣才能達(dá)到這樣一種狀態(tài)呢?我們離DevOps有多遠(yuǎn)?看看持續(xù)集成(Continuous Integration)體現(xiàn)出來(lái)的一些思想。

Wikipedia對(duì)DevOps的定義是:

DevOps是軟件開(kāi)發(fā)、運(yùn)維和質(zhì)量保證三個(gè)部門(mén)之間的溝通、協(xié)作和集成所采用的流程、方法和體系的一個(gè)集合。 它是人們?yōu)榱思皶r(shí)生產(chǎn)軟件產(chǎn)品或服務(wù),以滿(mǎn)足某個(gè)業(yè)務(wù)目標(biāo),對(duì)開(kāi)發(fā)與運(yùn)維之間相互依存關(guān)系的一種新的理解。 ...... DevOps并不僅僅關(guān)注軟件部署,它是部門(mén)間溝通協(xié)作的一組流程和方法。

持續(xù)集成思想

怎樣才能達(dá)到這樣一種狀態(tài)呢,我們先放一下,看看持續(xù)集成(Continuous Integration)體現(xiàn)出來(lái)的一些思想。

縱覽全局(打破職責(zé)界限)

rd,qa,op,如果僅僅按照這樣的角色標(biāo)簽去處理事情,那就和圣經(jīng)里的巴別塔一樣,大家不說(shuō)同一種語(yǔ)言怎么能勁往一處使呢。

我們把目標(biāo)放得更遠(yuǎn)一些,不再為了趕代碼而將質(zhì)量保障交給qa和op,不是為了增加測(cè)出bug的數(shù)量而和rd爭(zhēng)論,不是為了減少變更而是積極的適應(yīng)變更,我們共同的目標(biāo)是實(shí)現(xiàn)商業(yè)目的,確保軟件質(zhì)量(也包括變更質(zhì)量和運(yùn)行質(zhì)量)也是其中的一部分。頻繁的變更不是質(zhì)量的殺手,而應(yīng)該在軟件開(kāi)發(fā)整個(gè)流程多個(gè)環(huán)節(jié)進(jìn)行質(zhì)量的保障,并頻繁的運(yùn)行這些保障。

這種方法就打破了目前的rd->qa->op流水線的流程,而是將三者緊密的結(jié)合在一起。從實(shí)踐的結(jié)果來(lái)看,rd每次提交代碼都會(huì)觸發(fā)一系列的自動(dòng)化步驟,包括編譯,單元測(cè)試,代碼覆蓋率,功能測(cè)試,部署測(cè)試,性能/容量測(cè)試(注:后兩者受限與時(shí)間要求,實(shí)際實(shí)施不會(huì)每次提交代碼都觸發(fā))。Rd,qa,op都在過(guò)程中做質(zhì)量保障。

是努力減少變化還是在變化發(fā)生時(shí)做好準(zhǔn)備。一定是后者,因?yàn)楫?dāng)一件事情頻繁發(fā)生時(shí),問(wèn)題才會(huì)大量的暴露。解決暴露出來(lái)的問(wèn)題才能促進(jìn)業(yè)務(wù)更好的發(fā)展,也是對(duì)團(tuán)隊(duì)能力的提升。

拿一個(gè)的實(shí)際例子,部署測(cè)試(Deploy check)和性能/容量測(cè)試(capacity test),我們比QA有更多的資源和條件,那么我們就應(yīng)該主動(dòng)承擔(dān)起這份工作,然后將其加入到整條質(zhì)量保障線的必要環(huán)節(jié)上。

渾然一體(而非七零八落)

代碼樹(shù)被管理起來(lái)——主干開(kāi)發(fā)

 

主干開(kāi)發(fā)的好處是每個(gè)rd都知曉整體的變更,所有的feature作為一個(gè)整體發(fā)布,對(duì)OP的現(xiàn)實(shí)意義就是上線變得更有規(guī)律,非計(jì)劃的、臨時(shí)的上線***消失。

代碼和周邊(配置,數(shù)據(jù),構(gòu)建腳本,單元測(cè)試,測(cè)試用例)統(tǒng)一作為產(chǎn)品被管理起來(lái)——一鍵式產(chǎn)構(gòu)建,測(cè)試,部署,完成產(chǎn)品的最終發(fā)布。

SVN結(jié)構(gòu)樣例

  1. module 
  2. |--product 
  3. |----code 
  4. |----bin 
  5. |----scm_product.conf(描述程序地址) 
  6. |----module_control 
  7. |----conf 
  8. |----data 
  9. |----data_description(描述數(shù)據(jù)存放地址) 
  10. |----ci-script  
  11. |----test_case  
  12. |----build_script  
  13. |----test_script  
  14. |----deploy_script  
  15. |--development  
  16. |--test 

好處易見(jiàn),生成一個(gè)完整的產(chǎn)品的所有原料都被管理起來(lái),上線僅需要一個(gè)版本號(hào),不會(huì)出現(xiàn)上線時(shí)冗長(zhǎng)的步驟,做版本diff,部署環(huán)境diff,測(cè)試case diff都非常簡(jiǎn)單。而且,環(huán)境的備份也變得簡(jiǎn)單和純粹了。

研發(fā)(開(kāi)發(fā),測(cè)試,發(fā)布,部署)全過(guò)程被管理起來(lái)。所有角色在一個(gè)界面下工作,使用共同的平臺(tái),統(tǒng)一的源碼管理,共享。

 大家都在一個(gè)平臺(tái)上工作,所有的任務(wù)都在這個(gè)平臺(tái)下,各角色間對(duì)互相的工作有更深入的了解,并且,工作狀態(tài)也可以共享。

少就是多,簡(jiǎn)潔就是美(用簡(jiǎn)單的方法解決問(wèn)題)
持續(xù)集成的解決方案是簡(jiǎn)潔的。產(chǎn)品由SVN去管理,構(gòu)建過(guò)程由CI server負(fù)責(zé),而構(gòu)建過(guò)程包含了編譯,測(cè)試,發(fā)布,部署過(guò)程

沒(méi)有封閉的系統(tǒng),沒(méi)有蹩腳的流程,配合開(kāi)放的系統(tǒng)(Code Review/wiki)所有的信息被自然的整合在一起。而一切都是以提高變更速度,提高產(chǎn)品質(zhì)量為目標(biāo)。

當(dāng)解決方案讓你覺(jué)得不自然(或有很多內(nèi)容無(wú)法囊括,或需要人為干預(yù))的時(shí)候,那這個(gè)方案就不是一個(gè)***的方案,必定在某一些方面受到了限制,這些限制有可能是歷史造成的。要勇于質(zhì)疑,擴(kuò)展角度,提升高度。去掉角色的限制,站在產(chǎn)品的角度去思考,對(duì)于整體的優(yōu)化的解決方案就產(chǎn)生了。

以終為始(一直以發(fā)布級(jí)的質(zhì)量要求產(chǎn)品)

寫(xiě)代碼都是為了要發(fā)布的,也就是需要上線使用的,那在開(kāi)始編碼就以產(chǎn)品的質(zhì)量要求代碼,要求check in的代碼就是能夠完成編譯的,具備一定功能并且可以部署的產(chǎn)品。

將質(zhì)量?jī)?nèi)建于產(chǎn)品中。每次代碼的提交都會(huì)經(jīng)歷單元,功能,部署,性能/容量測(cè)試。在上線前我們就能夠知道是否能成功部署,線上的服務(wù)器是否能撐住。這樣的產(chǎn)品在上線時(shí)我們就不會(huì)有那么大的壓力了,OP也不需要擔(dān)心回滾的風(fēng)險(xiǎn)了,即使回滾,那么回滾也是one step。小菜一碟。

我們與DevOps的距離

那么我們離DevOps有多遠(yuǎn)呢。從各個(gè)公司放出來(lái)的技術(shù)資料(flickr最全面),最經(jīng)典的是flickr的10+ deploys per day,他們的***實(shí)踐有以下幾點(diǎn),而起穿針引線作用的是持續(xù)集成(技術(shù)上)和思考方式(文化上)。

Culture:

1.respect 
2.trust 
3.healthy attitude about failure 
4.avoiding blame 

從文化上,我們需要一種氛圍,不僅僅把自己看作rd,qa,op這樣的角色,哪里有質(zhì)量缺口,我們就要把它補(bǔ)起來(lái);哪里有不通暢的地方,我們就要把它疏通。RD了解op的部署方式,能夠獲取OP提供的監(jiān)控指標(biāo);OP也了解RD的開(kāi)發(fā)方法,開(kāi)發(fā)流程,所面對(duì)的問(wèn)題。放開(kāi)自己的眼界,從更高的視角看待和解決問(wèn)題。

Tools:

1.Automated infrastructure(自動(dòng)化,系統(tǒng)之間可集成)
2.shared version control(SVN共享源碼) 
3.one step build and deploy(持續(xù)構(gòu)建和部署) 
4.feature flags(公司內(nèi)部稱(chēng)為single branch,主干開(kāi)發(fā)) 
5.Shared metrics 
6.IRC and IM robots(信息整合)

技術(shù)上的這些要點(diǎn)被3(持續(xù)集成/部署)一線貫穿。

4點(diǎn)(主干開(kāi)發(fā))是持續(xù)集成的前提 

1點(diǎn)(自動(dòng)化),2點(diǎn)(代碼及周邊集中管理)是實(shí)施持續(xù)集成的必要條件

5點(diǎn)是1的一部分(圖表是由自動(dòng)化系統(tǒng)產(chǎn)生的)

可見(jiàn),技術(shù)上的核心是持續(xù)集成/部署

5所提到的有較高的技術(shù)要求。要求我們將業(yè)務(wù)/運(yùn)維上的指標(biāo)變得可測(cè)量,直至可預(yù)測(cè)。這里面的兩個(gè)核心技術(shù)內(nèi)容就是:

容量測(cè)量(Capacity management)

容量的變化體現(xiàn)在用戶(hù)行為(流量)系統(tǒng)變更(軟件性能)和資源(服務(wù)器數(shù)量,冗余度計(jì)劃)等幾個(gè)因素的變化上,將容量和這些變化掛鉤,在每一個(gè)因素變化下重新得到系統(tǒng)的容量,從而在變更中控制容量不足造成的風(fēng)險(xiǎn)。有一個(gè)要點(diǎn),我們需要的是系統(tǒng)的容量而不是單個(gè)模塊的性能。

質(zhì)量反饋(Quality feedback)

變更會(huì)導(dǎo)致質(zhì)量變化,而質(zhì)量變化體現(xiàn)在各種指標(biāo)上,而測(cè)量這些指標(biāo)(包括應(yīng)用指標(biāo):平響,處理效率等和系統(tǒng)指標(biāo):負(fù)載,網(wǎng)絡(luò)流量),發(fā)現(xiàn)指標(biāo)之間的規(guī)律,將指標(biāo)share給整個(gè)團(tuán)隊(duì),從而有效的達(dá)成質(zhì)量的反饋,控制變更(包括內(nèi)部變更和外部條件的變化)造成的質(zhì)量下降的風(fēng)險(xiǎn)。本質(zhì)上說(shuō),容量測(cè)量也是質(zhì)量反饋的一部分。

在實(shí)施持續(xù)集成的過(guò)程中,并行實(shí)施的三個(gè)項(xiàng)目:

  • 持續(xù)部署/一鍵式部署(continuous deployment/one step deploy),
  • 容量測(cè)試/管理(Capacity Test/Management) 
  • 質(zhì)量反饋(Quality feedback) 

分別對(duì)應(yīng)于上面三個(gè)要點(diǎn),共同支撐系統(tǒng)的高速迭代,減少系統(tǒng)頻繁變更引發(fā)的風(fēng)險(xiǎn)。

借助于持續(xù)集成,我們?cè)趯?shí)踐中向DevOps邁進(jìn)了一大步,離業(yè)界的***實(shí)踐已不遠(yuǎn)。dev和ops說(shuō)著同一種語(yǔ)言,共同為業(yè)務(wù)發(fā)展和質(zhì)量保障做出貢獻(xiàn)。

敏捷/精益開(kāi)發(fā)方法可以提高應(yīng)變業(yè)務(wù)變化的能力,并內(nèi)建質(zhì)量。DevOps把開(kāi)發(fā)和運(yùn)維的溝壑抹平。那么我們的development和ITIL就能夠結(jié)合到一起了。

我們?cè)?jīng)愿景將服務(wù)器放到機(jī)架上,一鍵就能完成服務(wù)上線,我們已經(jīng)有了一個(gè)好的開(kāi)始,這個(gè)目標(biāo)就會(huì)實(shí)現(xiàn)。

責(zé)任編輯:黃丹 來(lái)源: 百度運(yùn)維空間
相關(guān)推薦

2011-12-30 09:22:40

2011-07-21 08:53:42

HTML 5

2015-11-30 11:02:00

5G通信技術(shù)

2020-06-23 10:41:08

云計(jì)算DevOps持續(xù)集成

2015-07-22 17:23:08

融資互聯(lián)網(wǎng)泡沫大數(shù)據(jù)

2017-04-18 12:30:16

新能源汽車(chē)智能汽車(chē)車(chē)聯(lián)網(wǎng)

2017-04-28 08:57:58

持續(xù)集成DevOpsC#

2021-10-13 22:41:24

人工智能數(shù)據(jù)信息技術(shù)

2017-02-27 18:35:23

集成交付部署

2016-08-05 17:19:37

持續(xù)集成持續(xù)交付系統(tǒng)運(yùn)維

2023-03-02 10:31:01

6G

2023-03-19 11:47:57

Taro小程序持續(xù)集

2017-10-19 09:47:55

容器化微服務(wù)集成

2011-12-16 16:32:11

百兆寬帶

2018-08-30 10:14:20

代碼開(kāi)發(fā)機(jī)器

2021-03-25 20:23:09

人工智能AI肺結(jié)核

2020-10-15 08:58:38

人工智能機(jī)器學(xué)習(xí)技術(shù)

2016-07-01 15:47:02

華為

2021-03-31 09:00:00

管道集成工具

2019-04-18 10:35:30

持續(xù)集成工具Buddy
點(diǎn)贊
收藏

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