G行云原生業(yè)務(wù)韌性探索與實(shí)踐
引言
G行以全棧云平臺(tái)為基礎(chǔ),逐步推進(jìn)云原生技術(shù)的應(yīng)用,探索數(shù)字化轉(zhuǎn)型路徑,為銀行業(yè)務(wù)快速發(fā)展提供有力技術(shù)支撐。同時(shí),云原生也帶來(lái)了在微服務(wù)管理、云安全、健康監(jiān)測(cè)、依賴路徑、韌性要求等多方面的挑戰(zhàn),具體表現(xiàn)為:
微服務(wù)管理:多個(gè)微服務(wù)有機(jī)組合才能構(gòu)建一個(gè)健康的應(yīng)用程序,本質(zhì)上許多活動(dòng)部件需要協(xié)同工作才能使系統(tǒng)正常運(yùn)行。如果一項(xiàng)微服務(wù)失敗,則系統(tǒng)需要對(duì)其進(jìn)行檢測(cè)并自動(dòng)修復(fù)。隨著自動(dòng)化部署引入,系統(tǒng)迭代頻繁,應(yīng)用系統(tǒng)微服務(wù)的管理越來(lái)越復(fù)雜,管理要求越來(lái)越高。
云安全:由于云原生環(huán)境的易變性,傳統(tǒng)邊界安全模型無(wú)法覆蓋所有風(fēng)險(xiǎn)場(chǎng)景。在云原生技術(shù)架構(gòu)下,容器間隔離、微服務(wù)全生命周期變化、微服務(wù)間網(wǎng)格化依賴、集群資源自動(dòng)調(diào)度等新領(lǐng)域都可能帶來(lái)不同層面的安全風(fēng)險(xiǎn),影響應(yīng)用系統(tǒng)穩(wěn)定性。因此,針對(duì)云原生的復(fù)雜性引入安全管理策略和技術(shù)手段進(jìn)行有效防護(hù)和保障,是非常有必要的。
健康監(jiān)測(cè):Kubernetes是非常復(fù)雜的平臺(tái),為了保障基于Kubernetes的業(yè)務(wù)系統(tǒng)平穩(wěn)運(yùn)行,了解Kubernetes的健康狀況至關(guān)重要。一些現(xiàn)有技術(shù)可以用來(lái)收集Kubernetes集群日志、各種指標(biāo)數(shù)據(jù)、事件和安全威脅,以幫助監(jiān)視集群的健康狀況,但單一指標(biāo)很難系統(tǒng)性的衡量基于Kubernetes的應(yīng)用系統(tǒng)健康程度。需要一套更加智能、直觀的方式,對(duì)各種指標(biāo)數(shù)據(jù)進(jìn)行采集、整合、綜合分析,從而生成可視化的高階視圖。
依賴路徑:在一個(gè)由多集群、微服務(wù)化的云原生分布式環(huán)境中包含大量交互、依賴點(diǎn),可能出錯(cuò)的地方數(shù)不勝數(shù)。硬盤(pán)故障、網(wǎng)絡(luò)不通、流量激增壓垮某些組件,任何一次故障處理不好就有可能導(dǎo)致業(yè)務(wù)停滯、性能驟降,或者其他各種無(wú)法預(yù)料的現(xiàn)象;同時(shí)云原生環(huán)境中,也難以全面掌握何種故障會(huì)導(dǎo)致系統(tǒng)局部崩潰,甚至全面崩潰。需要盡可能地在這些情況發(fā)生之前找出系統(tǒng)中的脆弱點(diǎn)。
韌性要求:云原生帶來(lái)的業(yè)務(wù)分散、集群繁多、集群邊界受限等問(wèn)題對(duì)云平臺(tái)也提出了新挑戰(zhàn),需要平臺(tái)提供可靠的韌性能力以保障業(yè)務(wù)穩(wěn)定運(yùn)行。業(yè)務(wù)分散體現(xiàn)在應(yīng)用在各集群的差異化配置、業(yè)務(wù)跨云訪問(wèn)、集群間應(yīng)用同步等;集群繁多體現(xiàn)在繁瑣重復(fù)的集群配置、云廠商集群管理差異、碎片化API訪問(wèn)入口,如何讓集群對(duì)上層用戶透明等問(wèn)題;集群邊界限制體現(xiàn)在資源調(diào)度受限于集群、應(yīng)用可用性受限于集群、彈性伸縮受限于集群。如何讓?xiě)?yīng)用可以面向多集群進(jìn)行部署分發(fā),如何提供整體跨集群自動(dòng)伸縮能力也是未來(lái)面臨的挑戰(zhàn)。
針對(duì)上述挑戰(zhàn),我們進(jìn)行了一些探索和實(shí)踐,以提高平臺(tái)韌性,提升業(yè)務(wù)運(yùn)行穩(wěn)定性。
云原生業(yè)務(wù)韌性的探索與實(shí)踐
1.實(shí)踐內(nèi)容
為了提升云上業(yè)務(wù)感知、保護(hù)和主動(dòng)優(yōu)化能力,進(jìn)一步應(yīng)對(duì)上文描述的一系列挑戰(zhàn),G行全棧云初步完成了云原生業(yè)務(wù)韌性能力建設(shè),實(shí)現(xiàn)了部分應(yīng)用系統(tǒng)跨集群調(diào)度、故障演練、多中心互備等功能,探索提升業(yè)務(wù)韌性,實(shí)現(xiàn)業(yè)務(wù)連續(xù)性與災(zāi)備管理。下圖是云原生業(yè)務(wù)韌性平臺(tái)架構(gòu),基于云原生技術(shù)實(shí)現(xiàn)應(yīng)用的跨集群配置備份和數(shù)據(jù)備份。
云原生業(yè)務(wù)韌性平臺(tái)功能涵蓋多集群管理、云原生應(yīng)用系統(tǒng)數(shù)據(jù)備份與恢復(fù)、跨集群資源及演練調(diào)度等核心模塊,具體內(nèi)容如下:
- 多集群管理:集群管理包括應(yīng)用管理、備份管理、策略管理、沙盤(pán)管理、活動(dòng)監(jiān)控、監(jiān)控告警、容量管理等子功能模塊。同時(shí)保障納管集群標(biāo)簽、資源、節(jié)點(diǎn)、服務(wù)、狀態(tài)等數(shù)據(jù)的有效管理。
- 云原生應(yīng)用系統(tǒng)數(shù)據(jù)備份與恢復(fù):根據(jù)不同業(yè)務(wù)應(yīng)用條線的重要程度制定不同備份策略。核心業(yè)務(wù)、關(guān)鍵業(yè)務(wù)提供分鐘級(jí)甚至秒級(jí)備份,普通業(yè)務(wù)、非關(guān)鍵業(yè)務(wù)可按周或按月備份并能夠按照備份時(shí)間點(diǎn)進(jìn)行快速恢復(fù)。
- 跨集群資源及演練調(diào)度:實(shí)現(xiàn)Kubernetes集群之間的資源調(diào)度,滿足業(yè)務(wù)高峰時(shí)的資源需求,其中包括調(diào)度策略的制定、調(diào)度組、歷史記錄及報(bào)告等;支持云上虛擬機(jī)與容器應(yīng)用的切換演練調(diào)度,應(yīng)對(duì)突發(fā)事件的切換調(diào)度,其中包括演練計(jì)劃、演練方案、演練報(bào)告、場(chǎng)景管理、流程庫(kù)、步驟庫(kù)、階段庫(kù)等。
2.應(yīng)用成效
目前全棧云韌性平臺(tái)已完成多個(gè)Kubernetes集群以及集群內(nèi)部分應(yīng)用系統(tǒng)納管,實(shí)現(xiàn)應(yīng)用災(zāi)備無(wú)縫切換,并基于平臺(tái)能力實(shí)現(xiàn)如下能力探索:
- 靈活備份策略:有效的縮短備份時(shí)間,靈活的備份頻度,提高RTO;避免備份冗余數(shù)據(jù),提高資源利用率。
- 穩(wěn)敏雙態(tài)災(zāi)備:基于不同語(yǔ)言的回調(diào),實(shí)現(xiàn)統(tǒng)一納管及調(diào)度;優(yōu)化切換效率,顯著提升RTO。
- 多云遷移:支持不同云廠商切換過(guò)渡,實(shí)現(xiàn)平臺(tái)級(jí)災(zāi)備能力;順應(yīng)國(guó)產(chǎn)化信創(chuàng)要求,雙棧并舉,防范系統(tǒng)性風(fēng)險(xiǎn)。
后續(xù)改進(jìn)
云原生技術(shù)帶來(lái)了更高層次的基礎(chǔ)設(shè)施抽象,讓?xiě)?yīng)用開(kāi)發(fā)人員的關(guān)注點(diǎn)從基礎(chǔ)設(shè)施進(jìn)一步分離,聚焦上層業(yè)務(wù)邏輯實(shí)現(xiàn)。全棧云在實(shí)踐韌性能力建設(shè)過(guò)程中,也面對(duì)與應(yīng)用系統(tǒng)結(jié)合的一系列問(wèn)題,包括:
- 應(yīng)用定制多:每個(gè)應(yīng)用系統(tǒng)都有自己的架構(gòu)特性,在技術(shù)上無(wú)法實(shí)現(xiàn)應(yīng)用的一鍵災(zāi)備納管,只能針對(duì)每個(gè)應(yīng)用剝繭抽絲,一一定制。
- 配置梳理繁:不管是純?cè)圃鷳?yīng)用,還是穩(wěn)敏雙態(tài)應(yīng)用,都有平臺(tái)級(jí)、系統(tǒng)級(jí)、服務(wù)級(jí)等各種復(fù)雜配置,災(zāi)備端納管起來(lái)容易錯(cuò)一漏萬(wàn),嚴(yán)重時(shí)甚至影響到主端應(yīng)用的正常運(yùn)行。
- 業(yè)務(wù)驗(yàn)證難:針對(duì)應(yīng)用系統(tǒng)完成的容災(zāi)備份,與主端應(yīng)用的業(yè)務(wù)對(duì)等性無(wú)法得到完全、充分的驗(yàn)證。
- 主備同步弱:云原生應(yīng)用系統(tǒng)迭代快,業(yè)務(wù)更新頻繁,備端應(yīng)用無(wú)法滿足一次納管,同步迭代。備端需要針對(duì)主端應(yīng)用系統(tǒng)的每次迭代進(jìn)行主動(dòng)同步,以確保主備服務(wù)的一致性。
- 為解決上述問(wèn)題,在以“API+云服務(wù)”的形式構(gòu)建服務(wù)生態(tài)鏈的潮流下,我們也在探索技術(shù)手段和管理機(jī)制互相融合可行方案,具體包括:
- 災(zāi)備前移:管理上將應(yīng)用系統(tǒng)上云改造與云上災(zāi)備管理融合,技術(shù)上針對(duì)不同應(yīng)用系統(tǒng)制定不同容災(zāi)規(guī)范,確保完成上云即完成容災(zāi)建設(shè)。
- 平戰(zhàn)結(jié)合:平時(shí)完善BCP和DRP,確保其準(zhǔn)確性、有效性,演練驗(yàn)證;戰(zhàn)時(shí)快速響應(yīng)、快速?zèng)Q策、快速處置;平戰(zhàn)結(jié)合,打造來(lái)之能戰(zhàn)、戰(zhàn)之能勝的業(yè)務(wù)連續(xù)性體系。
- 穩(wěn)敏雙態(tài)共存:業(yè)務(wù)線條貫穿敏態(tài)和穩(wěn)態(tài),信息系統(tǒng)本地應(yīng)急和異地災(zāi)備能力需穩(wěn)敏同時(shí)構(gòu)建;穩(wěn)敏技術(shù)架構(gòu)遵從BCM體系構(gòu)建支撐能力;風(fēng)險(xiǎn)聯(lián)動(dòng)業(yè)務(wù)和IT部門(mén),構(gòu)建穩(wěn)敏兼顧的雙態(tài)組織和應(yīng)急體系。
- 高低頻事件聯(lián)動(dòng):依托低頻事件,構(gòu)建BCM體系業(yè)務(wù)和IT的最后一道防線;面對(duì)高頻事件,實(shí)現(xiàn)日常運(yùn)維和組件切換的聯(lián)動(dòng);高低頻事件聯(lián)動(dòng),切實(shí)實(shí)現(xiàn)資源共享,提升災(zāi)備投資ROI。
下圖是全棧云韌性平臺(tái)可行的優(yōu)化流程,從指標(biāo)制定、策略制定、能力建設(shè)、應(yīng)急演練、應(yīng)急切換、優(yōu)化改進(jìn)以及影響分析報(bào)告等形成的一套業(yè)務(wù)系統(tǒng)的優(yōu)化閉環(huán),每一個(gè)步驟均通過(guò)相關(guān)的技術(shù)手段以達(dá)到預(yù)期目標(biāo)。在后續(xù)工作中我們將深入探索技術(shù)與管理的融合方案,服務(wù)于應(yīng)用系統(tǒng)業(yè)務(wù)連續(xù)性。
未來(lái),G行將從IaaS、PaaS、SaaS、DevOps等方向進(jìn)一步完善云原生系統(tǒng)的管理、調(diào)度、觀測(cè)和容災(zāi)演練能力,全方位構(gòu)建完整生態(tài)云體系,為云上業(yè)務(wù)韌性保駕護(hù)航。同時(shí)基于云原生架構(gòu)規(guī)劃推進(jìn)業(yè)務(wù)系統(tǒng)建設(shè),繼續(xù)深耕金融科技領(lǐng)域,提高服務(wù)成本的透明度與可信度,期望通過(guò)自己的云原生架構(gòu)落地實(shí)踐為業(yè)界提供數(shù)字化轉(zhuǎn)型經(jīng)驗(yàn)。