金融行業容器平臺落地路徑:敏捷響應業務更迭

支付寶技術團隊發表於2019-02-24

演講中,盛延敏主要圍繞著螞蟻金服容器平臺的雙模容器落地路徑,所能夠提供的金融級雲原生能力,以及所經歷的實際嚴苛場景驗證三個方面,分享了螞蟻金服容器平臺如何幫助企業實現敏捷響應業務更迭。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202100920.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

**盛延敏 螞蟻金服高階技術專家**


## 基礎設施架構變革 正徹底改變業務應用的交付模式


首先來回顧一下軟體行業交付模式的演變歷史。對於交付模式而言,最早大家比較關心IaaS層面的內容,以OpenStack、KVM或者VMWare等為代表的技術大行其道,這個階段大家比較關心虛擬機器,無論是應用還是分散式中介軟體,基本都是透過虛擬機器來搭建和運維。隨著技術的進步,透過應用無狀態化以及運維自動化的技術升級,軟體交付來到了一個新時代。這個時代,大家所關注的中心上移到了PaaS領域,此時應用開發者重點關注自己所開發的應用,我們可以稱之為Cloud-Ready時代,這個階段中,無論是分散式應用、所使用的語言環境還是運維和監控,都統一地託管在PaaS平臺之上的。在Cloud-Ready時代,如果想要支援多語言和多框架,就要提供語言和框架的技術規範化體系,例如buildpack。技術再向前發展,到了2013年,2014年左右,一家叫做Docker的公司走向了歷史舞臺,它將cgroup和namespace等技術實現了極致的產品化,創造性地提出了Docker image方式,此時軟體交付的方式,應用程式本身和語言、技術棧以及框架緊密地耦合在一起了,此時就進入了CaaS時代,我們可以稱之為Cloud-Native的時代。在這個時代,無論是對於中介軟體還是微服務,完全都可以透過雲原生的方式來實現,這就帶來了架構、效率和運維體驗的極致提升。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202124431.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)


## 基於容器技術的“雲原生”已成為事實標準


一直以來,容器技術所標榜的就是透過“集裝箱”方式進行交付。將軟體和產品打包成為標準化的映象,而映象就像是集裝箱一樣,可以幫助我們將軟體託運到任何地方、任何環境,並透過一鍵拉起實現部署。現在,無論是技術社群、開發者還是雲服務提供商,都在積極地擁抱和倡導基於容器技術的“雲原生”時代。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202142787.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

CNCF雲原生計算基金會在2018年的調查顯示“雲原生生產環境應用增長200%,社群關注度和評估量增長近3倍”。當然,各個組織的關注點可能不同,但是卻集中在技術可用性以及生產效率的提升上。這裡以Kubernetes和Docker為代表的雲原生技術的關注度在下圖中也得到了非常明顯的體現。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202153850.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

當談到雲原生的時候,大家不禁要問什麼是雲原生呢?是Kubernetes還是Docker?還是OCR的標準?CNCF組織給雲原生定義了一套標準,而這套標準也在不斷實踐和打磨,在2018年他們也推出了一個新版本,主要包括了五種技術基石和三種雲形態支援。這五中技術基石分別是容器、服務網路、微服務、不可變基礎設施以及宣告式API,三種雲形態則包括公共雲、混合雲以及專有云。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202202212.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

這裡需要強調的是宣告式API,這是雲原生時代與之前時代所不同的重要理念。在過去,無論是運維還是釋出,都習慣於透過傳送指令來啟動觸發事件,比如啟動或者停止某一個應用。而到了雲原生時代,宣告式API的理念就是“想要一個應用處於執行狀態、想要一個應用處於停止狀態”,其表達了終局一致的理念,非常像微積分中的無窮逼近,而Kubernetes的編排模組就是按照這個理念設計出來的,其幫助運維人員維護最終狀態的驅動,這就是雲原生時代和過去的運維時代非常顯著的區別。


螞蟻金服內部經過多年的實踐所得到的啟示是:雲原生架構看上去非常好,但是雲原生架構的轉型並不能一蹴而就。在向雲原生架構轉型的過程中也存在很多問題,原本的系統中存在很多歷史負債,無法實現直接跳躍,因此需要漸進的架構方案;在架構轉型上,需要一個大規模、金融級的運維支援,幫助把雲原生方案落地;此外,還需要經過各種嚴苛的金融業務場景的驗證,我們的技術和產品才能提供給螞蟻金服的客戶和合作夥伴使用。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202223509.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)


## 漸進式雲原生架構轉型方案


傳統架構遷移到雲原生架構會存在一些普遍問題,也有一些存在於開發和運維同學心中的觀點。第一種理念就是非常習慣原本虛擬機器方式,希望所做的任何事情都圍繞機器展開,比如能夠到機器上看日誌,並跟著機器和IP進行監控,包括將遺留資產體系的打通都是圍繞這套理念實現的。第二種理念就是雖然非常推崇雲原生,也希望使用雲原生,但是雲原生在自身實際場景中不能玩得轉。因為雲原生基於終局一致的理念,這就意味著它意味著無時無刻都在發生著生產線的變更。這些變更能否在傳統運維體系中被完全的掌控和監控,以及排程上的一些問題能否完全解決,都存在很大的問題,這或許會使得開發和運維對於雲原生架構產生不信任甚至懷疑。還有一種觀點就是敢於擁抱雲原生,但是又不得不思考已有系統架構和已有業務的問題,考慮能否在傳統方式和雲原生方式之間提供一些“魚與熊掌皆可兼得”的方案。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202236308.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

螞蟻金服所提供的答案是“Yes”。螞蟻提供了在已有基礎設施之上進行的漸進式架構遷移方案,提供了基於Docker VM輕量級虛擬機器的一整套運維體系的規範,同時也提供了支援雲原生體系的釋出、部署以及運維的規範,前者能夠完美地對接已有資產和系統監控運維等體系,使得使用者不再困惑。此外,螞蟻還將中介軟體最佳實踐落實到大規模容器雲平臺之上,包括了Service Mesh的落地以及跨語言的架構。並且容器平臺還會能夠支援彈效能力的訴求,可以完美適配公有云、專有云、混合雲。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202244323.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)


## 傳統與雲原生架構的雙模運維


可以大致將組織裡面的業務分成兩種形態:穩態和敏態。穩態業務就是比較傳統和核心的業務,這些業務追求穩定和已有的運維、監控、釋出體系的相容性,螞蟻的金融行業容器平臺對此提供了輕量級虛機解決方案,融合了分組、灰度以及無損釋出等能力,讓使用者在原本的體系下可以繼續玩得轉。另外一方面,一些創新業務歸為敏態業務,這些業務需要依靠大資料以及人工智慧等技術的創新,因此對於敏態業務而言,擁抱新開源框架和新技術的訴求非常強烈。而基於雲原生理念,可以幫助使用者迅速擁抱這種變化,並且可以提供安全容器技術幫助使用者實現更好的安全隔離,保證企業和組織實現“魚與熊掌兼得”,使得傳統業務和創新業務同步開展,並且是透過一套系統支援業務的迭代和創新。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202255829.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)


## 原生支援Service Mesh


對於任何一個組織而言,想要打造像螞蟻金服這樣經過十幾年的風雨所打造的微服務架構體系,所付出的努力是難以想象的。而如今,開發組織可以透過對接SOFA Mesh,並透過在透明的Pod裡面注入Sidecar的方式,瞬間就可以擁有螞蟻金服沉澱多年的分散式架構技術紅利,從而對企業產生巨大的幫助。此外,結合螞蟻金服分散式單元化架構能夠提供更好的容災服務能力。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202320178.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)


## 混合雲架構


此外,螞蟻金服還提供了混合雲架構解決方案,因為底層使用的是容器化技術,所以可以對接物理機以及OpenStack和VMWare等虛擬化平臺。雲上和雲下都提供了一套體驗一致的分散式中介軟體, 透過服務目錄的方式把應用所依賴的服務進行注入,這樣就能夠在公有云和專有云之間靈活地分配負載。當大促來臨的時候,可以將負載更多地切換到公有云上,大促結束之後可以將資源返還給公有云資源池,這樣就可以從根本上解決企業運營所面對的資源伸縮問題。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202330446.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)


## 大規模金融級運維能力支撐


整套體系想要落地就離不開大規模金融級運維能力的支撐。接下來從規模化叢集運維、單元化釋出、一體化監控分析以及自動化流程編排這四個方面來闡述大規模金融級運維能力。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2019022420234268.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

大規模叢集運維能力;對於Kubernetes而言,想要管理好一套Kubernetes叢集也都是極其困難的事情,更不用說在生產環境中運維和管理多套Kubernetes叢集了。經過技術性探索,螞蟻金服創造性地提出了Kubernetes管理方案——K8S on K8S(KOK)。對於KOK方案而言,底層存在元叢集,元叢集採用一體化方式安裝起來的。元叢集的使命就是運維業務叢集,而元叢集的元件不會頻繁升級,所以安裝基本上就是一次性工作。元叢集安裝完成之後,可以在其上面佈置元件,這裡包括兩個非常關鍵的元件——Machine Operator和Cluster Operator,這兩個元件負責對業務叢集進行管理。業務叢集的Master節點將會作為元叢集的Worker節點加入到元叢集中,這樣就可以被元叢集管理,而且其部署方式也是透過原生方式實現的,這樣就可以在元叢集的監控皮膚上看到業務叢集所有中控元件,可以很方便地進行運維、升級以及版本管理,藉助Kubernetes本身的能力就可以管理好多個叢集,帶來業務和運維上的便利。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202350613.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

單元化釋出運維能力;螞蟻容器平臺支援VM和容器的雙模釋出,這一點在單元化釋出方式上都會得到支援。單元化釋出能夠輕鬆支援萬級規模節點的藍綠機房釋出和灰度釋出,實現分鐘級容災能力。並且我們支援藍綠髮布和彈性伸縮。下圖中最右邊是動態彈性伸縮模組,其透過收集監控告警資訊並進行處理分析,進而觸發彈性伸縮,這樣就會保證對外服務的節點和副本數保持不變。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202357764.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

一體化監控分析;對於任何大規模的容器平臺或者PaaS平臺而言,監控體系都是其靈活的“眼睛”。透過一體化監控分析平臺可以統一收集監控資料,並送到後臺模組進行統一處理和建模,經過一體化處理以後,資料將會呈現在視覺化大盤上,並可以提供給業務進行自定義分析。一體化監控體系也秉持“相容社群,擁抱開源”的理念,不僅可以相容社群的很多技術,還在積極地回饋社群。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202407350.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

自動化流程編排;如下圖左側所示的是自動化流程編排的案例,提供了一些基於條件驅動的模組,使得使用者可以不斷沉澱流程模板並且加入到流程商店裡面,透過這種方式將一些碎片化的操作整合成相應的自動化流程模板。在下圖中右側還展示了兩個例子,一個是網商銀行故障自愈場景的案例,另外一個則是螞蟻國際運維自動化場景的案例。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202415262.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)


## 嚴苛金融業務場景實際驗證


下圖所示的是網商銀行基於Kubernetes的實踐案例。網商銀行是中國第一家將核心系統全部執行在SOFA Stack分散式架構和螞蟻金融雲上的銀行。在2018年的大促中,網商銀行做了幾件重要的事情,包括了分散式架構資料的拆分、單元化、異地多活等。另外,我們還對底層的技術架構進行了升級,將2018年雙11和雙12的所有工作負載都放在了容器引擎上,支援了數千的節點和數萬的Pod,有力的保證了網商銀行大促的增長達到400%。我們的容器引擎帶來的技術紅利包括兩部分,一方面使得資源利用率更高,透過高密度部署,使得物理機使用效率更高;再加上離線線上任務的彈性混部,使得CPU的利用率也更高。第二方面還使得整體效率得到提升,從原本的軟體包交付模式變成集裝箱式交付模式,使得整個開發者工程效率和SRE運維效率都得以提升。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202426452.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

如今,螞蟻金服提供了一整套基於Ant Stack的產品,在這套產品之上構築了各種場景的解決方案,包括了大家所熟知的螞蟻風控、生物識別、移動開發以及螞蟻國際化和國際支付等,都是基於螞蟻的容器引擎之上的。可以說,螞蟻金服圍繞著金融決策和金融分析打造了一整套面向合作伙伴的解決方案。現在,螞蟻將自身的容器引擎實現了產品化,以PaaS平臺的方式為企業客戶提供。透過螞蟻金服DevOps的持續整合流水線,大規模容器化釋出部署以及高效資源編排的能力,最終為使用者提供完整的PaaS平臺。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2019022420243453.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

如下圖所示的是螞蟻的SOFA Stack為大家提供的PaaS產品和解決方案的全景圖。在這張全景圖上有兩套標準、三個平臺和三種形態。第一個標準就是Cloud-Provider,其意義在於遮蔽掉底層基礎設施的區別,透過Cloud-Provider可以對接虛擬化平臺,隔離底層基礎設施。另外一個標準Open Service Broker API的標準,這一標準主要是為了擁抱生態,使得PaaS平臺能夠更好地擴充套件能力,對接計算、儲存以及網路能力,將這些能力整合進來,變成應用PaaS平臺所能提供的能力,這也符合整個社群一貫的做法。三個平臺則是應用與容器平臺、監控分析平臺以及容災應急平臺。三種形態是公有云,專有云和混合雲。最上面則會提供面向各種應用場景的解決方案,包括了DevOps解決方案、容器化解決方案、單元化結構,以及異地和同城容災的解決方案。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202442340.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)


## 關鍵資訊總結


**雙模容器落地路徑**;在本文所分享的主要內容中,螞蟻金服的金融行業容器平臺所提供的能力為的是幫助企業和組織降低雲原生的門檻,從傳統的運維模式漸進地邁向雲原生。螞蟻金服為企業提供了所謂的雙模能力,使得新系統既能夠相容已有系統,也能提供面向未來的體驗。


**金融級雲原生能力**;螞蟻金服助力企業打造大規模金融級運維能力,使金融級雲原生能力能夠落到實處,帶來真正的價值。


**實際嚴苛場景驗證;** 無論是產品還是核心的整個平臺,都是包括網商銀行和支付寶在內的整個螞蟻金服,在經過了一系列嚴苛的場景考驗之後,最終才會交付給客戶和合作夥伴的。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190224202452383.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyNjU4OQ==,size_16,color_FFFFFF,t_70)

點選[閱讀更多](),檢視更多詳情


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69904796/viewspace-2636831/,如需轉載,請註明出處,否則將追究法律責任。

相關文章