丁之彥
摘要:隨著銀行業務創新產品的不斷涌現,傳統的開發運維模式已經難以滿足大規模用戶的訪問和需求的快速迭代,基于彈性分布式容器云架構的敏捷開發運維體系,能為銀行業務提供系統的解決方案,具有一定的研究意義。
Abstract: With the continuous emergence of innovative banking products, the traditional development operation and maintenance model has been difficult to meet the rapid iteration of large-scale user access and demand. The agile development operation and maintenance system based on flexible distributed container cloud architecture can provide a system solution for banking business. So it has certain research significance.
關鍵詞:容器云;分布式;敏捷開發
Key words: container cloud;distributed;agile development
中圖分類號:TP311.5;TP393.09? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2019)34-0172-02
根據2019年第44次《中國互聯網絡發展狀況統計報告》,我國網民規模達8.54億,互聯網普及率達61.2%,手機網民規模達8.47億,網民使用手機上網的比例達99.1%。互聯網用戶行為具有“不可預測、爆發式增長、峰谷明顯”等特點,為銀行互聯網產品開發和運維帶來新的挑戰,隨著面向互聯網用戶的銀行業務創新產品不斷涌現,涵蓋了網銀、支付、理財等核心業務及搶購、優惠券等拓展業務,逐漸成為銀行重點業務方向之一。尤其隨著“互聯網+”的深入發展,銀行創新業務產品對產品的上線時間、迭代周期、運營質量要求極高。采用傳統的開發運維模式將難以滿足需求的快速迭代及大規模用戶的訪問,引入基于彈性架構的敏捷DevOps體系是支撐互聯網金融產品創新的有效方式。
2009年在速度大會(Velocity)上首次提出DevOps概念,提出通過加強開發團隊與運維團隊之間的協作,來加快應用部署頻率。不同于傳統敏捷開發與運維作為兩個獨立的流程執行易導致流程混亂狀態,DevOps是一組過程、方法與系統的統稱,以促進開發、測試和運維部門之間的交流與合作,大幅減少整個軟件生命周期中出現的重復工作,提升開發效率、提升產品運營的穩定性。
目前,國內外對于敏捷DevOps投入大量的研究與實踐,研究軟件系統開發、測試、運維各階段的需求,實現開發與測試階段的融合,如將開發延伸至生產中(持續集成和交付)、將開發嵌入到IT運維中(應用端到端管理)、向開發中加入生產反饋(可視化監控和運維)、將IT運維嵌入到開發(運維分析及預測)等。IBM、微軟等國內外知名公司紛紛推出自己的DevOps解決方案和實施工具,巴克萊銀行已經將敏捷和DevOps擴展到全企業范圍內,取得了很好的效果,高盛在Docker研發和應用領域投巨資來實現其微服務架構。國內,招商銀行與青云合作打造新一代DevOps應用云,將開發運營和質量保障緊密結合,加速應用產品和功能迭代,中國工商銀行和上海浦發銀行等已經將DevOps試點到其創新應用中。
本項目深入研究銀行業的持續集成、持續運維需求,研發了基于彈性分布式容器云架構的開發運維體系及其相關支撐平臺,并結合銀行業互聯網應用創新的特點,開展針對性的實踐應用,為金融科技快速發展提供了支撐。根據Amazon Apollo平臺數據統計,平臺每分鐘推送95-100個部署,平均部署時間僅11.6秒,部署失敗的停機率為0.001%,這些是敏捷開發運維(DevOps)課題關注的重要指標。敏捷開發運維(DevOps)不僅關注產品的快速開發上線,還注重產品的快速部署、持續集成、高效運維等。其中,敏捷開發彌補了業務需求頻繁變更與開發測試長周期之間的差距,提升了開發和交付效率,而DevOps在敏捷開發模式基礎上,有效解決開發運維一體化的問題。目前國內外都非常關注DevOps,包括傳統的運維服務、傳統工具廠商等。研究顯示引入DevOps的企業中,開發和運維人員通過在產品設計、構建、測試等方面的協作,將產品交付效率提升30倍、變更失敗率降低50%。
DevOps在互聯網領域的成功引起了國內外金融機構的關注,紛紛開展DevOps試點應用實踐。高盛投巨資開展基于Docker的開發運維架構研發,計劃將其大量應用信息系統遷移至云平臺,提升開發運維效率。中國工商銀行、招商銀行、上海浦發銀行等已將DevOps試點至信用卡、優惠券等面向互聯網用戶的應用領域,加速了公司產品開發效率和開發運維融合速度。
以Docker為代表的容器技術的發展,加速了敏捷開發運維模式的發展。以Docker為核心的彈性分布式云架構,采用Docker鏡像方式將需交付的產品或組件及其所需運行環境打包,鏡像可以在開發、測試、生產環境中重復使用,改變了傳統軟件產品的交付模式。Docker容器云平臺提供的彈性擴展、高可用性部署優勢,有效支撐銀行信息產品的持續集成、持續部署需求,大幅降低開發運維成本。
在項目中解決了一些關鍵技術:實現銀行業務系統開發和運維融合,提升銀行信息系統尤其是創新產品的開發效率和運營質量;實現基于Docker、Kubernetes技術的銀行業微服務開發框架,提升銀行業務產品的開發、運維和質量保障效率。實現基于Docker、Kubernetes技術的銀行業務產品的高效運維,支持產品發布、升級、回滾、運行監控、彈性伸縮、高可用性保障等功能。實現Docker容器的安全性。在保持Docker容器輕量級特性的基礎上,克服Docker容器共享宿主機內核帶來的安全隔離性弱的問題。實現Docker容器的故障隔離。克服Docker容器共享宿主機內核帶來的故障擴散問題。開展面向銀行業務創新產品的敏捷運維開發體系實施和管理。
項目研究的意義在于:研究適用銀行創新產品的敏捷開發運維體系,實現開發、測試和運維的融合,加強對敏捷化產品的全生命周期管理,大幅減少重復部署環境的工作量;實現基于Docker的敏捷開發運維平臺架構設計,包括微服務開發框架和業務產品運維支撐架構。實現業務產品的微服務化,支持產品的自動化上線技術、安全掃描、自動更新、灰度發布、版本回滾、基于多指標的彈性伸縮等。尤其根據目前銀行創新產品的開發與運維過程中的難題,結合彈性分布式容器云技術,研發基于Docker容器云架構的敏捷開發運維架構,提出基于Docker微服務開發框架及其實現方案,實現產品自動化上線、安全掃描、灰度發布、版本回滾、多指標監控等運維支撐能力。
由于銀行業務系統對產品穩定性要求極高,彈性容器云架構和敏捷DevOps在銀行業務中的應用大都還處于研究或試點應用的階段。基于彈性分布式容器云架構的敏捷開發運維體系,將為銀行業務提供系統的解決方案和實踐案例,具有一定的研究價值和行業推廣意義。
參考文獻:
[1]劉沙.順勢而為,讓Docker幫到業務[J].It經理世界,2016(16).
[2]孫海洪,邱旻駿,鄭位威.探路新技術,把脈容器化[J].金融電子化,2016(9):57-58.
[3]Sandoval R M S E. A case study in enabling DevOps using Docker[J]. 2015.
[4]孫海洪.微服務架構和容器技術應用[J].金融電子化,2016(5):63-64.
[5]石琎.基于Jazz平臺與 IBM UrbanCode 產品實現端到端的 DevOps[J].2014.
[6]王男.面向證券業務系統的虛擬化測試平臺的研究[D].吉林大學,2015.
[7]Kenefick S. Become More Agile and Get Ready for DevOps by Using Docker in Your Continuous Integration Environments [TR], Gartner, 2015.
[8]Duvall P. Agile DevOps: The flattening of the software release process [TR]. IBM Corporation, 2012.
[9]孫海洪.微服務架構和容器技術應用[J].金融電子化,2016(5):63-64.
[10]佚名.數人云發布容器管理面板Crane[J].金融電子化, 2016(9):95.
[11]董莉.螞蟻爬上金融云[J].It經理世界,2015(21):20-22.
[12]Jullian A. R, Sangeetha M. From Dev to Ops - Introduction to Devops on understanding Continuous Integration and Continuous Delivery[J], International Journal of Innovative research in Computer and Communication Engineering, 2016(4): 12567-12572.