建設一站式DevOps平臺,騰訊雲研發效能提升實踐

本文作者:張渝

導語 | 近年來,研發效能提升越來越受到業界重視,許多廠商都在不斷探索研發效能提升之路,從而實現研發效率和質量的持續優化,以應對日趨複雜的產品開發。那麼騰訊雲的研發效能相關工作是如何開展和落地的呢?今天我們特邀了騰訊雲研發效能工作組負責人、騰訊健康副總裁 張渝老師,他將帶大家深入瞭解騰訊雲研發效能提升之路,同時也給大家解讀未來騰訊雲研效的發展方向。

img

探析騰訊雲研效痛點和解決思路

近幾年,騰訊雲在整個研發過程中遇到的痛點,在我看來主要可以歸結爲三點:標準規範、工具平臺、文化宣傳。具體而言,首先,由於騰訊雲業務涉及的研發人員和業務產品數量龐大,而每個團隊都有自己的規範和研發模式,但從整體上看,無論是在代碼層還是工具層,我們都缺乏更高層次的統一標準和規範。

其次,此前騰訊雲的工具平臺並不完善,各種工具從需求到代碼到 CI、CD 到線上部署都有,但是工具與平臺之間互相割裂,沒有形成統一整體,需求對接、代碼管理、構建發佈和運營數據監控都在不同平臺上完成,從而導致效率降低。此外,騰訊雲發展多年,一些工具平臺年久失修,缺乏維護,且出現了重複建設的情況。對於新員工而言,面對衆多平臺和工具他們也有些不知所措。因此,我們必須儘快將這些平臺納入統一維護。

第三方面是文化宣傳。我們希望在騰訊雲內部,所有人都能認識到提高研發效能的重要性,並願意投入更多精力共同建設。因此,在推進研發效能提升方面,我們採取三種方式:第一,制定統一的標準規範,使大家逐漸採用我們推薦的主流標準;第二,把工具平臺做成一站式串聯,形成一個統一的整個騰訊雲共享的研效平臺;第三,加強宣傳引導,讓大家共同關注和參與。可以說,研效的建設是研發管理、工具建設和文化宣傳三者的共同作用結果。

針對上述存在的問題,我們主要的建設思路是採用金字塔模型,最終目標是在研效平臺上實現從需求到最終運維的一體式全過程,提高一線研發和運維的幸福感。金字塔的底層是各種工具的完善,我們將挑選已有的主流工具加強自動化能力。第二階段通過一站式門戶將工具串聯整合到平臺上,實現從需求到最終監控的全過程。第三階段將實踐 DevOps 理念,尤其是從應用視角貫穿整個流程。最上層是價值體現,通過數據度量跟蹤,來體現所有的研效提升工作是否符合預期,如果符合設想的軌道再往前推進。下圖是騰訊雲研效平臺的理念和思路。

img

接下來將具體分解研效平臺的各個層次和我們所做的工作。下圖中左側的導航欄集成了主要的研發過程和使用的工具,不僅僅是將入口統一在一起,更重要的是將各系統與騰訊雲進行深度結合和打通,這是研效工作的基本要求。

img

第二個層級是 DevOps 信息集成。我們立項時就制定了與騰訊雲原生的合作標準,與自研業務的雲原生化並行,一方面是容器化雲原生搬移,另一方面是研效工作的提升,幫助提高騰訊雲自研產品的效率和質量。在 DevOps 中,強調了從應用管理的角度來看整個生命週期,以提高操作效率。從微服務代碼框架到配置、後端雲函數調用、協議管理、集成發佈等,都通過平臺完成,構建併發布到雲上,支持公有和私有部署。

img

第三個層級是自動化。我們極力推崇自動化執行理念,並且在整個過程中,以底層爲基礎,儘可能實現狀態流轉之間的自動化操作。通過各種消息,觸發各角色制訂標準的工作流,從而實現持續的開發、測試和部署。

img

最後是價值度量。我們定義了幾個核心指標來觀測和跟蹤,長期度量我們的價值,指引研效工作的持續改進和提升。我們訂立了四個指標:部署頻率、變更前置時間、變更失敗率和服務恢復時間,這些指標直接反映了研發工作效率和質量。

img

騰訊醫療研效提升最佳落地實踐

騰訊雲在研效工作方面遇到的一些挑戰和痛點,在推動具體業務落地實踐上也存在。以騰訊醫療業務爲例,我們發現在研發過程中,業務快速增長和複雜的業務邏輯導致了研發效率下降和問題定位困難等問題。

爲了解決這些問題,我們採用了按域劃分問題和分域解決的思路。具體來說,我們將研發團隊分爲開發域、構建域、測試域、部署域和運營域,並根據整個研發流程的生命週期,按域劃分和解決問題。我們的解決方案包括統一代碼規範、標準開發模式、自動化工具、持續集成、自動化迴歸測試、減少人工介入、建立可觀測體系等。同時,我們也着重加強團隊文化建設和技術交流,提升團隊協作和合作效率,共同推動研效提升。

img

在具體業務落地實踐研效提升方面,我們需要根據具體業務場景制定相應的研效提升策略,並結合團隊實際情況和行業最佳實踐,進行持續優化和升級。此外,我們發現研效提升需要全員參與和共同推動,而不僅僅是技術人員的責任和工作。因此,我們還需要加強團隊培訓和技術普及,提高團隊整體水平,形成良好的研發文化和協作機制,以保證持續的研效提升和創新驅動。

在開發領域,缺乏統一的開發流程會導致測試階段容易受到相互影響,出現測試環境覆蓋等問題。此外,由於需求沒有與分支形成綁定關係,代碼追溯變更或問題排查會變得困難。團隊剛剛成立時,因配合默契度不高也會導致協作效率低。爲此,我們採取了三個措施:統一開發模式-分支開發、主幹提測;將 TAPD 需求與分支綁定,解決追溯問題;引入特性開關以支持並行開發,從而提高效率並解決以前相互干擾的問題。

在服務治理方面,我們確立了一系列標準,如統一模塊目錄結構、爲服務增加 DevOps 能力、以及統一組件等。我們還開發了標準組件,並將這些標準傳達給團隊,從而實現服務標準化。通過引入腳手架,我們實現了開發流程自動化並提高了效率,同時保證了質量和統一規範的目標。

img

在整個開發過程中,團隊也在持續倡導和實踐測試左移的概念,主要依靠單元測試和代碼評審 CODING。通過 CODING 插件自建自動化流水線,將單元測試視爲質量門禁。同時,我們在團隊內部建立文化氛圍,與員工激勵相結合,以提高參與度。

在測試領域,我們主要面臨環境管理方面的問題。爲此,我們採用了增量複製和路由管理等改進措施來優化資源消耗和降低對業務的侵入。另外,在部署方面,我們提高了自動化運營覆蓋率,通過流水日誌自動生成測試用例,並藉助公司工具平臺實現了流量回放。在運營方面,我們使用騰訊雲可觀測以後,能夠快速定位和解決問題,從而提高效率並降低複雜度。

綜上所述,我們通過統一開發模式、規範、自動化腳手架、完善 CI/CD、強化單元測試、完善持續發佈和構建流程等措施,在開發、構建、測試、部署和運營等領域不斷創新,進而提高效率、降低成本,並優化了團隊文化和運營管理體系。

騰訊雲研效工作未來規劃

目前,鑑於騰訊雲已經實現了各工具域之間的互聯互通,但在項目內部的互通以及項目之間的互通方面仍然存在一些缺失。因此,未來騰訊雲的研效工作,我們的重點是致力於持續強化項目內部的互聯互通,並在跨 BG 方面實現更多的效率提升。

此外,另一個維度則是擴展視角。目前,平臺主要以應用爲視角來組織連接各功能模塊,那麼我們的下一步計劃是在此基礎上擴展到項目視角,以瞭解各應用之間的關係。甚至我們可以從產品業務視角來看待多個項目之間的關聯關係,探索進一步提升的空間。

簡言之,只有抓住研發效能實踐、平臺、以及度量這三點,纔能有效提升研效工作。我們整個研效的核心思路是通過研效實現,平臺在此基礎上輸出核心研效指標,以推動業務方提高研效性能,最後使得正向增強迴路。

毋庸置疑,研效提升是一項持續性工作,我們也十分期待通過研效提升,賦能騰訊雲業務的進一步發展。

點擊此處鏈接,助力企業研發效能提升

img

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章