天天看點

在網商銀行金融級雲原生分布式架構的探索與實踐網商銀行技術架構演進金融級雲原生分布式架構為業務帶來的價值網商銀行雲原生架構更新的挑戰與目标網商銀行雲原生架構的探索與實踐總結及未來展望

網商銀行從誕生之日起就是一家将核心系統架構在雲上的銀行,經過多年建設,逐漸完成了兩地三中心架構到異地多活雲單元架構的更新。中國人民銀行出台的《金融科技(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能力,網商銀行期望通過自己的雲原生架構落地實踐為業界提供借鑒經驗,也希望與同行共同探索未來金融行業的架構轉型之路。

繼續閱讀