DevOps現在是最熱門的IT開發運營模式,根據DevOps研究組織Dora的調查報告,DevOps的實踐在各個行業已全面展開,但在具體落地中,各企業仍困難重重,或是偏離了DevOps的方向,歷經多年都不得其門而入,或是小規模的試行得到成功,但大規模的推行進展遲緩、效果不佳,諸如此類。框架
企業DevOps實踐,成功的方法不少,但失敗的方式更多,其根本緣由是DevOps實踐自身是一個系統化的工程,對於企業來講,是摸着石頭過河,已有的成功經驗複製難度高。企業或指望DevOps實踐短時間內帶來足夠可觀的效益回報,或指望DevOps的實踐轉型一蹴而就,忽略了企業的現狀基礎和DevOps實踐的客觀過程,缺乏符合企業現狀與特色的DevOps實踐內容與演進路線的設計。運維
那麼,企業究竟如何開展DevOps實踐,才能更快、更好、更有效地推動落地,充分享受到DevOps實踐帶來的業務價值提高?經過多個DevOps實踐規劃參與,對比不一樣企業的DevOps實踐落地提出影響落地的關鍵因素,並基於此提出DevOps實踐落地路徑建議。ide
DevOps落地實踐關乎業務,源於對IT組織研發、運維、運營服務能力提高的訴求。所以,IT組織的研運能力提高是DevOps實踐的內因,而業務發展變化則是DevOps實踐推動的重要外因。業務、IT組織與DevOps的關係以下圖所示。工具
DevOps對於研發效能的提高,可經過逐層的能力傳遞最終服務於業務競爭。佈局
01 業務因素學習
在DevOps實踐中,業務因素相對來講僅爲外因,但在現實過程當中,其每每成爲推進企業開展DevOps實踐的第一核心要素。由於企業在當前數字化轉型的熱潮中,業務的開展愈來愈多依賴業務系統,而業務系統的快速迭代與高質量交付又依賴於IT組織的研運能力。而DevOps實踐,是當前已證實最有效促進持續交付能力提高的方向與方式。測試
業務越具備以下的特徵,其企業對DevOps實踐的需求越強烈,也越緊迫,更應該及早的開展。優化
業務服務模式:業務服務模式以線上模式爲主,或線上模式所佔比重逐年上升。spa
用戶羣體:用戶羣裏以C端用戶爲主,或以互聯網方式的B端用戶爲主。設計
業務變化頻率:受市場或政策影響,業務變化頻繁,需及時調整應對。
業務連續性、可靠性:業務的連續性、可靠性要求高,任何業務中斷都會帶來較大的損失。
行業競爭性:行業競爭充分,持續的業務創新有利於提高企業競爭力。
02 IT因素
IT研發、運維服務能力現狀是推進DevOps實踐的內因。狹義的DevOps用於承載企業IT部門研發側支持,而廣義的DevOps則涵蓋企業IT的研發、運維乃至技術運營等業務,當前DevOps的實踐主要都集中在研發側。
企業在研發側的支撐能力、標準、質量,也並不是白紙一張,現有企業大多還是按需求、開發、測試、運維的劃分階段管理,長期以來研運支撐都是煙囪式建設,致使對於研發、運維的支撐一直難以造成協力,即便建設新的能力,也只是在樹立新的煙囪,業務流、數據流難打通,難持續演進。
DevOps相對於IT來講,一方面是治理,另外一方面是創新,IT的以下因素,對於DevOps的實踐落地推進具備較大的影響。
IT現有與業務要求的研發效能差距,差距越大,越急需。
IT管控訴求,精細化管控訴求越高,越必要。
IT團隊規模,規模越大,越有價值。
IT工具鏈缺乏或煙囪式建設越明顯,越必要。
對於DevOps實踐上,Dora曾經提出過五個階段的指導,以下圖所示:
其分別是:
Stage 1: 規範化技術棧
Stage 2: 推動標準化&下降不一致性因素
Stage 3: 擴展DevOps實踐
Stage 4: 自動化基礎框架交付
Stage 5: 提供自服務能力
該指導中特別強調構建標準的技術棧,認爲它是Stage 1的關鍵因素,同時是Stage 2中的實踐內容,也是Stage 3的關鍵因素,是一項須要持續實施的實踐要素。
標準化的技術棧有利於下降DevOps實踐的難度,但從企業的長期過程來看,實現的難度極大,不太現實;所以,咱們建議DevOps的實踐要基於異構體系,朝着一站式、企業級的方向,其更符合企業採用技術的演進現狀。
DevOps實踐的演進要從目標定位、建設方式、實踐過程等方面進行綜合設計與推動,各方面的建議分別以下。
01 目標定位
DevOps實踐是一個體系化、持續化的工程,不是一次性的項目建設,不可能一蹴而就。企業DevOps實踐的階段性目標規劃既重要又必須,雖然不一樣企業的最終目標相似,但因爲業務、IT的現狀不一樣, DevOps實踐的階段性目標必然會有所差別。
企業DevOps實踐的階段性目標規劃,須要依賴於企業的IT基礎實力,例如組織、制度、協做模式、人員能力、研發模式等,結合業務保障與IT基礎條件,合理的DevOps實踐階段目標。
通常來講,可將企業DevOps的整個實踐過程劃分爲自動化、數字化、一體化三個大的階段。
在自動化階段,構建DevOps的自動化過程工具鏈,着重實現DevOps意識提高、研發轉型,以及初步的研發效率與質量提高,助力業務發展。
在數據化階段,構建面向業務和研發全過程的度量體系,造成持續改進機制,實現研發側的DevOps的持續優化落地,提高業務競爭力。
在一體化階段,構建覆蓋研發側、運維側,乃至運營側的延展與閉環,實現應用系統的生命週期DevOps實踐覆蓋,推進業務持續創新,引領業務發展。
02 建設方式
DevOps的落地推動,部分企業採用的是來自研發團隊的自下而上的方式,個別團隊自主引入,效果出來後,再推廣到其它團隊;部分企業採用統一組織,自上而下推行的方式,企業統一規劃,統一建設,應用與團隊逐步遷移。
相對來講,自上而下的方式更有利於促進企業級的DevOps實踐落地。由於對於自下而上的方式,成功經驗帶有較爲濃厚的團隊的特色,工具鏈以開源組件攢建,工具的體系化程度不夠,團隊級適用是其主要特色,DevOps的實踐也常止步於「自動化」階段。
基於此,經驗複製、工具複用的方式難以落地,何況IT組織的核心職能是爲企業業務提供服務與保障,IT服務業務如歸入IT組織自保障,必然分散IT組織的服務資源,短時間內可能有必定的效果,長期看瓶頸明顯,投入產出比不佳。
相對應地,自上而下的方式,從規劃之初就會考慮到不一樣IT組織文化、團隊技術棧、業務的特色差別,不一樣職能組織、不一樣角色的訴求支撐,產出可服務於企業不一樣團隊的平臺級的DevOps實踐工具、方法與制度規範,避免實踐中方向偏離。
03 實踐過程
DevOps實踐涉及工具平臺、流程體系、規範制度、人員能力等方面建設。實踐可採用先提高認知後落地實踐、先試點驗證後全面推開的過程進行。
DevOps的理解與認知
DevOps從2009年提出以來,其內涵一直在不斷的豐富。所以,對於DevOps的理念與認知,在必定程度上決定了DevOps的執行程度。DevOps的定義演變過程以下:
DevOps的定義不斷髮展,內涵也在不斷的演進。所以,企業的DevOps實踐是一個長期過程,是一個會伴隨企業業務發展、IT能力提高的長期過程,涉及企業的業務組織、IT組織的協做提高與持續優化。
DevOps實踐平臺
DevOps平臺是企業DevOps實踐的落地承載,一站式、企業級、可持續演進應該成爲平臺的基本能力訴求。
DevOps的實踐不是一天完成,一樣,支撐DevOps實踐的工具平臺,也須要持續建設與豐富。厚雲薄端的研運中臺模式,應做爲平臺建設的惟一方向,其可有效沉澱通用工具能力,又能經過低成本的方式提高企業DevOps場景變化的支撐訴求。
DevOps實踐的有序推動
DevOps實踐的有序推動包括兩個方面,一個方面是指面的推廣,也就是將DevOps實踐推向企業內部的其餘項目、其餘團隊,逐步實現團隊敏捷、項目敏捷,乃至企業敏捷;另外一個方面是不斷加深DevOps的應用,也就是基於DevOps的研發效能持續優化與提高,創建學習型、使命型團隊,推動DevOps文化的落地。
DevOps自提出以來,其內涵一直在不斷的發展與豐富。相應地,DevOps的實踐,也會是一個螺旋上升的過程,須要企業持續推動,進而爲企業業務發展注入持續不斷的活力。
做者:黃全中