雲原生2.0時代下,DevOps實踐如何才能更加高效敏捷?


當前全球的數字化浪潮逐步加深,雲計算成為當今信息化發展的重要基礎設施,雲原生(Cloud Native)在數字化浪潮中的角色逐步提升,成為近幾年雲計算領域炙手可熱的話題。

首先我們來看看一張圖,看看雲原生產生的業務背景。

商業模式決定了整個的研發模式,研發模式又決定了需要采用什么樣的技術。從圖中看出,傳統應用、互聯網應用、VUCA時代的應用,所處的不同時代引發的不同需求,由此帶來對技術的不同要求。

以往傳統的應用需求是相對固定的,通常以項目化運作,用戶的訪問量可以預測,容量是有限的;而互聯網應用的特征是,需求持續發展,產品化而非項目制,用戶量並非線性往往會有陡增陡降,7x24小時是基本要求;逐漸到現在的VUCA時代,商業邊界、業務層面是完全不可預知的,即便是對於互聯網原住民都是巨大的挑戰,要求快速地嘗試、快速探測、快速的感知,應用是服務化的方式提供,業務敏捷性前提之下,對技術體系的持續發布、分布式海量並發、灰度發布和線上測試都是基本訴求。業務的敏捷性持續發布,應用平台的彈性訴求,商業環境的變化,這是整個雲原生產生的業務背景。

一個中心三個基本點,真正構建雲原生能力

雲原生時代,在享受架構解耦與雲端彈性帶來的便利同時,對軟件研發與交付模式提出了更高的要求。真正做到雲原生的成功,我的總結是一個中心三個基本點:

一個中心:

以業務的價值交付為中心,達到快速與高效的交付價值,並且在規模化擴展的同時,兼顧可靠性、靈活性等。

三個基本點:

1、架構層面

  • 采用服務化架構/微服務架構實現全面解耦:把系統划分多個功能內聚、粒度合適、業務邊界清晰、獨立自治的服務/微服務。以(微)服務為單位演進系統架構,演進式的以絞殺者模式,而不是革命式的一次性改造;單個(微)服務以大於一個的無狀態進程運行,實現自身的高可用和負載均衡;把業務數據分布到不同的(微)服務中實現數據的垂直切分;
  • 通過API,重用雲原生公共服務提供的基礎能力和架構能力:內部每個(微)服務須充分利用原原生的公共服務提供底層基礎能力,例如微服務管控與生命周期管理服務、數據庫服務、消息隊列服務、緩存服務等;內部每個(微)服務須充分利用應用與資源編排服務,實現部署、配置自動化;
  • 通過API,打造生態化經濟:API是非常重要的方式,除了定義服務之間的業務邊界,更重要的是可以通過API的方式做整個生態,數字化轉型中比如開放銀行,都是這樣的思路,搭一個平台,通過各種合作伙伴在不同的行業、不同的領域提供相關的服務,這些服務是相互進行連接,通過鏈接和網絡的思維來去做這個事情。華為雲也在打造自己的API生態。

2、工程層面

  • 系統與環境、流程、配置解耦:與架構層面解耦相匹配,系統和環境、流程、配置等等需要解耦,工程層面也需要去相應的匹配跟解耦。開發、測試、生產環境等價,屏蔽環境差異性;采納不可變的基礎設施(immutable infrastructure);
  • 構建端到端的DevOps研發體系:研發流程標准化、敏捷化;嚴格的區分構建、分布、運行的准入准出,並進行版本化和自動化;全自動化測試(單元測試、集成測試、自動生成Mock依賴服務);一切皆代碼,代碼、配置與環境嚴格分離,並進行版本化和自動化;(微)服務持續交付流水線(按需發布版本);
  • 研發運維一體化:運維和開發互相融合,高度協同,共擔職責;自動監控,持續可視化反饋,並最終傳導到開發團隊;按需實時部署、配置熱加載實時生效;
  • 使用自服務、敏捷的雲化基礎設施服務:基礎設施以自服務的方式對開發團隊提供。依賴底層雲化基礎設施的計算服務、存儲服務、網絡服務提供基礎運行資源;使用雲監控服務監控自身的運行狀態包括基礎資源使用狀態、自身業務運行狀態,同時根據自身運行狀態觸發相應的運維事件,實現彈性伸縮、故障自愈等關鍵架構特征;
  • 核心度量外部指標:業務層面的核心的一個業務指標叫TTM,在DevOps有另外一個詞叫Lead Time,就是你的前置時間,從業務需求提出來那一刻起,到這個業務需求上線的時間叫前置時間,這個是可以被客戶可知的,所以是端到端的業務指標。技術層面,對應的有多個前置時間,工程這一側的,則是從提交代碼那一刻起,一直到代碼上線,這段時間是完全工程可控的,理論上應該是控制在分鍾級。這個指標,也是華為雲最為看重的一個。

3、組織層面

  • 遵循康威定律:應用的架構和組織架構之間是高度的匹配,單體的應用,逐漸到服務化的方式,到逐漸分布式的模式。組織架構也是轉移到自組織,沒有一個唯一的中心在里面,自組織團隊的敏捷性與多樣性需要兼顧。整個團隊的規模,典型的就是5-10人規模。
  • 全功能團隊:從全功能團隊一直到雲化的運維團隊。以服務為單位組織整個團隊,涵蓋設計、開發、測試、發布、部署、運維全流程職能;開發人員、發布工程師、IT和運維之間可信合作
  • 雲化運維團隊:基於雲平台的提供的監控、報警等能力,成立專門的團隊負責系統運行時的質量,保障系統可用性和業務無中斷的升級、回滾
  • 自主經營,面向服務的全生命周期:逐漸轉型為自主經營的全功能團隊。除了技術棧是全功能以外,每一個服務化的團隊都需要面向服務進行全生命周期的考慮,除了技術層面的怎么樣去產品的設計、開發出來部署,架構層面保持優美,更多的還需要去考慮商業層面的東西,需要考慮服務定位,考慮產品上線以后,運營層面應該做什么事情,應該做什么樣的拉新的活動,怎么樣促活,怎么樣留存。整個團隊都需要有商業思維和產品運營的思維。這是整個思維上的轉變,去考慮這個服務為什么這么做、誰去用、用的場景是什么,怎樣完成商業的閉環。

關注七大領域,持續優化交付粒度,加快交付速度,提升交付質量

雲原生架構下DevOps的落地與轉型,是一個量變到質變的過程,需要從團隊模型、分支模型、測試模型、技術架構、部署模型、基礎設施、數據庫模型等七大領域進行相應的匹配,持續優化交付粒度,加快交付速度,提升交付質量。以發布頻度為抓手,從100天發布一次,逐步的十倍速增長,到10天發布一次。在這兩個階段點,從七個維度來看,需要匹配與采納的實踐是什么。

這是一張能力演進的地圖,我們可以清晰的看到自己業務當前所需要的發布節奏是怎樣,當十倍速的走到下一個節點,方向在哪里,有的放矢的進行相應的采納。

持續交付實施框架

華為內部有很多的優秀實踐,華為雲DevCloud就是生於雲長於雲的DevOps實踐。華為雲DevCloud從成立至今,軟件的規模、團隊的管理以及人員之間溝通的復雜性都急劇上升。通過雲化、微服務化、容器化和流水線自動化等工程實踐,以及敏捷、DevOps,全功能團隊等管理實踐,整體規模上升的同時,版本編譯、版本構建成功率、系統回歸測試、研發作業時間、資源復用率等指標不僅沒有降低,反而得到了大幅度的提升,是支撐雲原生架構的最佳組織和工程實踐。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM