一、雲原生加快數字化發展,建設數字金融
國家“十四五”規劃指出,要“加快數字化發展、建設數字中國”。迎接數字時代,激活資料要素潛能,推進網絡強國建設,加快建設數字金融、數字經濟、數字社會、數字政府,以數字化轉型整體驅動生産方式、生活方式和治理方式變革。其中“打造數字經濟新優勢”即為開篇之論,要充分發揮海量資料和豐富應用場景優勢,促進數字技術與實體經濟深度融合,賦能傳統産業轉型更新,催生新産業新業态新模式,壯大經濟發展新引擎。
1.新型數字金融需要“雲原生”作為新動力
2020年數字經濟在國民GDP的占比已經超過四成,數字化已經成為社會發展的強大動能。“十四五”時期,中國将邁進數字化的高品質發展階段,一系列的新型金融域态(普惠金融、綠色金融、資料金融、科技金融、産業金融、跨境金融、農村金融、數字供應鍊金融等)都需要強大的數字化動力來支援。計算是數字世界的動力,雲計算是數字時代的“水電煤”。雲原生,究其根本意義,是規範“用雲”的架構模式、技術标準,是把雲計算真正變成“水電煤”的關鍵所在。未來的一切應用應該是按照雲原生規範建構的,通過雲原生工具,可以即插即用地對接到任何一朵雲上而獲得澎湃動力。

數字金融對應用的靈活性、彈性與韌性,提出了更高要求。在疫情下,許多金融機構快速建構雲上營業廳、音視訊空中服務、數字化場景金融、産業金融服務,為個人消費者、小微企業、三農扶貧等提供便捷的數字金融服務。很多開發者需要在短時間内上線新系統,快速伸縮以滿足突增的通路量,確定系統在任何情況下持續正常運轉。為此,開發者付出了無數個不眠之夜。同時,金融雲原生架構也被推到了前所未有的高度和熱度。究其核心原因,還是雲原生能夠讓研發的關注點從基礎設施進一步分離,聚焦上層業務邏輯實作,帶來對業務的快速支援、創新能力。
2.“雲原生”推動金融技術架構更新
縱觀我國銀行IT四十年發展史,大緻經曆了分散式架構,集中式架構,分布式+集中式雙核架構,再到全面分布式雲原生架構的多次變遷。20 世紀80 年代,銀行開始引入主機系統,此時建構的業務系統高度分散,效率極低。每個地級市都有自己的業務系統,彼此業務無法聯通,一筆跨地區彙款需要多級清算,流程如下:一個城市的網點——市分行——省分行——總行——目标地省分行——市分行——網點,而現在是實時轉賬、零級清算、秒級到賬。90 年代末,随着計算機性能的提升和網絡的發展,銀行對資料集中的需求愈發強烈,大集中架構拉開帷幕。2010年左右,分布式架構漸漸進入主流視野,集中與分布式融合的架構成為目前銀行IT的主流架構。而随着2020年疫情帶來的線上業務劇增,越來越多銀行開始将分布式雲原生架構作為下一代銀行核心技術架構。
分布式架構是雲計算的實作形式,雲計算是傳統分布式的延伸。面對數字化業務的井噴,接入并發量和資料量仍呈指數上升的現狀,分布式雲原生與雲計算是一對最佳組合,分布式雲原生面向應用的延伸,雲計算改善了分布式的易管理性、使用者友好性和彈性。核心銀行系統入雲是大勢所趨,中國資訊通信研究院資料顯示,目前我國41.18%的金融機構已應用雲計算,46.80%的金融機構計劃應用雲計算,共占比87.98%。金融機構采用雲計算時,采用分布式雲原生技術無疑是最優選擇,能讓應用能最大限度享受到雲計算的紅利。
雲原生(Cloud Native)是一個舶來詞。它是一個思想的集合,包括DevOps、持續傳遞(Continuous Delivery)、微服務(MicroServices)、靈活基礎設施(Agile Infrastructure)、康威定律(Conways Law)等,以及根據商業能力對公司進行重組。Cloud Native既包含技術(微服務,靈活基礎設施),也包含管理(DevOps,持續傳遞,康威定律,中台,重組等)。對金融機構而言,Cloud Native雲原生可以說是一系列技術架構、管理方法的集合。為什麼現在雲原生這麼火了?這和企業數字化這一大背景息息相關,企業數字化在2020年疫情後提上整個社會發展的日程,它指的是企業和數字技術的全面融合,最根本的點在于用數字化的雲平台能力,将企業各個要素和環節進行高效協同和疊代創新,包括技術、業務、人才、資本等等。
在金融機構數字化轉型的過程中,以雲原生為突破是打造金融數字化韌性一個重要因素。數字韌性被越來越多的金融機構所提及,什麼是數字化韌性?當應對外界環境變化,或者客戶需求變更時,軟體産品需要有彈性和韌性,要有反應足夠快的數字化體系,而雲平台是整個體系的一個關鍵要素,雲原生則是雲平台的技術核心,向下可以排程包括算力和網絡等資源,向上承載各個行業業務的應用開發、部署和運作。是以雲原生是整個數字化轉型的核心或者驅動,它是金融行業實作技術和業務融合最關鍵的黏合劑。
在金融的業務和技術的融合過程中,以雲原生為核心的架構重塑是一個不斷演進的過程(金融雲原生架構不斷結合演進),由原來1.0的應用遷移上雲到2.0時代以業務為中心逐漸雲原生化,在這一過程中,不管是基礎設施的重構(多活災備、分布式雲),還是算力排程(單元化、離線上混部),應用架構的重構(中台化+低代碼重構),都是金融雲原生架構演進的核心。
此外,随着業務的複雜化不斷增加,整個系統的研發效率(研發态)、服務規模(運作态)、穩定可靠(運維态)成為一個“三元悖論”。如何實作在三者間的平衡是一個難題,一些新技術(廣義雲原生)提供了新的解決思路,比如Serverless、中台化、低代碼、混沌工程等,這些廣義雲原生架構的落地,為銀行基礎架構在研發效能、服務治理、容量管理、運維管控等能力向自動化、低代碼化、智能化拓展打開了更廣闊的發展空間。
雲原生能将過去在應用架構層做的大量工作,尤其是彈性與韌性,下沉到雲平台層去實作,讓應用隻需要關注客戶體驗與業務邏輯。是以,我們有理由相信,銀行的主流技術架構将從以IOE為核心的集中式架構向廣義的雲原生架構演進。未來金融機構在基于雲原生的應用,将天然具備彈性與韌性。
二、金融雲原生架構演進參考路徑
雲原生可能是“銀彈”,但架構轉型絕非一蹴而就。
業界普遍認為,雲原生架構能加快需求傳遞、降低營運成本、支援容量伸縮、保證業務連續,進而使組織能更從容地接入創新技術、促進管道觸達。但事實上,金融系統的架構轉型不太可能一蹴而就,新興技術同傳統架構的融合并存在許多方面帶來了更大挑戰。以銀行為例,從80、90年代開始建設電子銀行、網上銀行到移動智慧銀行,新的業務需求層出不窮,面臨着很多架構轉型和變革的機會。銀行的IT化程度很高,也看重雲原生和分布式架構對于業務和整體IT傳遞的價值,但是系統越是成熟,曆史包袱就越重,有着大量非常關鍵的遺留系統,實施架構轉型時則無疑将面臨許多關鍵的重大挑戰。
在目前曆史時期,有非常多的銀行機構開始考慮逐漸從單體架構向分布式架構進行融合與更新。圍繞着業務價值作IT架構傳遞,絕不隻是看哪種技術比較時髦或功能強大,這背後的選型元素涵蓋了服務化架構、靈活傳遞、API平台開放、綜合成本等話題,也包含着落地可行性和生态成熟度等方面,是以更需要關注這套技術産品的長期願景和發展規劃,比如有沒有雲規劃和戰略、有沒有提供一整套從經典架構遷移至先進架構的轉型路徑方法實踐,更看重在業内有沒有真實參考案例和服務體系支撐。
好的軟體架構是進化來的,而不是由一開始就能夠進行完整的巨細靡遺的設計和按圖制造。金融IT架構轉型創新的前提是保證使用者體驗和現有業務連續,確定整體穩妥可控,對此我們分享三個原則觀點:
增量化傳遞(Incremental):架構落地不追求一步到位,由簡單入手,漸進式攻克,每一步都為未來奠定基礎。
穩健型創新(Sustainable):金融的本質是風險識别和管理,而對于金融IT架構來說技術風險亦是重中之重。任何一筆交易處理的差錯背後都有可能導緻不可預計的資金損失。需要建立一支專業的技術風險團隊(SRE,Site Risk Engineering),確定從系統架構平台到風險文化機制,在架構設計、産品開發、變更上線、穩定性評估到故障定位恢複等等環節,都能全生命周期地確定風險品質控制,對任何系統變更作兜底保障。
演進式規劃(Evolutionary):談到網際網路時代的技術和産品疊代,我們常常看到一個觀點,鼓勵“快速試錯”。精益創新和靈活疊代固然重要,然而在嚴苛金融場景下進行關鍵架構決策時,“試錯”的代價往往會變的難以承受。從我們的實踐經曆來看,演進式規劃的本質是,邁向一個架構願景目标時一定要對關鍵架構決策進行原型驗證,為此還要最大程度上在實際環境中保證可行性。
大道至簡卻知易行難,基于阿裡的實踐經驗,我們将這些金融架構穩妥轉型的三大原則與金融雲原生技術路徑結合,形成一套金融雲原生演進參考路徑。尋求最平衡的架構發展路徑以滿足業務發展和嚴苛場景考驗,而不僅僅關注技術本身。幫助金融機構逐漸實作應用架構從單體微服務改造,走向單元化,實作同城雙活再到異地多活的變遷。在此過程中,需要同步關注技術風險,形成中台架構,不斷把技術中台和業務中台沉澱下來。我們相信這些原則、方法具有一定的通用性,尤其是适合作為金融IT架構變遷的參考路徑。
三、金融雲原生架構原則
雲原生架構演進作為一種架構模式,金融機構需要通過若幹原則來對應用架構進行核心控制。這些原則可以幫助技術主管在進行技術架構疊代時具備更加整體的視角。
1.服務化原則
随着金融業務的數字化不斷發展,單體應用能夠承載的容量将逐漸到達上限,即使通過應用改造來突破垂直擴充(Scale Up)的瓶頸,并将其轉化為支撐水準擴充(Scale Out)的能力,在全局并發通路的情況下,也依然會面臨資料計算複雜度和存儲容量的問題。是以,需要将巨石型單體應用進行服務化拆分,按業務邊界重新劃分成分布式服務子產品,使應用與應用之間不再直接共享資料,而是通過服務調用(約定好的契約進行通信)來互動,以提高擴充性。通過服務化架構把不同生命周期的子產品分離出來,分别進行業務疊代,避免疊代頻繁子產品被慢速子產品拖慢,進而加快整體的進度和穩定性。同時服務化架構以面向接口程式設計,服務内部的功能高度内聚,子產品間通過公共功能子產品的提取增加軟體的複用程度。
分布式環境下的限流降級、熔斷隔倉、灰階、反壓、零信任安全等,本質上都是基于服務流量(而非網絡流量)的控制政策,是以雲原生架構強調使用服務化的目的還在于從架構層面抽象化業務子產品之間的關系,标準化服務流量的傳輸,進而幫助業務子產品進行基于服務流量的政策控制和治理,不管這些服務是基于什麼語言開發的。
2.彈性原則
傳統銀行的大部分系統部署上線需要根據業務量的估算,準備一定規模的機器,從提出采購申請,到供應商洽談、機器部署上電、軟體部署、性能壓測,往往需要好幾個月甚至一年的周期;而這期間如果業務發生變化了,重新調整也非常困難。彈性則是指系統的部署規模可以随着業務量的變化自動伸縮,無須根據事先的容量規劃準備固定的硬體和軟體資源。好的彈性能力不僅縮短了從采購到上線的時間,讓企業不用操心額外軟硬體資源的成本支出(閑置成本),降低了企業的IT 成本,更關鍵的是當業務規模面臨海量突發性擴張的時候,不再因為平時軟硬體資源儲備不足而“說不”,保障了企業收益。
3.高容錯(面向失敗的設計)原則
根據“墨菲定律” — “懷疑一切、任何節點失敗都會發生!” (“Anything that can go wrong will go wrong” )。分布式系統可能受到硬體、軟體等因素、或者内部和外部的人為破壞。我們在應用架構設計時需要時刻關注系統的可用性,關注潛在的“黑天鵝”風險。在業界有一個非常流行的隐喻:“Pets vs. Cattle”,寵物和家畜。我們面對一個架構選擇:對于應用所在伺服器我們是需要精心伺候,防止系統當機,出現問題後不惜一切代價搶救(Pet);還是傾向于出現問題後,可以通過簡單抛棄和替代進行恢複(Cattle)。
雲原生架構的建議是:允許失敗發生,確定每個伺服器,每個元件都能夠在不影響系統的情況下發生故障并且具備自愈和可替代能力。立即失效(Fail fast and Fail small)是另一個雲原生系統設計原則,它背後的哲學是既然故障無法避免,問題越及早暴露、應用越容易恢複,進入生産環境的問題就越少。Fail small 的本質在于控制故障的影響範圍——爆炸半徑,關注點将從如何窮盡系統中的問題轉移到如何快速地發現和優雅處理失敗。這個原則在架構設計和服務設計上都需要關注。
4.可觀測原則
今天大部分金融機構的軟體規模都在不斷增長,原來單機可以對應用做完所有調試,但在分布式環境下需要對多個主機上的資訊做關聯,才可能回答清楚服務為什麼當機、哪些服務違反了其定義的SLO、目前的故障影響哪些使用者、最近這次變更對哪些服務名額帶來了影響等等,這些都要求系統具備更強的可觀測能力。随着雲原生技術的發展,基于異構微服務架構的場景會越來越多、越來越複雜,而可觀測性是一切自動化能力建構的基礎。隻有實作全面的可觀測性,才能真正提升系統的穩定性、降低 MTTR。是以,如何建構系統資源、容器、網絡、應用、業務的全棧可觀測體系,是每個金融機構雲原生架構轉型都需要思考的問題。
5.韌性原則
韌性是指當軟體所依賴的軟硬體元件出現異常時,軟體所表現出來的抵禦能力。這些異常通常包括硬體故障、硬體資源瓶頸(如 CPU 或網卡帶寬耗盡)、業務流量超出軟體設計承受能力、影響機房正常工作的故障或災難、所依賴軟體發生故障等可能造成業務不可用的潛在影響因素。
當業務上線後,最不能接受的就是業務不可用,讓使用者無法正常使用軟體,影響體驗和收入。韌性代表了當軟體所依賴的軟硬體元件出現各種異常時,軟體表現出來的抵禦能力,這些異常通常包括硬體故障、硬體資源瓶頸(如CPU/ 網卡帶寬耗盡)、業務流量超出軟體設計能力、影響機房工作的故障和災難、軟體bug、黑客攻擊等對業務不可用帶來緻命影響的因素。韌性從多個次元诠釋了軟體持續提供業務服務的能力,核心目标是提升軟體的MTBF(Mean Time Between Failure,平均無故障時間)。從架構設計上,韌性包括服務異步化能力、重試/ 限流/ 降級/ 熔斷/ 反壓、主從模式、叢集模式、AZ内的高可用、單元化、跨region容災、異地多活容災等。
随着數字化程序的加快,越來越多的數字化金融業務成為整個社會經濟正常運轉的基礎設施,但随着支撐這些數字化業務的系統越來越複雜,依賴服務品質不确定的風險正變得越來越高,是以系統必須進行充分的韌性設計,以便更好地應對各種不确定性。尤其是在涉及核心行業的核心業務鍊路(如金融支付鍊路、交易鍊路)、業務流量入口、依賴複雜鍊路時,韌性設計至關重要。
6.所有過程自動化原則
技術往往是把“雙刃劍”,容器、微服務、DevOps、大量第三方元件的使用,在降低分布式複雜性和提升疊代速度的同時,因為整體增大了軟體技術棧的複雜度群組件規模,是以不可避免地帶來了軟體傳遞的複雜性,如果這裡控制不當,應用就無法體會到雲原生技術的優勢。通過IaC(Infrastructure as Code)、GitOps、OAM(Open Application Model)、Kubernetes operator 和大量自動化傳遞工具在CI/CD 流水線中的實踐,一方面标準化企業内部的軟體傳遞過程,另一方面在标準化的基礎上進行自動化,通過配置資料自描述和面向終态的傳遞過程,讓自動化工具了解傳遞目标和環境差異,實作整個軟體傳遞和運維的自動化。
7.零信任原則
零信任安全針對傳統邊界安全架構思想進行了重新評估和審視,并對安全架構思路給出了建立議。其核心思想是,預設情況下不應該信任網絡内部和外部的任何人/ 裝置/ 系統,需要基于認證和授權重構通路控制的信任基礎,諸如IP 位址、主機、地理位置、所處網絡等均不能作為可信的憑證。零信任對通路控制進行了範式上的颠覆,引導安全體系架構從“網絡中心化”走向“身份中心化”,其本質訴求是以身份為中心進行通路控制。零信任第一個核心問題就是Identity,賦予不同的Entity 不同的Identity,解決是誰在什麼環境下通路某個具體的資源的問題。在研發、測試和運維微服務場景下,Identity及其相關政策不僅是安全的基礎,更是衆多(資源,服務,環境)隔離機制的基礎;在員工通路企業内部應用的場景下,Identity 及其相關政策提供了靈活的機制來提供随時随地的接入服務
8.架構持續演進原則
今天技術和業務的演進速度非常快,很少有一開始就清晰定義了架構并在整個軟體生命周期裡面都适用,相反往往還需要對架構進行一定範圍内的重構,是以雲原生架構本身也應該和必須是一個具備持續演進能力的架構,而不是一個封閉式架構。除了增量疊代、目标選取等因素外,還需要考慮組織(例如架構控制委員會)層面的架構治理和風險控制,特别是在業務高速疊代情況下的架構、業務、實作平衡關系。雲原生架構對于建立應用而言的架構控制政策相對容易選擇(通常是選擇彈性、靈活、成本的次元),但對于存量應用向雲原生架構遷移,則需要從架構上考慮遺留應用的遷出成本/ 風險和到雲上的遷入成本/ 風險,以及技術上通過微服務/ 應用網關、應用內建、擴充卡、服務網格、資料遷移、線上灰階等應用和流量進行細顆粒度控制。
四、金融雲原生技術趨勢與核心系統能力
1.金融雲原生趨勢
就金融雲原生發展而言,架構會朝着“四化”的方向發展。首先是服務統一編排化,K8S統一雲原生基礎設施資源管理成為雲原生的作業系統;其次是服務治理Mesh化,解耦非業務功能将中間件能力下沉,Mesh層将成為連接配接應用和基礎設施的橋梁;第三是應用開發Serverless化,雲原生的發展是從底下往上,越來越接近業務,降低開發和運維的複雜性及成本,縮短傳遞周期,專注高價值的業務開發,讓業務開發更便捷、簡單;第四是服務中台和低代碼化,通過将公共領域能力聚合到中台服務,中台來提供一些核心能力架構,低代碼是中台的外延,讓業務部門與中台服務進行協作與互動的業務快速傳遞平台。
未來雲原生需要結合大資料等來真正提高營運的價值。雲原生更多是為應用而生,而應用本身是無狀态的,如果要讓雲原生跟營運更深地結合在一起,需要跟大資料結合,包括雲原生資料庫等等,隻有這樣雲原生才能從中台往上發展,真正穿透到企業的業務和營運層次,真正為整個數字化的轉型提供最直覺和價值鍊的作用,進而真正重塑價值鍊。在此過程中,最終雲原生可以跟IOT、大資料等結合,來實作技術鍊、價值鍊、資料鍊全鍊條的打通。
2.金融雲原生架構5大核心域
金融雲原生整理的能力分為:設計域、研發域、運作域、運維域、災備域5大領域。
l 設計态:采用領域驅動設計等與微服務架構體系天然親和的設計方法,并在設計過程中,關注資料一緻性、服務顆粒度等問題,貫徹分布式架構設計的設計原則和規範。
l 研發态:面向研發人員,提供一站式的研發生産力工具,屏蔽分布式技術的複雜性,提升研發人員體驗和生産率。形成達成廣泛共識的工程模闆,降低組織認知成本。
l 運作态:面向應用,分布式應用運作的基礎設施,覆寫應用全生命周期,包括建立、部署、監控、變配,支援多種形态的應用互動方式和資料存儲形态。底層支援多種形态的計算方式以及其上的排程方式。
l 運維态:面向運維人員,解決分布式架構的先天複雜性,廣泛使用工程手段,保證系統整體可用性水準。
l 災備态:面向災難,提供對節點級、機房級、城市級災難的容忍能力。
最後,對于金融企業而言,雲原生是數字創新的最短路徑。雲原生對于金融機構技術演進的價值在于:首先是基礎設施的雲化,以容器為代表,将基礎設施非常平滑地搬到雲上(私有雲、公有雲、混合雲),幫助金融機構完成基礎設施的雲化。二是核心系統的網際網路化,雲原生将網際網路技術以标準化的方式傳遞給傳統線下企業,網際網路的技術、思路、理念、組織形态可助力傳統金融機構能力更新,實作低耦合、可擴充、小步快跑、快速疊代、靈活開發、業務快速上線等。三是雲原生驅動應用架構向現代化演進。我們常說“一雲多芯”、“雲邊一體”等理念,就是為了解決企業資料化、智能化、移動化問題。在雲原生技術體系下,雲原生可以更好地推動金融機構的IT體系變革。四是多中台。雲原生幫助金融機構建構業務中台、資料中台、AI中台等,因為數字化轉型的關鍵就是用資料将業務進行數字化和智能化更新,進而更好地驅動業務疊代和創新。
作者簡介:
劉偉光,阿裡巴巴集團副總裁,阿裡雲新金融&網際網路事業部總經理。畢業于清華大學電子工程系。加入阿裡雲之前,在螞蟻金服負責金融科技的商業推廣和生态建設工作以及螞蟻區塊鍊的商業拓展工作;他在企業軟體市場深耕多年,曾經建立Pivotal軟體大中華區分公司,開創了企業級大資料以及企業級雲計算PaaS平台的市場先河。在建立Pivotal中國軟體公司之前,劉偉光曾經擔任EMC公司大中國區資料計算事業部總經理,并在Oracle公司工作多年,曾經建立了Exadata大中國區的産品事業部并擔任事業部總監。
聯系方式:18814865321
作者過往部分已發表文章及觀點:
1、疫除即發的“雲金融”時代| 劉偉光-《财經》
https://news.caijingmobile.com/article/detail/412971?source_id=40&share_from=moments&from=timeline&isappinstalled=02、中小銀行平台化戰略實施路徑| 劉偉光-《中國金融》
http://finance.sina.com.cn/money/bank/yhpl/2020-04-26/doc-iirczymi8398466.shtml3、全分布式架構引領核心系統架構轉型新趨勢| 劉偉光-《金融電子化》
https://mp.weixin.qq.com/s/XK4NNCRPVoGQ7kYseSng9g4、深度|螞蟻金服副總裁劉偉光:淺析銀行數字化轉型路徑
https://www.infoq.cn/article/IJ0OtqycwezQA5aIBp8B5、阿裡雲:雲+ FinTech助力銀行數字化轉型| 劉偉光-《銀行數字化轉型:路徑與政策》(機械工業出版社)
https://mp.weixin.qq.com/s/0YjlLGWrS8TgNfzHS_5uKA6、阿裡雲劉偉光:真正的資料中台是什麼?
https://baijiahao.baidu.com/s?id=1674640930147235499&wfr=spider&for=pc