雲計算

新金融分佈式架構之SOFAStack解決方案

本文始發於:雲棲社區
時間:2020-06-10
原文鏈接:https://yq.aliyun.com/articles/764640

金融行業正在流淌著一股去IOE,去集中化的IT架構轉型洪流。我有幸參與到這股洪流中,見證這一重大變革。以下是我對這股洪流的一些思考和想法。

1.當前主流金融的IT架構

眾所周知,目前大部分金融機構的IT架構還是以“IOE”的IBM大小型機,Oracle數據庫,EMC存儲為基礎的集中式架構。這種架構有以下優點:

  • 成熟度高
  • 可靠性高
  • 可用性高
    這些產品目前承載著世界上眾多金融行業的核心繫統,而這些產品的廠家在這個領域有幾十年的積累,產品的成熟度,可靠性,可用性可見一斑。

不過這種架構也有三大缺點:

  • 第一個就是成本高。硬件,軟件,服務都價格不菲。這些費用在金融機構躺著賺錢的時代還是可以接受的,但是在現在以及未來瞬息萬變的時代,金融機構的經營形勢會越發趨緊,那麼這一塊IT架構支出就會成為金融機構的負擔。
  • 第二個就是IOE的東西都是黑盒,其核心科技就像一個迷。萬一再來一個類似“稜鏡門”,“華為門”的“IOE門”,金融IT架構的處境可想而知。雖說可能性不大,但是不怕一萬就怕萬一。所以,自主可控才不會受制於人。
  • 第三個就是可擴展性較差。這種架構無法做到快速,無限制的擴展。之前也提到,未來是瞬息萬變的時代,消費模式會從工廠生產什麼,消費者消費什麼的模式轉變到消費者海量碎片化需求主導的模式。那麼IT架構需要能支持隨時擴展以便適應業務的快速發展。

2.新金融的IT架構

為了避免集中式架構的三大缺點,以互聯網銀行為代表的新金融IT架構浮出水面。最開始的思路就來源於互聯網+:將互聯網的架構加上金融架構。這種模式吸收了互聯網架構的優勢,同時保留了金融行業的高標準要求。

這種IT架構基於開放式的平臺,採用廉價的PC服務器集群,形成分佈式的架構,在有高性能,高擴展性,低成本的基礎上,同時滿足金融架構的高可用,低風險,強管控的要求。
image.png

圖1:新金融IT架構思路

在新金融的IT架構框架下,大量廉價的PC服務器集群(以開源的Linux系統為主)替代了大小型機,很好的詮釋了團結就是力量。正所謂三個臭皮匠頂一個諸葛亮,整合的策略對了,三個臭皮匠的能量就能聚合起來發揮出巨大的能量。同時,將集中式的服務拆分成微服務,部署在大量PC服務器上能實現高性能,高擴展性,低成本,高可用的要求。

以mysql為代表的開源數據庫替代了封閉的Oracle數據庫。我們不光能使用這些開源數據庫,查看源代碼,而且我們還能貢獻我們的智慧,讓它變得更好。雖然單個這類數據庫的性能可能沒有Oracle的好,但是將他們整合起來形成分佈式數據庫,然後使用分庫分表的手段可以達到高性能,高擴展性,低成本,高可用,低風險的要求。

分佈式存儲技術在某些程度上可以替代EMC的存儲。它最大的特點就是高可用性,高可擴展性和高數據可靠性。其典型的開源產品有Google FS,HDFS,CephFS,GlusterFS。

3.金融場景為什麼要考慮使用新架構?

除了上文提到的成本問題,自主可控問題,高可擴展性問題外,我認為還有以下原因促使金融機構要考慮使用新的架構。

  • 金融的業務服務範圍的擴大,業務趨於互聯網化,生活場景化,所以需要有架構可以支撐其短時間內轉向和擴展。比如,互聯網化的熱銷理財產品,網絡秒殺的場景,銀行App生活繳費,吃喝玩樂,結賬優惠場景會逐漸增多。
  • 客戶連接的複雜化,除了櫃檯,電話連接,還會有海量用戶隨時從各種地方,各種設備的連接。這些連接對內部系統連接數,特別是Session連接數和數據庫連接數來說是巨大的挑戰。金融機構需要新的架構來承載海量的連接,防止系統被打垮。
  • 服務的多樣化,從櫃面接客,電話銀行轉換成櫃面,電話,公眾號,24*7的在線智能服務,千人千面服務等。多樣化的服務接口需要分佈式架構進行獨立性能保障,訪問隔離等。

4.分佈式架構是否可以滿足金融場景的要求?

前面談了集中式架構的缺點,有人會問分佈式架構就沒有缺點了嗎?似乎分佈式系統只能同時滿足一致性,可用性,分區容錯性三者之二吧?確實沒錯。

對於金融場景來說,高可用,分區容錯性不可或缺,而且一致性也需要得到保證(畢竟誰也不想看到轉賬到朋友的錢沒有到賬,結果自己的餘額卻被扣掉了吧)。

但是,需要注意的是,這種三選二的說法其實是按照集中式架構的模式照搬到分佈式架構而言的。試想一下,一臺強大的數據庫被拆分成了N臺數據庫,這N臺數據庫之間的數據需要時間同步,當異常發生時,可能就產生了數據的不一致性。

那麼我們換一個角度思考一下這個問題。我們將原來的數據庫拆分成了N臺數據庫之後,每臺數據庫也只處理原來業務的1/N,同時其和其他處理(N-1)/N業務的數據庫之間不進行同步,這樣是否就可以解決這個一致性的問題了呢?答案是顯而易見的。

這時候有同學又要問了,那如何能保證每臺數據庫只處理原來業務的1/N?同時數據庫的高可用怎麼辦?

  • 對於第一個問題,支付寶,網商銀行給出了答案:使用LDC(單元化)架構,一個能完成所有業務操作的自包含集合,在這個集合中包含了所有業務所需的所有服務,以及分配給這個單元的數據。將業務按照一定維度進行拆分,拆分成N份,每份由一個單元的服務和數據庫處理即可。
  • 對於第二個問題,我們可以給主數據庫配上兩個從數據庫,同時實現他們之間的強一致性同步。雖說性能上稍微有些下降,但是卻能使整個分佈式系統滿足金融場景的特殊需求。

image.png

圖2:集中式架構向單元化架構演進

此外,從上圖也可以看出LDC架構另一個好處就是天然自帶灰度屬性。新發布的功能可以在某些特殊的業務單元中進行灰度驗證,降低因為新版本引發的故障的影響範圍。

綜上所述,分佈式架構理論上可以滿足金融場景的特殊需求。

5.阿里的解決方案 - SOFAStack

阿里旗下的支付寶,網商銀行的這套LDC單元化架構依託於SOFAStack™(Scalable Open Financial Architecture Stack)。它包含了構建金融級雲原生架構所需的各個組件,也是在金融場景裡錘鍊出來的最佳實踐。提供微服務應用開發、部署發佈、項目管理、監控運維、容災高可用等全棧式解決方案,併兼容Dubbo、Spring Cloud等微服務運行環境,助力客戶各類應用輕鬆轉型分佈式架構。

在宏觀架構層面,SOFAStack提供單機房向同城雙活、兩地三中心、異地多活架構演進路線,使系統容量能在多個數據中心內任意擴展和調度,充分利用服務器資源,提供機房級容災能力,保證業務連續性。

異地多活單元化架構是“三地五中心”部署模式的技術創新。在該架構解決方案下,可以避免跨機房、跨城市訪問的延遲,真正實現異地多活部署,不但消除了傳統“兩地三中心”架構中的單獨冷備中心,並提升了災備高可用能力,無論在成本還是在伸縮性、高可用方面,都帶來了巨大的優勢。
image.png

圖3:SOFAStack提供的容災架構演進路線

在微服務層面,SOFAStack包括了一個面向未來架構的微服務平臺,支持異構應用融合遷移。
微服務平臺通過SOFA微服務和Service Mesh微服務,提供了既支持SOFA框架又支持Service Mesh架構的微服務管理和治理能力,解決用戶在技術轉型期間與未改造的遺留系統相互之間打通和過渡問題,幫助金融機構平穩地從傳統的集中式、微服務架構演進到雲原生架構。
image.png

圖4:SOFAStack的面向未來架構的微服務平臺

在分佈式應用組件層面,SOFAStack還提供了分佈式中間件套件以滿足傳統金融架構的平滑遷移、融合適配,以穩妥應對業務升級變更,並積極應對金融交易系統所面臨的服務和數據擴展性、事務一致性、秒級容災、彈性供給與調度等關鍵技術挑戰。
image.png

圖5:SOFAStack的分佈式中間件套件

在應用生命週期管理層面,SOFAStack提供了一個多模應用PaaS平臺,SOFAStack CAFE(Cloud Application Fabric Engine)雲應用引擎。它提供應用管理、流程編排、應用部署、集群運維、監控分析、容災應急等全生命週期管理的PaaS平臺能力,滿足金融場景中經典和雲原生架構的運維需求,幫助傳統架構平滑過渡、保障金融技術風險。
image.png

圖6:SOFAStack的多模應用PaaS平臺SOFAStack CAFÉ雲應用引擎

6.結語 - 架構未來將何去何從?

所謂天下大勢,合久必分,分久必合。在筆者看來,架構也是如此。現在,我們正處在合久必分的洪流中。但是未來,可能是較長之後的未來,未必不會出現分久必合,合久必分的反覆。

比如說,未來,我們掌握了自我可控的性價比高的強大核心計算技術;

比如說,量子計算,生物計算,光子計算,超導計算等有了巨大突破;

那麼,那時候未必不會出現分久必合的局面。

再遠一些的未來,由於數據範圍擴大,我們可能不光要計算一個省的數據,更可能需要計算一個國,甚至整個地球的數據;

再遠一些的未來,由於數據維度擴大,數據量也會爆炸;

那麼,那時候未必不會再次出現合久必分的局面。

讓我們拭目以待吧!

作者:李聰

阿里雲智能GTS-SRE團隊金融線技術服務經理

曾就職於微軟企業客戶服務部門,擅長雲計算、聯盟認證、域認證、證書認證等。現就職於阿里雲智能 SRE 金融線技術服務經理團隊,主要負責金融線客戶的中間件(SOFA、RocketMQ、EDAS)解決方案、開發諮詢等工作。

我們是阿里雲智能全球技術服務-SRE團隊,我們致力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基於雲構建更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運行更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿里雲SRE技術學院釘釘圈子,和更多雲上人交流關於雲平臺的那些事。

image.png

Leave a Reply

Your email address will not be published. Required fields are marked *