序言
數(shù)字金融時代的云原生架構(gòu)轉(zhuǎn)型
步入數(shù)字金融時代,“云原生架構(gòu)”作為金融 IT 架構(gòu)的關(guān)鍵發(fā)展趨勢已經(jīng)成為業(yè)界共識,但 IT 架構(gòu)轉(zhuǎn)型絕不是一蹴而就的,在積極探索和應(yīng)用以“云原生”為代表的新興技術(shù)的同時,必須考慮與傳統(tǒng)模式和技術(shù)融合并存,沿著一條穩(wěn)妥可落地路徑進行創(chuàng)新變革,確保架構(gòu)轉(zhuǎn)型的價值交付能夠穩(wěn)妥支撐甚至積極引領(lǐng)業(yè)務(wù)創(chuàng)新。
在螞蟻集團內(nèi)部架構(gòu)變遷和對外金融科技開放的過程中,我們一直在持續(xù)探索,并在不斷鞏固總結(jié)出一條金融級云原生的架構(gòu)落地路徑,順應(yīng)廣大金融機構(gòu)分布式改造和IT架構(gòu)穩(wěn)妥創(chuàng)新升級的需求。希望通過本文作為一個開端,將螞蟻集團的云原生實踐案例和經(jīng)驗持續(xù)和大家進行積極開放的交流分享,與行業(yè)共同推動架構(gòu)轉(zhuǎn)型升級與數(shù)字金融創(chuàng)新。
什么是云原生
許多行業(yè)的領(lǐng)導(dǎo)者和新興創(chuàng)業(yè)機構(gòu),其技術(shù)架構(gòu)都有普遍的共同點:以移動為核心增強用戶體驗、快速敏捷創(chuàng)新、服務(wù)持續(xù)可用、基礎(chǔ)架構(gòu)可擴展。這也是以金融為代表的傳統(tǒng)機構(gòu) IT 數(shù)字化轉(zhuǎn)型的目標,恰好也是云原生架構(gòu)定位的價值所在。
云原生(Cloud Native)這個概念名詞最初于 2013 年在技術(shù)社區(qū)中誕生,代表著一套先進架構(gòu)理念的思想集合,包括了微服務(wù)、敏捷、DevOps 、持續(xù)集成部署、容器、可靠、高彈性、易擴展等領(lǐng)先的概念和特性。隨后社區(qū)中涌現(xiàn)了許多非常優(yōu)秀的項目,為了統(tǒng)一標準,Linux 基金會旗下的 CNCF(云原生計算基金會)應(yīng)運而生。
2018 年 6 月,CNCF 正式對外公布了云原生定義的 1.0 版本:“云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動態(tài)環(huán)境中,構(gòu)建和運行可彈性擴展的應(yīng)用。云原生的代表技術(shù)包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式 API。”
企業(yè)的云原生架構(gòu)演進之路
為充分理解云原生這個概念,并思考傳統(tǒng)企業(yè)架構(gòu)邁向云原生的轉(zhuǎn)型升級路徑,我們先簡單回顧云計算的行業(yè)發(fā)展和企業(yè)架構(gòu)演進的一般情況。縱觀全局,可以把傳統(tǒng)企業(yè)架構(gòu)邁向云計算架構(gòu)的演進之路粗粒度地抽象成三個階段:
一、云機房(Cloud-Based),指的是把機房遷移到云(包括公有云或?qū)S性疲┑牡谝徊剑谔摂M化技術(shù)使資源利用率和運維效率有所提高,但依舊需要重點關(guān)注中間件和底層平臺,每一部分都要考慮高可用、擴展、交付部署等因素。
二、云就緒(Cloud-Ready),基本完成去中心的服務(wù)化改造,應(yīng)用無狀態(tài)化并與緩存、數(shù)據(jù)庫等持久化層分而治之,應(yīng)用服務(wù)規(guī)模擴大,需要有較成熟的 DevOps 和自動化工具平臺來統(tǒng)一管控。
三、云原生(Cloud-Native),通過微服務(wù)化架構(gòu)、容器和編排技術(shù)、DevOps 等技術(shù)實踐,加快應(yīng)用的交付和部署。通過對平臺能力的抽象和標準化,輔以微服務(wù)治理、敏捷的資源編排和管控技術(shù),使開發(fā)者的關(guān)注重心上移,更關(guān)注業(yè)務(wù)邏輯本身,做到“代碼定義一切”(Code Defined Infrastructure/Everything)。
在這三個發(fā)展階段演進的過程中,體現(xiàn)出了兩個關(guān)鍵趨勢:
趨勢一:從應(yīng)用上云歷程上看,架構(gòu)關(guān)注重心逐漸上移
隨著研發(fā)運維理念升級發(fā)展、相關(guān)工具平臺的規(guī)范成熟,底層和中層基礎(chǔ)平臺設(shè)施的能力逐漸抽象,并同上層業(yè)務(wù)應(yīng)用解耦,使得軟件團隊更加專注于業(yè)務(wù)邏輯的研發(fā)。基礎(chǔ)平臺技術(shù)和業(yè)務(wù)研發(fā)有了較清晰的邊界和協(xié)同機制。業(yè)務(wù)開發(fā)團隊因可不必太過關(guān)心業(yè)務(wù)系統(tǒng)的容災(zāi)、擴展等非功能特性,得以更加聚焦專注于業(yè)務(wù)邏輯的研發(fā)實現(xiàn)。
趨勢二:隨著容器和編排技術(shù)的成熟和統(tǒng)一,PaaS 層的技術(shù)方向也趨于穩(wěn)定
企業(yè)應(yīng)用遷移上云的歷程,亦代表著業(yè)界對云計算的認知和云計算技術(shù)本身成熟度的升級過程。業(yè)務(wù)應(yīng)用逐漸從對 IaaS 層的依賴,發(fā)展向?qū)?PaaS 層的依賴。這些 PaaS 領(lǐng)域平臺服務(wù)確實解決了許多現(xiàn)實應(yīng)用問題,降低對底層基礎(chǔ)設(shè)施的依賴,但業(yè)界也產(chǎn)生了困惑 - PaaS 產(chǎn)品本身很可能對應(yīng)用開發(fā)和運維產(chǎn)生侵入性,這對廠商來說是粘性,對用戶來說可能就是廠商綁定了。直到后來 Kubernetes 等容器編排技術(shù)的成熟,獲得了大部分社區(qū)和用戶的認可,行業(yè)才相對往一個較為統(tǒng)一的方向發(fā)展。
云原生可能是“銀彈”,但架構(gòu)轉(zhuǎn)型絕非一蹴而就
從技術(shù)圈的社區(qū)討論火熱程度來看,云原生、微服務(wù)、DevOps、敏捷、容器化等技術(shù)和理念似乎就是未來IT基礎(chǔ)設(shè)施建設(shè)的方向。業(yè)界普遍認為,云原生架構(gòu)能加快需求交付、降低運營成本、支持容量伸縮、保證業(yè)務(wù)連續(xù),從而使組織能更從容地接入創(chuàng)新技術(shù)、促進渠道觸達。同時從最基礎(chǔ)的定義上來看,面向云原生的架構(gòu)轉(zhuǎn)型貌似就像把大象放進冰箱一樣簡單:
微服務(wù)化 - 把大象拆分成許多小象;
容器化 - 打開冰箱門,把小象塞進冰箱;
動態(tài)編排 - 最優(yōu)化這些冰箱的排列以保證空間資源利用率。
在企業(yè)級特別是銀行等金融機構(gòu)架構(gòu)轉(zhuǎn)型方面,云原生是一個很好的方向,但在應(yīng)用這套新技術(shù)時,仍需要充分考量各項因素,以及使用一整套經(jīng)過驗證有效的落地路徑與方法來進行有力支撐。
事實上,金融系統(tǒng)的架構(gòu)轉(zhuǎn)型不太可能一蹴而就,新興技術(shù)同傳統(tǒng)架構(gòu)的融合并存在許多方面帶來了更大挑戰(zhàn)。以銀行為例,從 80、90 年代開始建設(shè)電子銀行、網(wǎng)上銀行到移動智慧銀行,新的業(yè)務(wù)需求層出不窮,面臨著很多架構(gòu)轉(zhuǎn)型和變革的機會。銀行的 IT 化程度很高,也看重云原生和分布式架構(gòu)對于業(yè)務(wù)和整體 IT 交付的價值,但是系統(tǒng)越是成熟,歷史包袱就越重,有著大量非常關(guān)鍵的遺留系統(tǒng),實施架構(gòu)轉(zhuǎn)型時則無疑將面臨許多關(guān)鍵的重大挑戰(zhàn)。
挑戰(zhàn)一:金融 IT 架構(gòu)如何進行穩(wěn)妥轉(zhuǎn)型?
“架構(gòu)”一詞原本來自建筑學(xué),其背后有著關(guān)于建筑的隱喻,從藍圖到地基再到封頂,在絕大多數(shù)建筑物拔地而起的發(fā)展過程中會盡量較少引入新的變量,因為對于建筑而言改變整體結(jié)構(gòu)或根基的成本非常高,軟件業(yè)從建筑業(yè)借用了“架構(gòu)”這個概念,我們把那些一旦改變就會傷筋動骨的系列組件構(gòu)成方式或設(shè)計決策集稱之“架構(gòu)(Architecture)"。傳統(tǒng) IT 架構(gòu)和早期的軟件研發(fā),喜歡運用“瀑布式研發(fā)”模型,自上而下進行充分論證和設(shè)計,最終按照設(shè)計藍圖的定義進行構(gòu)建,一旦設(shè)計成型之后很難改變,如果產(chǎn)生設(shè)計變更,則往往牽一發(fā)而動全身。
挑戰(zhàn)二:嚴苛金融場景下如何實現(xiàn)架構(gòu)平衡?
金融IT系統(tǒng)的架構(gòu)選型需要非常慎重,以銀行核心系統(tǒng)為例,系統(tǒng)選型幾乎就是一個公司戰(zhàn)略級別的決策,關(guān)乎著長期影響。在當(dāng)前歷史時期,有非常多的銀行機構(gòu)開始考慮逐漸從單體架構(gòu)向分布式架構(gòu)進行融合與升級。圍繞著業(yè)務(wù)價值作 IT 架構(gòu)交付,絕不只是看哪種技術(shù)比較時髦或功能強大,這背后的選型元素涵蓋了服務(wù)化架構(gòu)、敏捷交付、API 平臺開放、綜合成本等話題,也包含著落地可行性和生態(tài)成熟度等方面,因此更需要關(guān)注這套技術(shù)產(chǎn)品的長期愿景和發(fā)展規(guī)劃,例如有沒有公有云的業(yè)務(wù)戰(zhàn)略、有沒有提供一整套從經(jīng)典架構(gòu)遷移至先進架構(gòu)的轉(zhuǎn)型路徑方法實踐、在業(yè)內(nèi)有沒有真實參考案例和服務(wù)體系支撐。
挑戰(zhàn)三:如何應(yīng)對核心金融系統(tǒng)的關(guān)鍵技術(shù)挑戰(zhàn)?
在普惠金融和互聯(lián)網(wǎng)業(yè)務(wù)蓬勃發(fā)展的大背景下,具備大規(guī)模高并發(fā)交易處理的能力已成為銀行等金融機構(gòu)業(yè)務(wù)系統(tǒng)的標配。
核心金融系統(tǒng),在技術(shù)層面的挑戰(zhàn)有別于其他大規(guī)模互聯(lián)網(wǎng)系統(tǒng)。在數(shù)字化轉(zhuǎn)型的過程中,我們建議金融機構(gòu)的技術(shù)決策者,預(yù)先考慮可靠的基礎(chǔ)設(shè)施和彈性應(yīng)用數(shù)據(jù)架構(gòu),在不同業(yè)務(wù)壓力下依舊保證業(yè)務(wù)連續(xù)性和數(shù)據(jù)安全。而且在金融級交易系統(tǒng)中,對事務(wù)型的狀態(tài)數(shù)據(jù)一致性處理以及交易成本的要求更高,對客戶資金風(fēng)險和安全性處理更加復(fù)雜。在產(chǎn)品迭代速度不斷加快的背景下,還要有成熟的架構(gòu)、流程和風(fēng)險保障機制,在更新和維護應(yīng)用及軟硬件系統(tǒng)時,保證在任何極端嚴苛的業(yè)務(wù)壓力下始終保持絲般順暢的用戶體驗。
共建金融級云原生分布式架構(gòu)
基于螞蟻集團向云原生技術(shù)架構(gòu)演進中積累的十多年實踐經(jīng)驗,對于上述金融級 IT 系統(tǒng)在邁向云原生架構(gòu)的過程中面對的挑戰(zhàn),我們總結(jié)了以下幾點應(yīng)對策略:
從經(jīng)典 IT 架構(gòu)邁向金融級云原生架構(gòu)的轉(zhuǎn)型過程中,我們建議應(yīng)基于業(yè)務(wù)價值作增量式交付、穩(wěn)健型創(chuàng)新、演進式規(guī)劃,構(gòu)建中臺能力敏捷響應(yīng)市場需求。
在架構(gòu)和技術(shù)選型過程中,應(yīng)尋求最平衡的發(fā)展路徑以滿足業(yè)務(wù)發(fā)展和嚴苛場景考驗,而不僅僅關(guān)注功能本身。
基于云原生架構(gòu)的核心金融系統(tǒng),還應(yīng)面對并解決機房級的擴展能力、地區(qū)級的容災(zāi)能力、高并發(fā)條件下的分布式事務(wù)并做到靈活資源調(diào)度以保證成本最優(yōu)化。
同時,螞蟻集團將持續(xù)把多年的積累的經(jīng)驗和科技向行業(yè)分享和開放,提供架構(gòu)轉(zhuǎn)型的可落地路徑和相關(guān)洞見經(jīng)驗,也希望能同廣大技術(shù)社區(qū)和各行業(yè)的伙伴深入交流,共同探討和共建金融級云原生架構(gòu)標準和最佳實踐,使業(yè)務(wù)應(yīng)用能專注需求作敏捷交付,又能同時原生地擁有高可用、一致性和互聯(lián)網(wǎng)海量并發(fā)、彈性伸縮等金融級基礎(chǔ)架構(gòu)能力。
我們把這套金融級云原生的分布式架構(gòu)解決方案,稱之為 SOFAStack?(Scalable Open Financial Architecture Stack),源于自螞蟻內(nèi)部沉淀十多年的金融級分布式中間件技術(shù)體系,吸收了支付寶自創(chuàng)立以來在關(guān)鍵金融交易系統(tǒng)錘煉出來的架構(gòu)實踐。SOFAStack 所有的產(chǎn)品技術(shù)均經(jīng)過螞蟻集團自身嚴苛的金融場景驗證,為金融交易技術(shù)在保證風(fēng)險安全的同時,幫助業(yè)務(wù)需求敏捷迭代;同時滿足異地容災(zāi)、低成本快速擴容的需求,能夠解決傳統(tǒng)集中式架構(gòu)轉(zhuǎn)型的困難,并通過打造大規(guī)模高可用分布式系統(tǒng)架構(gòu),來支撐金融業(yè)務(wù)創(chuàng)新。
同時,SOFAStack 體系內(nèi)的各個組件已經(jīng)開始逐步向社區(qū)開源:https://github.com/alipay。希望能與技術(shù)社區(qū)共同完善和改進各關(guān)鍵產(chǎn)品,支持大家更加敏捷穩(wěn)妥地實現(xiàn)金融級云原生架構(gòu)。