【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT

DevOps訂閱號發表於2020-08-10


【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT

【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT

持續交付流水線是DevOps落地的重要工程實踐,但是業界普遍把持續交付流水線建設等同於CI/CD,很多人覺得部署好Jenkins,配置個自動化job,能編譯,能部署,能跑自動化測試就搞定了。
其實真正的持續交付流水線遠不僅僅是這些內容,它應該包括從需求/創新的提出,到功能架構設計,計劃跟蹤,開發編碼,編譯打包,測試驗證,投產上線,再到將實現的功能讓使用者使用起來的全過程。
為了區分業界普遍理解的CI/CD流水線概念,我們將真正意義上的持續交付流水線定義為【廣義流水線】,對應業界普遍理解CI/CD流水線並稱之為【狹義流水線】。【廣義流水線】的概念在中國農業銀行一直都是主要的DevOps實施方法論指導。
農行是典型的國有全國性大型銀行,研發規模大,涉及部門和人員多,系統複雜。因此農行研發中心很早就非常重視研發效能改進,從組織架構,人員角色,系統架構,管理方法論和研發工具鏈各個方面持續投入。英捷創軟科技(北京)有限公司(下簡稱LEANSOFT)自2015年開始與農行研發中心合作,與專案管理辦公室對接,為研發中心3000多研發人員提供基於微軟Team Foundation Server (現已更名為Azure DevOps Server)的專案過程管控體系規劃設計和定製化服務,持續參與農行研發中心的研發效能改進過程,助力農行敏捷、DevOps能力建設。這個過程可以大體分為三個階段。


第一階段

【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT



試水研發端到端全流程管理 - 農行網際網路金融戰略三大平臺工程

2015年,為了適應國內金融業的快速發展,中國農業銀行透過多年的總結、實踐,探索出來的網際網路三農金融服務有以下五個模式:

  • 第一就是電商加涉農;
  • 第二是商業銀行線上化服務;
  • 第三是以農業的龍頭企業為代表的農業產業鏈加線上金融的模式;
  • 第四是以農產品交易市場加供應鏈金融;
  • 最後是P2P、眾籌。

相應的,農業銀行形成了「三大平臺五大產品線」的長期戰略。

  • 三大平臺分別是社交生活平臺,電子商務平臺,金融服務平臺;
  • 五大產品體系就是網路支付,網路融資等。

【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
LEANSOFT團隊作為支撐農行網際網路金融三大平臺五大產品線建設工程的DevOps研發工具鏈技術支援團隊,與當時專案辦組建的重點工程支援團隊一起,完成了這一重點工程的研發管理和工程效能改進支撐工作。
在這個過程中,我們探索了使用微軟Team Foundation Server支撐研發端到端的完整流程,梳理出了從立項,業務需求,工程拆分,編碼開發,自動化構建和釋出,測試和缺陷管理到QA質量保障的7個關鍵步驟,取得了非常好的實踐效果。
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
這個專案也在2016年的微軟技術大會上作為KEYNOTE主題演講案例重點推介給全國的技術社群。
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
網際網路三大平臺工程是農行內部第一次用一個工具將研發過程端到端的管理起來,相比較之前使用多個工具串接的方式,這種方式降低了工具之間整合的工作量,讓管理人員和開發人員可以更加關注研發流程業務本身,同時也可以天然地完成研發資料的端到端貫通。
在這個專案中,團隊還探索使用了微軟TFS所提供的CI/CD流水線完成了程式碼的自動化編譯和自動化部署,大大降低了團隊花費在頻繁部署測試環境上的資源消耗,同時也確保了測試環境部署的可靠性,為研發過程的提質增效提供了有力的工程實踐保障。
在這一階段,雖然沒有提及敏捷和DevOps的說法,但是在專案推進過程中已經開始自發地使用敏捷和DevOps中的很多理念,方法和實踐,為後續農行在敏捷和DevOps轉型上的進一步探索打下了基石。
參考文章:

  • 大喵手繪|神秘的網際網路金融專案是如何進行質量管理的
  • 手持利器,心無畏懼——TFS深度體驗報告


第二階段

【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT



深度探索精益敏捷研發模式 - 農行春天工程和其他

有了第一階段的探索,在農行研發中心內部的很多團隊看到了敏捷和DevOps模式的點,開始進行更加深入的試驗。在2017年下半年,農行研發中心應用開發二部啟動了移動營銷平臺建設專案,因為這個專案計劃在2018年春季釋出,因此也被冠名為“春天工程”。
春天工程以三大平臺為依託,透過構建營銷寶,營銷派,營銷管家和金融小店四大產品為目標,試圖利用網際網路的模式為農行客戶經理以及全體員工提供移動營銷工具,藉助手機,PAD,掌上銀行,微信,小程式等各個渠道推動金融產品的銷售。因為更加貼近終端使用者的業務屬性,開發團隊希望探索使用敏捷開發模式來運作這個專案。
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
春天工程從一啟動就受到了研發中心專案辦的特別支援,建立了以內外部教練為核心的敏捷試點支撐體系,透過為試點團隊不斷提供培訓,教練,貼身輔導等方式指導開發團隊一步步建立迭代式開發節奏,同時持續收集和整理團隊的實踐,進行內部外部的成果推介。這個敏捷試點支撐體系不僅為春天工程提供了強有力的支援,也為農行內部創造了更好的敏捷土壤。
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
這個過程中,LEANSOFT團隊也為專案組提供了一系列的敏捷指導和DevOps工具支援,包括參與團隊的日常敏捷活動,梳理Kanban和站會流程,最佳化視覺化板的結構,協助團隊建立CI/CD流水線,遷移和梳理Git程式碼庫結構,設計和配置基於特性分支的配置管理策略,指導團隊使用微軟TFS所提供的拉取請求(Pull Request)功能完成程式碼評審和程式碼質量驗證,自動化編譯,打包,測試和部署。我本人也作為外部教練參與了團隊的日常敏捷活動,持續指導團隊建立起迭代節奏。
這些實踐對於支撐團隊從傳統研發模式轉換到敏捷研發模式起到了非常重要的支撐作用,從需求跟蹤,流程管理,迭代開發,測試管理和監控反饋五個方面確保了春天工程敏捷試點的成功。
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
春天工程雖然整體規模上沒有網際網路三大平臺工程大,但是在敏捷和DevOps實踐探索的深度上更為深入。團隊從Scrum和Kanban做起,經歷了3個月的持續改進,完成了相對穩定的Kanban管理流程和視覺化板的設計,再透過將測試團隊引入專案組實現迭代內的持續測試,最終實現按照使用者故事粒度的持續交付和前期產品設計階段更為合理的需求到故事的拆分體系。整個流程的建立耗費了超過8個月的時間,是一個非常典型的敏捷團隊試點轉型例項。
參考文章:

  • 農行基於TFS工具的敏捷轉型實踐
  • 來自農行軟開的看板站會秘籍和敏捷轉型經驗
  • 【DevOps+LIVE影片】中國農業銀行敏捷轉型和看板秘籍分享
  • 敏捷可以這麼玩:基於TFS電子看板的Scrum管理實踐 
  • 【過程瞭望】從理論到實踐,平臺部敏捷踐行落地
  • “五型五秀”:滿眼生機轉化鈞,天工人巧日爭新 ——C3“全場景配置管理+持續整合”探索實踐之路
  • 15分鐘幫你把“鏡(kan)子(ban)”擦乾淨
  • 一種適用於大規模應用系統雙模研發的GIT分支模型(上篇)
  • 一種適用於大規模應用系統雙模研發的GIT分支模型(下篇)
  • 如何在專案研發中吃著火鍋唱著歌?
  • 某銀行大型管理系統端到端持續整合和交付實踐
  • C3端到端全流程敏捷研發轉型之路大揭秘


第三階段

【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT



全面推進DevOps轉型和全行工具鏈貫通 - 信通院DevOps評級工作

第一階段農行研發中心透過網際網路三大平臺工程的契機建立了端到端研發管理的框架基礎,第二階段的春天工程中又從深度上驗證了敏捷和DevOps的模式,證明了這些實踐可以在傳統銀行的組織環境下實現更為快捷的交付速度和更為靈敏的業務響應能力。
在2017-2019年之間,農行研發中心一直在推進工具收斂的策略,將原先散佈在不同工具上的流程逐步收斂至TFS這一個平臺上來,這個過程中另外一個非常重要的工程實踐就是集中構建流程的建立。
集中構建流程要求所有需要投產上線的軟體包必須透過TFS的自動化構建進行建立,運維部門只能透過受控的集中儲存獲取投產包。這一流程在TFS上的落地,確保了研發和運維之間建立投產資料包的唯一可信源,為後續的DevOps全流程貫通打下的又一個堅實的基礎。
LEANSOFT團隊在協助農行研發中心推進集中構建的過程中,充分發揮了微軟TFS內建的CI/CD流水線的跨平臺構建叢集管理能力,建立並管理了上百臺構建機組成的構建叢集,支援了包括Windows, Linux, Mac在內的不同作業系統上不同技術棧(包括:Java, C#, JavaScript, Python, c/c++等)的自動化構建,靜態程式碼檢查,程式碼安全性掃描,單元測試執行和結果收集,以及不同環境下的部署流水線設計和實施。
基於以上成果,農行研發中心於2019年啟動了由信通院制定的《研發運維一體化(DevOps)能力成熟度模型》三級評估。在啟動評估的初期,LEANSOFT團隊參與了由農行研發中心專案管理辦公室牽頭進行的農行DevOps研發工具鏈建設體系框架的制定,透過DevOps諮詢服務產出了【DevOps工具鏈規劃廣義流水線】規劃框架檢視。
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
對於農行研發中心這樣規模的研發類組織,內部部門繁多,人員角色複雜,流程複雜且環節多,非常需要一個整體的規劃框架統一所有人的理解,這樣才能確保DevOps實施的成功。
【DevOps工具鏈規劃廣義流水線】規劃框架包含了三橫一縱四個要點:

  • 三橫。主要包括第一層的專案/產品級管理(PM),第二層的工程管理(SE)和第三層的工具和環境管理。這三個層次分別覆蓋了組織中不同層級的管理訴求:第一層主要覆蓋組織級管理訴求,側重於組織資源最佳化,投資組合和創新管理;第二層主要關注部門,專案/產品級的管理訴求,側重於過程改進,質量控制和效率提升;第三層關注具體的實現方式,側重於各個領域工具的適配和整合,為第一和二層的管理訴求提供足夠的支撐。
  • 一縱。主要體在研發度量資料體系化管理上,在以上三層中我們要儘量將管理流程數字化,並透過需求這條主線形成貫穿所有過程的資料鏈條,為上圖中的組織級,部門級,專案/產品級,團隊級和個人級儀表盤和資料分析檢視提供資料支撐。實現工具無關的管理度量體系。

這其中的一其實是DevOps工具鏈建設中非常關鍵的一環,我們都知道DevOps三步工作法,這個DevOps實施方法最早在《鳳凰專案》這本書中提出後已經被業界公認為是非常有效的DevOps實施落地指導思路。三步工作法的第二步就是建立反饋,研發度量資料體系其實就是為團隊提供反饋最重要的一種方式,也是賦能研發團隊進行自我改進中最重要的一環。
在農行研發中心的DevOps工具鏈建設過程中,LEANSOFT團隊配合專案辦的度量指標設計團隊一起,圍繞交付交付效率、交付質量和交付能力三個維度,一共完成了43個指標的設計,規劃,實施和資料展現。
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
在度量平臺實施過程中,LEANSOFT團隊採用了自助研發的“軟體交付效能儀表盤(Proejct Dolphin)"解決方案,圍繞“DevOps通用資料模型”建立了一套專門針對DevOps研發類資料的可擴充套件,可插拔的度量資料抽取平臺。解決了不同角色的人員對資料檢視的不同訴求下,又可以保證資料模型相對穩定演進的問題,滿足了DevOps評級過程中對度量指標的各項要求。
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
【DevOps進行時】持續交付廣義流水線探索 - 農行DevOps實踐之路 | LEANSOFT
經過團隊的共同努力,中國農業銀行研發中心在2020年6月19日順利透過 DevOps 標準持續交付部分的 3 級評估的專案,相關專案以及專案組分享的實踐文章連結如下:
1)信貸中臺專案

  • 助推數字化轉型,農行信貸中臺 DevOps 轉型實踐

2)個人網銀專案

  • 線上金融 DevOps 排頭兵:農行個人網銀系統實踐

3)分散式應用互聯平臺(AIR)專案

  • 助力技術中臺數字化轉型,探索農行 DevOps 實踐之路

4)增值稅進項稅管理專案

  • 當“微服務”遇見 DevOps,農行增值稅進項稅“1+1”研發模式

5)金融小店專案

  • 農行金融小店不可不知的 DevOps 測試自動化之路
  • 社交營銷與 DevOps 共舞,農行金融小店 DevOps 落地實踐   

參考文章   

  • 【DevOps進行時】介面自動化測試之內功心法
  • 【DevOps進行時】農行信貸中臺使用者故事地圖落地實踐:激發溝通火花,洞查真實需求
  • 阿捷外傳之Git程式碼統計
  • 【洞見】DevOps專題|DevOps農行本地化實踐探秘
  • 資料驅動,讓 DevOps 看得見,摸得著
  • 重磅!中國農業銀行多個專案透過 DevOps 持續交付標準 3 級評估,相關專案能力達到國內領先水平!(有本圖)
  • 度量驅動 DevOps 轉型:中國農業銀行 DevOps 度量體系建設實踐淺析


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558019/viewspace-2710364/,如需轉載,請註明出處,否則將追究法律責任。

相關文章