平臺工程是什么?在Gartner發布的2023年10大重要戰略技術趨勢報告中,“平臺工程Platform Engineering”位列其中。Gartner是這樣描述的:“平臺匯集的工具、能力和流程均由領域專家精心挑選,并經過封裝,以方便終端用戶使用。其最終的目標,是打造無摩擦的自助服務體驗,為用戶提供正確的能力,幫助其以最少的成本完成重要工作,提高終端用戶的生產力,并減少他們的認知負擔。平臺應能夠滿足用戶團隊的一切需求,并以任何可能的形式,完美匹配用戶的首選工作流。”
平臺工程的目標是消除開發人員在編寫代碼之前對其開發環境或所需系統的思考,因此平臺工程作為研發效能提升領域的熱點話題得到大家的關注與討論。在近日舉辦的WOT“金融科技創新”分論壇上,中國工商銀行軟件開發中心金融科技經理李逸帆以《中國工商銀行平臺工程的探索與實踐》為主題分享了他對于平臺工程的思考以及中國工商銀行在平臺工程方面的實踐經驗。
平臺工程與DevOps
提到平臺工程,就繞不開DevOps。早在2018年,中國工商銀行開始進行DevOps研發、運營一體化轉型,明確了“科技驅動、價值創造”的工作思路,通過DevOps的工具鏈打造業務研發和價值交付的兩個閉環。李逸帆介紹,中國工商銀行轉型至今,研發交付速度、投產版本的頻度都得到了明顯的提升。但通過對業務交付過程中的調研和團隊研發人員的反饋來看,DevOps轉型同樣也帶來了一些困境。
首先,隨著DevOps的推進,工具鏈的自動化水平不斷提高,之前由測試人員和運維人員負責的部分工作不斷轉移給開發人員。李逸帆認為這種現象的出現與DevOps的理念有關,“誰構建,誰運行”的原則導致開發人員的工作量不斷增加。其次,開發人員需要掌握的工具鏈體系越來越多,需要不斷學習容器、K8s,可觀測性等一系列的技術和工具。
“工作的左移和工具鏈的增多給開發人員帶來了額外的認知負擔。”李逸帆解釋,“當開發人員的認知負擔達到一定臨界狀態時,項目研發的復雜度不斷增加,研發效能反而不會繼續提升,而是造成研發效能陡降,這就是當前開發人員面臨的困境。”
而平臺工程或許是這一困境的可行解法。“平臺工程通過建設內部開發平臺,為開發團隊提供通用共享服務,實現開發人員服務能力自助,將完成日常任務遇到的阻力降到最低。”
“DevOps與平臺工程不是對立的概念。”李逸帆說,“平臺工程解決了DevOps實踐過程中研發人員面臨的認知負擔挑戰,我認為平臺工程能夠更好地驅動DevOps推進。”
中國工商銀行平臺工程實踐經驗
根據平臺工程的定義和思想,要如何開展平臺工程的建設呢?李逸帆及其團隊總結了建設平臺工程的五項原則:
- 明確使命和角色:不應該將平臺團隊視為另一個按需提供環境的服務臺,而應該將其視為一個專門為內部客戶服務的產品團隊。
- 將平臺作為產品來對待:以產品為中心,平臺團隊需要秉持產品思維,以內部客戶也就是應用開發者的反饋為基礎,專注于能夠真正為他們提供價值的東西。
- 聚焦常見問題:了解導致開發進度放緩的痛點和阻力,既可以是通過開發人員反饋收集的定性信息,也可以通過查看工程KPI收集的定量信息。
- 粘合劑很有價值:將工具鏈整合在一起,為工程師提供順暢的自助服務工作流。
- 不要重復發明輪子:平臺團隊應該防止組織內的其他團隊重復發明輪子,尋找新的創造性解決方案來解決相同的問題。
李逸帆介紹,中國工商銀行在平臺工程建設過程中有自己的文化——“讓開發更簡單”的思想。“開發更簡單”有兩層含義,一是讓開發流程更為簡單,二是讓開發人員使用的工具更為簡單。基于這一思想,中國工商銀行在開展平臺工程探索過程的思路主要有統一語言體系屏蔽底層實現、提升用戶體驗降低平臺阻力、聚焦核心目標建設平臺能力和建設平臺文化加速平臺推廣四個方面。
基于以上四個方面的具體實踐,中國工商銀行通過一站式工具鏈、組裝式研發、工程模板和自動化交付流水線實現語言體系的統一,讓開發人員盡可能屏蔽底層設施對技術的影響。一站式工具鏈通過對整個研發過程的抽取和提煉,將包括標準代碼、研發規范、經驗積累等各種資產整合在一起。組裝式研發是通過一些服務結構化的資產和可復用代碼管理平臺,基于研發協作平臺構建的一種穩態和敏態相結合的研發方式。工程模板包括提交構建,持續交付工程等項目過程中的模板,大量標準化工程模板降低了開發的門檻、進一步提升架構設計和落地統一性。自動化的交付流水線以發布單元以主線進行串接,通過這些標準化的構建和部署策略,簡化配置,降低運維的成本,同時部署的運維成本是可驗證、可復用的,從而達到提升生產部署風險防控水平和智能化程度。
在提升用戶體驗方面,中國工商銀行通過對日常研發人員觸點的整合,平臺工程研發過程中體驗工程師的參與,以及整個團隊的產品思維來降低平臺阻力,為研發人員提供最佳的使用路徑。
在聚焦核心目標建設平臺能力過程中,中國工商銀行通過目標、策略和方法這樣一個金字塔的模型層層迭代,不斷完善平臺能力的建設。
在建設平臺文化加速平臺推廣階段,通過數據分析、用戶問卷、培訓推廣、品牌建設促進研發團隊對研發人員之間的互動交流,達成整個研發團隊中對平臺工程的共識。
同時,李逸帆強調,一定的產品思維也是平臺工程的重點,中國工商銀行安排專人從事整個平臺工程產品的運營,分析相關工作對于開發人員的價值,并根據分析結果對目標進行復盤,迭代更新平臺工程的建設。
此外,ChatGPT的橫空問世也為研發效能的提升帶來了巨大的變革。李逸帆稱,中國工商銀行正在深入探索AIGC的應用,例如單元測試生成、代碼補全、代碼重構、代碼搜索、代碼推薦和錯誤檢查等,提高編碼質量和效率。
結語
“市面上任何一種工具,都不可能與平臺一樣能夠滿足企業的全部需求。企業必須花費充足的時間和精力,定制符合自身需求的平臺。” 這是Gartner對于企業進行平臺工程建設的建議。中國工商銀行的做法與之不謀而合。在實踐探索中,中國工商銀行不斷完善適合自身的平臺,通過平臺工程實現了技術團隊如何以更低成本、更高效率來滿足業務需求,并支持業務運營和發展的問題。李逸帆相信,通過平臺工程可以讓DevOps的推廣走得更遠,更快、更好地提升業務價值。
本文整理自中國工商銀行軟件開發中心金融科技經理李逸帆在WOT2023大會上的主題分享,更多精彩內容及現場PPT,請關注51CTO技術棧公眾號,發消息【WOT2023PPT】即可直接領取