在碰撞中成长 - 北京银行的DevOps实践之路
2018年10/27日,在上海召開的微軟年度最大規模的技術盛會—微軟2018技術暨生態大會上,北京銀行渠道系統負責人&敏捷團隊負責人周兵女士和大家一起分享了北京銀行的DevOps 實踐轉型經驗,得到了大會聽眾的熱烈評價和共鳴,會后眾多金融和互聯網行業的客戶意猶未盡,還和周兵女士進一步探討DevOps轉型的經驗。
嘉賓簡介
周兵- 北京銀行渠道系統負責人&敏捷團隊負責人
演講實錄
下面是我們現場收集的周兵女士演講內容,快速整理記錄如下,彌補大家不能到現場交流探討的遺憾;不過還是建議大家下次來現場哦,現場氣氛真的是熱烈。
?
微軟Azure DevOps在北京銀行的實踐
?
大家好,非常榮幸能夠在微軟技術暨生態大會上和大家分享北京銀行進行敏捷與DevOps轉型的實踐經歷和經驗。
?
北京銀行成立于1996年,是一家新型的股份制商業銀行,擁有近620家分支機構,價值排名中國區域性發展銀行首位,一級資本排名全球千家大銀行63位,連續五年躋身全球銀行業百強。近兩年,北京銀行積極探索數字化轉型,并以打造金融科技型銀行作為全行轉型突破口。其中,提升敏捷服務能力,及時響應市場需求,是轉型過程中最迫切的需求之一。在此背景下,我行開啟敏捷轉型探索之路,并于2017年6月,引入微軟研發管理平臺Azure DevOps Server,作為敏捷落地工具。
?
銀行做敏捷,與互聯網行業做敏捷不同:首先,銀行業是強監管、重流程的行業,所以,銀行做敏捷,要求的是在穩定運行、杜絕風險的基礎之上的敏捷。第二,銀行系統多,有渠道類、賬務類、支付類、數據類、總線類系統,系統類型之間所適應的模式也不同,所以,銀行做敏捷,要求的是穩態與敏態共存的敏捷。
?
在試點之初,我們也存在著諸多困惑:北京銀行與微軟Azure DevOps Server如何進行基因適配?利用Azure DevOps Server推行敏捷是否有統一的范式?我們的轉變應該是一步到位還是漸進式改革?這些問題隨著我們的探索與實踐逐漸清晰,一起來看看我們的實踐之路。
?
敏捷初衷——我們為何轉變?
?
在傳統的工作流程中,存在著諸多的痛點,比如:
項目多,投產次數多,其中以手機銀行為代表的渠道類系統最為突出。
環境多,版本管理較復雜,其中以ESB為代表的總線型系統最為突出。
項目流程繁瑣,一個項目從立項到投產,大概需要15個環節,每個環節有相應的文檔要求,整個過程需要提交多個文檔,且需要在多種不同的系統中進行操作。
?
總體上,存在系統之間相對獨立,形成信息孤島的問題,很多流程仍依賴于線下溝通和手工操作,使得我們難以用有限的開發資源,更好地滿足日益增多的業務需求和日益增強的監管要求。
因此,我們希望能有一套平臺,對項目流程進行全生命周期的管理,以實現有效的協作研發:
-??????針對項目多,投產次數多的現狀,實現自動化集成部署的流水線;
-??????針對環境多,版本管理較復雜的現狀,實現清晰靈活、自動化的版本管理;
-??????針對項目流程繁瑣、文檔多、系統多的現狀,實現開發流程的統一化及項目管理的精細化。
?
而微軟的TFS(Team Foundation Server,現已更名為Azure DevOps Server)正是這樣一套平臺,集項目管理、版本管理、持續集成、持續發布和測試管理為一體,其中,項目管理和測試管理是項目維度的,版本管理、持續集成、持續發布是系統維度的。我們通過引入TFS這一有力工具,探索實現對項目的全生命周期管理和基于敏捷與DevOps的協作研發機制。
?
基因適配——我們在碰撞中成長
?
我們選取了不同類型的系統團隊進行試點,在實際試用過程中,遇到多種困難,我們歸結為兩大碰撞:一是TFS理想化的全生命周期管理與實際項目過程中錯綜復雜、系統多樣化的種種現實的碰撞;二是TFS基于敏捷、設計靈活的使用方式與實際項目過程中期望簡潔、并與現有流程完美契合的碰撞。
?
具體來說有三個問題:
?
-??????項目管理:如何簡便、清晰地區分項目維度與系統維度的交叉?
-??????版本管理:如何做好多項目并行、投產時間不定的版本管理?
-??????測試管理:如何在測試管理階段做到既實用又滿足監管要求?
?
兩大碰撞的根本原因,是TFS基于敏捷迭代、強調協作的設計理念與銀行強監管、重流程的工作理念之間的碰撞。試用過程是通過發現問題、解決問題、探索方案,分析定制化可行性等措施,著力解決兩大碰撞的過程,是在碰撞中成長,通過基因適配,探索北京銀行基于TFS的最佳實踐的過程。
?
?
第一:項目管理
?
首先,關于項目維度與系統維度的交叉,我們在TFS中建立“項目管理”的團隊項目,自動從行內項目管理系統同步需求,同時,建立全行系統清單,每一個系統在TFS中為一個團隊項目,兩者通過需求進行關聯,形成清晰靈活、滿足各個維度管理要求的規范流程。
?
第二:版本管理
?
關于版本管理,我們直接選用GIT分支型的版本管理,并按照即有版本管理要求,劃分為開發庫、受控庫和產品庫,分別對應開發流程、準生產流程和投產流程,每一個階段都以項目映射分支的方式進行管理。并且向前銜接需求,向后銜接測試,打通計劃與交付,形成部署流水線。
?
第三:測試管理
?
關于測試管理,我們沿用了已有測試管理系統進行測試計劃、測試案例、測試報告的管理,同時與TFS進行打通,將缺陷流轉至TFS,保證開發人員可以在TFS中專注于需求開發和缺陷解決兩個關鍵任務。
??
實踐總結——我們的特色之路
?
北京銀行基于TFS的敏捷實踐,有以下幾個特色點:
?
1. 穩態與敏態共存的雙模IT
?
TFS敏捷實踐是在我行樹立“移動優先”戰略的背景之下開展的,我們以移動為觸點擁抱互聯網,以移動為試點實踐新模式,以移動為焦點不斷發現問題改進流程。在這個過程中,以手機銀行為代表的移動端應用處于敏態,實現了每周投產,傳統的中后臺系統處于穩態,仍保持雙周投產。此外,“穩態”還代表了我們在踐行敏捷的同時,保持原有流程不發生大的變化,兼顧效率與風險,讓敏捷基因與銀行“重流程、強監管”的基因進行了很好的適配。
?
2. 擁抱互聯網兼具風險意識
?
我們率先采用了互聯網特色的GIT分支型管理,替代傳統版本管理,并設計符合監管要求的“開發庫、受控庫、產品庫”的分支管理模式。同時,在實踐過程中,我們對版本的全量發布和增量發布進行了審慎、全面的考量,我們項目組研發了增量發布插件,支持全量編譯、增量發布的模式,作為對全量發布的一種補充模式,以更好地把控投產風險。
參考:
上圖中提到的 Pull Request Diff Copy是 leansoftX.com 團隊與北京銀行合作開發的,公眾號中相關文章如下。
使用TFS CI/CD 完成 VSTS 插件自動化部署和發布
綁定Git Pull Request和部署目標環境
如果需要安裝此插件,請掃描上圖中的二維碼
3. 流程創新以實現自動化管理
?
我們組建的流程改進小組主動創新,借助TFS強大的功能,設計實現了多個自動化管理流程,比如:實現自動的代碼安全掃描與加固,實現自動流轉的準生產環境審批流程,實現項目文檔的自動化檢查,實現環境問題的自動跟蹤等,通過透明化、自動化的管理,實現工作效率的大幅提升。
?
總結
?
回首實踐之路,北京銀行建立了一體化工具實現全流程串接,通過條目化管理實現管理粒度細化,通過數據集中實現工作即監控,通過靈活的版本管理打通計劃與交付,通過自動化檢查實現更有效的質量管理…讓北京銀行的研發管理更加統一協作、數據集中、流程規范,配置靈活和自動高效。我們還將覆蓋更多角色、覆蓋更多場景、進行更深度實踐,沿著敏捷與DevOps之路繼續前行,探索商業銀行的敏捷轉型最佳實踐。
?
備注:
?
TFS 全稱是Team Foundation Server 是微軟部署在企業本地的DevOps 工具鏈平臺;其在2019版本將更名為Azure DevOps Server. 所以在本文中Azure DevOps Server 和TFS 交替出現。
相關文章
一種適用于大規模應用系統雙模研發的GIT分支模型(下篇)
一種適用于大規模應用系統雙模研發的GIT分支模型(上篇)
微軟改名部門又一力作:VSTS改名為 Azure DevOps
DevOpsDay回顧: 傳統金融業如何挑戰互聯網
如何選擇適合自己的Team Foundation Server部署方案
來自PMO的反擊
“五型五秀”: 滿眼生機轉化鈞,天工人巧日爭新 ——C3“全場景配置管理+持續集成”探索實踐之路
【過程瞭望】從理論到實踐,平臺部敏捷踐行落地
“看板”-一種敏捷思想的最佳實踐
DevOps+LIVE直播
基于Azure DevOps的容器化流水線搭建
本次技術大會我們還完成了 Azure DevOps Server 的動手實驗,但是因為實驗時間有限,很多小伙伴都沒有能夠完成整個實驗。因此,我們將邀請leansoftX.com研發總監周文洋為我們通過DevOps+LIVE直播為大家再做一次分享。
直播時間
2018年10月31日 晚8點30分
報名方式
請加【DevOps社區運營助手】微信,發送:直播報名 即可拉入直播分享群。
大波福利來襲
參與DevOps+LIVE的小伙伴將有機會獲得11月2日在深圳舉辦的DevOpsDays活動免費門票一張,我們這次將送出20張免費門票。
參與啊DevOps+LIVE直播的小伙伴也將獲得Azure DevOps Server環境的免費使用權,試用期限為5天。
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的在碰撞中成长 - 北京银行的DevOps实践之路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET in Browser - Bl
- 下一篇: 【活动(广州)】MonkeyFest20