偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

Wikipedia對DevOps的定義是:

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

持續(xù)集成思想

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

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

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

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

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

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

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

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

代碼樹被管理起來——主干開發(fā)

 

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

代碼和周邊(配置,數(shù)據(jù),構(gòu)建腳本,單元測試,測試用例)統(tǒng)一作為產(chǎn)品被管理起來——一鍵式產(chǎn)構(gòu)建,測試,部署,完成產(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 

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

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

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

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

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

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

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

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

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

我們與DevOps的距離

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

Culture:

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

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

Tools:

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

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

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

1點(自動化),2點(代碼及周邊集中管理)是實施持續(xù)集成的必要條件

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

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

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

容量測量(Capacity management)

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

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

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

在實施持續(xù)集成的過程中,并行實施的三個項目:

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

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

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

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

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

責(zé)任編輯:黃丹 來源: 百度運(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ù)

2015-07-22 17:23:08

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

2020-06-23 10:41:08

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

2021-10-13 22:41:24

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

2017-04-18 12:30:16

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

2017-04-28 08:57:58

持續(xù)集成DevOpsC#

2023-03-02 10:31:01

6G

2017-02-27 18:35:23

集成交付部署

2016-08-05 17:19:37

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

2011-12-16 16:32:11

百兆寬帶

2017-10-19 09:47:55

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

2023-03-19 11:47:57

Taro小程序持續(xù)集

2020-10-15 08:58:38

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

2021-03-25 20:23:09

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

2018-08-30 10:14:20

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

2016-07-01 15:47:02

華為

2018-02-24 17:13:51

智慧生活

2019-07-09 16:25:42

區(qū)塊鏈數(shù)字貨幣比特幣
點贊
收藏

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