DevOps簡史
在2008年多倫多舉辦的敏捷大會(Velocity Conf 2008 )上,Patrick DeBois 和AndrewClay Shafer 先生首次提議討論“敏捷基礎架構”這個話題华烟。在第二年的敏捷大會上有一個具有里程碑的意義技術分享余赢,來自Flickr公司《每天部署10次》的分享缚窿,它激發(fā)了隨后Patrick DeBios在同年十月晌纫,在比利時的根特市舉辦的首屆DevOpsDays活動傅物,這個活動是兩天的日程怖现,為了大家方便在twitter上的傳播,人們把DevOpsDays這個詞簡寫為 “#DevOps” 十嘿。 此后因惭,“DevOps”一詞問世了,這個詞所包含的理念和實踐一時在越來越廣大的人群中產生了共鳴绩衷,隨后成為全球IT界在各種大會和論壇里熱議和討論的焦點話題蹦魔,很多大型IT論壇也都開設出了DevOps專題討論。這就是DevOps這個詞的由來咳燕。
DevOpsDays活動隨后在Patrick DeBios等相關核心發(fā)起人的推動下勿决,在全球范圍內蓬勃發(fā)展了起來。2010年在美國山景城(Mountain View) 舉辦的DevOpsDays 活動中招盲,Damon Edwards先生使用“CAMS”這個縮寫低缩,高度概括和詮釋了DevOps,即文化(Culture)曹货、自動化(Automation)咆繁、度量(Measurement or Metrics)和分享(Sharing)。隨后Jez Humble先生將“L”精益 (Lean) 原則也加入其中顶籽,最終變成了CALMS玩般。
? Culture(文化)- 是指擁抱變革,促進協(xié)作和溝通
? Automation(自動化)- 是指將人為干預的環(huán)節(jié)從價值鏈中消除
? Lean(精益)- 是指通過使用精益原則促使高頻率循環(huán)周期
? Metrics(指標)- 是指衡量每一個環(huán)節(jié)礼饱,并通過數(shù)據(jù)來改進循環(huán)周期
? Sharing(分享)- 是指與他人開放分享成功與失敗的經驗坏为,并在錯誤中不斷學習改進
“CALMS”完全吻合Patrick DeBois先生所一向倡導的“DevOps is a human problem” (DevOps 是關于人的問題) 的理念 。
DevOpsDays活動的現(xiàn)狀
從DevOps概念的產生慨仿,到如今它在全球范圍內的蔓延和認同久脯,已經經歷了9個年頭的時間。它的火爆推廣也伴隨著IT行業(yè)的迅速變遷和發(fā)展镰吆,現(xiàn)在已經到了移動互聯(lián)網(wǎng)時代的后半場,國內的信息化建設已經完成了很多年跑慕;如今各行各業(yè)的企業(yè)也都亟待完成全方位的數(shù)字化轉型万皿。IT信息技術的先進程度標志著一個企業(yè)的核心能力,任何一個成功的企業(yè)核行,敏捷高效的軟件開發(fā)創(chuàng)新實力和IT管理綜合能力不只是門面而已牢硅,而是實實在在的市場競爭能力。DevOps倡導打敏捷芝雪、持續(xù)交付和ITIL三種實踐的組合拳减余,同時應用精益生產理念為基礎的管理思想,這正在逐漸地被廣泛的接受和認可惩系。
在過去的幾年中位岔,國內的各種IT大會也蓬勃發(fā)展如筛,其中DevOps相關的專題和分會場也頗受人們的關注。各種云計算抒抬、運維等IT技術的社交媒體也都非常重視DevOps這個話題的分享杨刨。一個專屬于DevOps社群的、國際性的擦剑、有影響力的DevOps大會正呼之欲出妖胀。在這樣的時代背景下DevOpsDays大會北京站在2017年的3月18日來到中國,在同年的8月18日上海惠勒,還要舉辦DevOpsDays Shanghai站的大會赚抡。
下面列舉一些DevOpsDays大會的相關數(shù)據(jù),數(shù)據(jù)來源于DevOpsDays.org 網(wǎng)站纠屋。從2009年到2016年涂臣,已經在全球的61個城市/國家成功地舉辦了117場。
下圖是在過去九年中DevOpsDays大會在各個城市/國家的分布和舉辦次數(shù)巾遭。
今年也就是2017年預計舉辦30場肉康,其中已經有18場確定了舉辦城市和日期;還有12個城市的召開日期待定灼舍;這不包括年內還可能會提出申辦的城市吼和。以上數(shù)據(jù)的統(tǒng)計時間在2017年三月。
DevOps在國內的現(xiàn)狀
隨著國內BAT等互聯(lián)網(wǎng)巨頭的崛起骑素,互聯(lián)網(wǎng)公司的開發(fā)運維經驗也越來越多的在國內的各種技術大會上傳播炫乓。從最近這兩年(2016年和2017年)的技術活動日程中可以看出,國內互聯(lián)網(wǎng)從業(yè)人員也不約而同的用DevOps來定位和分享自己的優(yōu)勢和經驗献丑。他們是傳播和分享運維側DevOps實踐的先頭部隊末捣。
出了技術論壇的分享之外,很多線上線下的大會创橄、論壇和討論組也都越來越熱議DevOps這一專題箩做。國內其它相關流派的人群,例如敏捷和精益等妥畏,也對DevOps的蓬勃發(fā)展表示比較驚訝邦邦,DevOps與老牌的敏捷和精益等陣營也產生過一些爭論。但這一切的發(fā)生也都增加了人們對于DevOps的更深入的興趣醉蚁。
在培訓認證這方面燃辖,Exin DevOps Master是一個國際認證的培訓;其它公司和組織也正在舉辦關于DevOps工具鏈的培訓网棍,這些培訓則注重于技術實操黔龟,關注在構建端到端的流水線的搭建方面。從DevOps的職位招聘方面,可以看到DevOps工程師相關的職位越來越多了氏身,在職位需求中DevOps這個技能成了加分項巍棱,DevOps相關工具的技能也或將成為簡歷的亮點。在IT行業(yè)內不管是開發(fā)還是運維團隊的人观谦,都開始了學習和接受的過程拉盾。
據(jù)我觀察DevOps方面的廠商在最近3年呈現(xiàn)爆炸式的發(fā)展。我把他們分為三類:
- 搭順風車型:主要是指所有CaaS容器云平臺廠商 豁状。Docker是它是在DevOps的時代背景下產生的捉偏,是DevOps技術工具集里不可缺少的一員。國內這些廠商目前的數(shù)量在20左右泻红,數(shù)目趨于穩(wěn)定夭禽。由于今年(2017)Docker公司商業(yè)化版本和開源版本正式的劃分開來,這些公司的發(fā)展可能或多或少受到一些影響谊路。
- 直奔主題型:這類廠商專注于開發(fā)端到端的讹躯、用戶體驗良好的DevOps流水線平臺,這些公司的創(chuàng)始人團隊多是來自于BAT公司缠劝,因此具有很好的DevOps實戰(zhàn)經驗潮梯,他們開發(fā)的產品在持續(xù)交付和流水線功能上恰好填補了當前企業(yè)在這個方面的工具和技術實踐的缺位。目前這類公司的數(shù)量還不多惨恭,數(shù)量呈上升趨勢秉馏。
- BATH型:BAT大家都知道,這里的H指的是華為脱羡,這些企業(yè)在DevOps平臺方面都表現(xiàn)出積極的技術輸出的態(tài)勢萝究。BAT是基于過去的互聯(lián)網(wǎng)運維的經驗做DevOps的產品化。華為是成了獨立的研發(fā)部門锉罐,招募業(yè)內這方面的精英前來助陣帆竹,打造出一方面可以自用,同時也可以商品化的DevOps產品脓规。
目前國內大部分企業(yè)慢慢地開始關注了DevOps栽连,大型傳統(tǒng)企業(yè)也開始逐漸地從各個角度做試點和嘗試。試點的角度和方向各不相同侨舆,有的從底層基礎架構的容器化開始升酣,有的從交付部署流水線的自動化開始;總的來說還處于初級的嘗試階段态罪,還沒有大規(guī)模成體系的推廣。
綜上所述下面,目前國內DevOps發(fā)展的階段還屬于起步階段复颈。就像是ITIL/ITSM在2003年左右的狀態(tài)。由于DevOps是去中心化的,所以沒有唯一耗啦、權威的上游廠商的存在凿菩,各種理論實踐的爭執(zhí)和PK都將終止與解決問題和提高效率的話題上,因此它具有百花齊放百家爭鳴的發(fā)展條件帜讲。個人認為DevOps的實施和落地也不會完全依賴于傳統(tǒng)的大型咨詢廠商的咨詢工作衅谷,由于它應該是在企業(yè)的內部,在內驅的作用下似将,自生長出來的获黔;它必須是服務于企業(yè)的業(yè)務價值流的優(yōu)化,加速業(yè)務價值產出的在验;而與之相關的工作和責任的擔當玷氏,外部力量是很難以等量替換和承擔的。
核心技術和工具
在談這個話題前先看一下DevOps相關工具集的全貌腋舌,如下圖所示:
最上面的箭頭流程圖表示了一個業(yè)務服務的全生命周期:開發(fā)協(xié)作盏触、軟件構建、質量測試块饺、交付部署和投產運維赞辩。前三個階段偏傳統(tǒng)開發(fā)組織的工作內容,后兩個階段基本可以和運維組織的工作對應上授艰。在每個階段下可以看成是一個大分類辨嗽,這些分類中還包含若干個小分類。這些工具可以粗放的劃分為商業(yè)軟件和開源軟件兩類想诅;也可以分為SaaS服務類和企業(yè)內部部署型召庞。大部分開源工具都有活躍的用戶社區(qū)和群眾基礎,這給企業(yè)入手這些工具帶來了很大的便利来破。在需要商業(yè)支持的場景里還可以選擇使用這些開源軟件的企業(yè)版篮灼。
Docker容器技術在最近三年中異軍突起,持續(xù)交付的技術門檻因此被降到最低徘禁,軟件生產供應鏈的格局和效率被徹底提升诅诱;基于Docker的微服務架構實踐的熱度和成熟度也與日俱增。因此送朱,國內的傳統(tǒng)企業(yè)紛紛試水DevOps和容器技術娘荡,在最近兩年的各種技術大會中,我們可以看到國內各個行業(yè)出現(xiàn)了在不同維度上的DevOps先行者驶沼。他們分享的主題大多集中在自動化運維炮沐、容器化和PaaS平臺的等項目經驗。
從國內眾多DevOps實踐中回怜,我們能看到下面三個技術尤其重要和火熱:
- 容器:容器從根本上解決了軟件對環(huán)境的依懶性大年,解決了各個環(huán)境之間的差異問題;它可以加速部署的速度,提高部署的效率翔试;降低部署的成本轻要。容器技術是在Linux的基礎之上發(fā)展起來的,因此它本身的實施成本很低垦缅,就是在任何物理機和虛擬機的Linux操作系統(tǒng)上安裝Docker服務(僅幾十兆)就可以完成所有功能冲泥。在任何環(huán)境中實施Docker需要考慮好以下幾個因素:主機的計算資源特性和容器允許的資源需求相匹配(計算密集型、內存密集型壁涎、IO密集型等)凡恍;容器網(wǎng)絡類型和服務路由的選型;容器鏡像倉庫的選擇等粹庞。
- 持續(xù)部署:這是所有企業(yè)普遍的短板咳焚,需要設計統(tǒng)一的自動化部署流水線作為軟件系統(tǒng)部署和更新的基礎設施。持續(xù)部署流水線底層是有Jenkins之類的工具來完成的庞溜,它能實現(xiàn)快速的革半、可重復使用的、適用于不同部署環(huán)境的發(fā)布流水線流码。所有服務都可以通過它實現(xiàn)各種風格的發(fā)布又官;這些發(fā)布風格中比較重要的兩種:藍綠部署和灰度發(fā)布。
- 微服務:為了解決傳統(tǒng)軟件所特有的巨石應用的缺陷漫试,用微服務的思路六敬,全面地重構巨石應用,全面的在新系統(tǒng)中應用這種架構驾荣。微服務架構是容器技術出現(xiàn)之后外构,有迅猛發(fā)展的一項軟件架構技術。它的松耦合和面向服務基礎架構的特性都是現(xiàn)代軟件和數(shù)據(jù)中心必備的特質播掷。
以上三種技術相輔相成审编,有著比較深刻的關聯(lián)。首先微服務和持續(xù)部署各自解決了特別多的傳統(tǒng)IT的問題歧匈,這些問題都是長期以來制約企業(yè)業(yè)務發(fā)展的難題垒酬。容器技術由于它的快速、輕量件炉、微服務化的天然特性勘究,很好的從不同側面支持了持續(xù)交付和微服務架構。容器可以為持續(xù)交付提供彈性和高速的系統(tǒng)資源斟冕,環(huán)境管理和利用率提高了很多口糕;容器的不可變性的特點也更好地支持了微服務架構。
我把DevOps的按照不同的技術特征做了從到1.0 到2.0的時代劃分磕蛇,并盡量通過以下維度比較與傳統(tǒng)方式的差異走净。
總結
我比較認可和接受的企業(yè)實踐DevOps參考框架如下券时,其中包含了所需的最佳實踐,如下圖所示伏伯。
(上圖來源于:Exin DevOps白皮書)
下面簡要描述一下這四大支柱型最佳實踐:
- 敏捷管理:在產品的計劃、需求捌袜、設計和開發(fā)階段主要采用敏捷開發(fā)方法論说搅。在這些階段中DevOps強調,設置合理的任務大小虏等,從而確保能夠開展快速迭代和開發(fā)弄唧;強調持續(xù)集成的實施,通過CI提高軟件的質量和可用性霍衫;強調用更短的發(fā)布周期候引,增強反饋的數(shù)量和頻度。
- 持續(xù)交付:在開發(fā)和部署運營階段采用持續(xù)交付的方法自動化軟件系統(tǒng)的發(fā)布敦跌、變更和升級等工作澄干。DevOps強調使用持續(xù)交付工具作為基礎架構盡可能的自動化手工部署工作。在研發(fā)階段就開始設計部署自動化的腳本柠傍,對其使用流水線工具來操作執(zhí)行麸俘,并輔助自動化測試工具。通過嚴密的自動化測試方案惧笛,確保實現(xiàn)可以重復使用的自動化部署流水線从媚。通過它的反復運作,提高部署的效率患整,降低部署的風險拜效,提高部署的質量。
- ITSM服務管理:DevOps強調從傳統(tǒng)的ITSM管理理念上升到關注業(yè)務持續(xù)性的輕量ITSM管理方法各谚。運維人員在項目的早期要和開發(fā)紧憾、測試和部署人員充分地溝通和落實運維需求。確保在業(yè)務系統(tǒng)開發(fā)的初期嘲碧,系統(tǒng)的業(yè)務持續(xù)性和可運維性等非功能性需求稻励,都得到充分的落實和滿足。
- 精益管理:業(yè)務開發(fā)運維的整個生命周期中愈涩,以上三類工作實踐的所有工作活動中望抽,都必須堅持貫徹精益的原則。DevOps特別強調的點包括:準時制業(yè)務流程履婉、精益且無浪費的工作方法煤篙、單件流的運作流程、持續(xù)改進等毁腿。它的這些管理思路需要嚴格的落實到所有工作環(huán)節(jié)中辑奈。
由此可見DevOps在企業(yè)苛茂,特別是大規(guī)模傳統(tǒng)企業(yè)的落地和推廣還是比較復雜的。雖然相關的最佳實踐都是已經存在了很多年的鸠窗;但是妓羊,通過DevOps的價值觀重構企業(yè)從研發(fā)到交付到運維的價值流談何容易∩约疲基于我的IT從業(yè)經驗躁绸,我似乎感覺到DevOps不能單獨依靠自頂向下的推廣,當然高層領導的支持依然是重要的和必備的支持條件之一臣嚣。 可能還需要中層的帶動和底層的創(chuàng)新净刮;借鑒生產制造業(yè)已經久經考驗的精益制造實踐也是勢在必行」柙颍總之DevOps運動會在近幾年給IT行業(yè)帶來較大影響淹父。