網商銀行是如何建設金融級雲原生分佈式架構的?

網商銀行從誕生之日起就是一家將核心系統架構在雲上的銀行,經過多年建設,逐步完成了兩地三中心架構到異地多活雲單元架構的升級。中國人民銀行出臺的《金融科技(Fin-Tech)發展規劃(2019-2021年)》提出合理佈局雲計算,統籌規劃雲計算在金融領域的應用,隨着雲計算技術不斷髮展,雲原生技術日趨成熟,雲基礎設施的重大變化帶來研發場景、軟件生產模式的一系列變革,網商銀行密切關注業內發展趨勢,目前正在構建金融級雲原生分佈式架構,爲業務發展提供安全、穩定、高效和敏捷的基礎設施能力,迎接雲原生時代的到來。

— 本文首發自“金融電子化”公衆號


網商銀行技術架構演進


網商銀行經歷了三次大的技術架構變遷。從建站開始,網商銀行就是架構在雲計算基礎設施之上 ,使用雲平臺架構支撐業務開展,交付模式上使用基於經典虛擬機的發佈包模式。隨着業務量增長,兩地三中心的架構已經無法滿足業務發展需求,需要升級擴展性更好的架構,另外銀行金融業務的屬性需要在容災能力上有更高的要求,因此網商銀行從傳統的雲架構升級到了異地多活雲單元架構。雲原生技術持續發展,爲我們帶來了安全可信、節約成本和敏捷開發的能力,隨着業務的發展,對於運維效率、擴展性、可遷移性、精細化管控的更高要求驅使着基礎設施往雲原生的架構體系演進,網商銀行擁抱新興技術架構,正在逐步演進到雲原生架構。

金融級雲原生分佈式架構爲業務帶來的價值


當前雲原生社區持續火熱,雲原生計算基金會(CNCF)在2018年爲雲原生進行了重新 定位:雲原生技術有利於各組織在公有云、私有云和混合雲等新型動態環境中,構建和運行可彈性擴展的應用。雲 原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API,這些技術能夠構建容錯性好、易於管理和便於觀察的松耦合系統。結合可靠的自動化手段,雲原生技術使工程師能夠輕鬆地對系統作出頻繁和可預測的重大變更。

隨着雲原生技術的不斷迭代演進,雲原生產品能力也在不斷成熟和完善,雲原生架構逐漸成爲多家互聯網機構及金融行業機構架構選型方 向。容器編排 Kubernetes 技術承載了雲原生時代統一資源調度的目標,通過統一資源調度,可以有效提升資源利用率,極大節省資源成本,通過在彈性資源交付、集羣規模化服務以及技術風險與自動化運維上持續建設能力,讓 Kubernetes 逐漸成爲下一代雲操作系統基礎設施。服務網格技術是雲原生架構核心,與 SOA 體系相比,服務網格將 RPC、消息、DB 訪問等基礎底層能力下沉,與業務系統部署解耦,給業務系統帶來透明的通信基礎設施,減輕業務負擔,加速基礎設施演進速度。基於雲原生的混合雲彈性架構爲業務低成本快速擴縮容提供了可行性方案,跨雲彈性資源統一管控實現了資源靈活調度,根據業務量進行彈性雲的資源動態使用,進一步降低了資源成本。

網商銀行雲原生架構升級的挑戰與目標


1.雲原生架構升級挑戰。 首先是基礎設施的大面積更新換代,從底層的資源調度到上層的 PaaS、中間件都要做雲原生架構的適配改造,以滿足應用層雲原生接入要求;其次是架構升級平滑演進的問題,在平臺產品層面需要做到已有單元化架構和新的雲原生架構的兼容,保障架構的平滑過渡,在研發模式層面,需要從傳統的代碼包交付模式過渡到容器鏡像爲載體的雲原生交付模式,整個過程要儘可能少的改變用戶操作習慣。再次是架構升級帶來的運維體系及安全生產的挑戰,新的雲原生產品的引入需要建設配套的基礎運維能力,SaaS 層應用運維模式的變化也給運維人員帶來了新的挑戰,另外新架構的引入帶來了高可用、穩定性及變更管控等安全生產的挑戰,需要不斷建設配套的技術風險能力。
 
2.雲原生架構升級目標。 首先完成雲原生基礎設施產品的落地,並完成已有單元化架構平滑升級到雲原生架構,爲架構持續演進提供底層能力支撐。其次通過使用雲原生新技術帶來研發效能、資源效能、安全加固和運維能力提升,基礎設施能力下沉後具備獨立演進能力,降低應用開發投入成本,服務網格技術可實現業務低成本安全加固,降低業務風險,統一資源調度和混合雲彈性架構支撐資源彈性伸縮,提高資源利用率降低資源成本投入,建設新的運維體系支撐雲原生運維模式,實現可持續交付;再次網商銀行探索雲原生架構升級路徑,沉澱一整套從經典架構遷移至先進架構的方法實踐和產品,爲行業提供技術實踐參考。

網商銀行雲原生架構的探索與實踐


1.混合雲彈性架構。 在雲計算逐漸普及的情況下,無論是互聯網公司還是傳統IT企業都傾向於不被一朵雲綁定,混合雲架構已經成爲一個大的IT系統演進趨勢。網商銀行基於統一的容器服務(兼容 Kubernetes)進行應用的部署,可以解耦應用跟 IAAS 雲底座的鎖定關係,實現一個鏡像多朵雲部署。此外,網商銀行在雲單元架構的基礎上通過業務鏈路動態識別技術,打造了按業務鏈路級別進行多雲之間的流量彈入彈出能力,可以便捷高效地在多朵雲之間進行流量調度,解決互聯網時代面向突發流量及促銷類活動的彈性擴縮容成本和效率問題。

2.不可變基礎設施。 傳統的可變基礎設施是基於物理機或虛擬服務器進行應用的部署,在不同環境之間可以通過動態配置下發或者實時訪問外部服務更新應用的機器狀態,整個基礎設施一直處於一個變化的過程中,對於一些需要回滾的運維場景會比較複雜。網商銀行採用鏡像化部署模式,將應用依賴的基礎設施(含配置)打包成不可變的鏡像,可以做個多環境統一鏡像,極大地降低了應用多環境的部署成本,同時對自動輪轉替換、自動回滾等運維動作更友好,提升了基礎設施運維的自動化水平。

3.服務網格。 服務網格是網商銀行下一代雲原生架構中非常重要的一個基礎設施,它把原來通過 SDK 集成的一些網絡通信的能力下沉到 Sidecar 中,包括基本的 RPC、消息、DB 訪問能力,以及在此基礎上的服務發現、熔斷、限流、流量管控、數據庫分庫分表的能力,以此給業務系統帶來較爲透明的通信基礎設施,將基礎設施的迭代演進跟業務系統解耦,讓業務研發專注於業務邏輯,減輕業務系統的負擔,提升業務系統及基礎設施的迭代效率,實現專業的團隊做專業的事情。另外 Sidecar 的引入也給業務系統的多語言發展提供了更大的可能性,通過服務網格技術可解決多語言、多技術棧之間的互連互通問題,有利於構建一個松耦合銀行系統架構。

4.安全可信。 網商銀行在雲原生架構探索實踐過程中特別注重架構的安全能力,不斷建設雲原生基礎上的安全可信架構。作爲一家面向互聯網的數字化銀行,網商銀行需要一套兼顧高效率與高安全性的IT系統架構,基於服務網格網商銀行實現了核心應用服務的安全訪問控制,整體上形成了核心系統的縱深防禦能力覆蓋,在保證業務研發效率的同時可以大幅度提升安全性。

5.離在線混部。 隨着集羣規模化的提升,在線業務集羣和離線集羣資源池逐步變大,由於存在業務低峯期,在線和離線使用獨立的資源池會遇到資源利用率的問題,一個比較明顯的現象就是集羣的資源分配率很高但是實際利用率偏低。爲了解決資源利用率問題,網商銀行在雲原生架構建設過程中進行在線和離線集羣混合部署,統一資源調度,以資源隔離和動態調整爲基礎,將不同屬性類型的在線服務和離線計算類服務精確進行組合,利用高效調度算法和智能化的容量計算模型等技術手段完成資源的合理利用,提升資源錯峯高效利用水平,降低IT成本。

總結及未來展望


雲原生技術帶來了更高層次的基礎設施抽象,讓研發的關注點從基礎設施進一步分離,聚焦上層業務邏輯實現。網商銀行通過探索和實踐雲原生架構升級,逐步落地了雲原生相關的技術,爲網商未來業務發展提供了先進的技術支撐,爲架構持續演進打下了基礎。面向互聯網的數字銀行 IT 系統設計越趨複雜,在業務需求快速變化的情況下,微服務的數量也呈指數級增長,傳統的運維模式支撐如此大規模的分佈式服務運維變得艱難,雲原生架構簡化了業務系統基礎設施,更利於構建自動化的運維體系,降低人的介入難度。此外,隨着銀行業務的複雜化,金融核心組件的抽象是一個大趨勢,中臺化架構已經逐漸成爲新一代軟件系統集成模式的重要方向。在強調業務核心組件複用能力的同時,如何保證業務系統迭代的效率是需要面臨的問題。在雲原生的基礎上,一些新的技術爲研發效能提升提供了新的思路,比如 Serverless 等,雲原生架構的落地,爲銀行基礎架構在容量管理、運維管控等能力向自動化、智能化拓展打開了更廣闊的發展空間。

金融行業的數字化轉型需要構建有力的技術支撐體系和IT能力,網商銀行期望通過自己的雲原生架構落地實踐爲業界提供借鑑經驗,也希望與同行共同探索未來金融行業的架構轉型之路。

本文分享自微信公衆號 - 金融級分佈式架構(Antfin_SOFA)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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