国产6699视频在线观看_女人爽到喷水的视频大全_亚洲欧美日韩国产视频亚洲欧美综合日韩久久_中文字幕无码久久东京热_av电影中文一区

 
首頁 > 理財 >
 
 

今日看點:張國棟:浦發(fā)銀行混沌工程探索與實踐

2023-01-18 10:45:00  來源:金融電子化

為了應對用戶體驗需求的日益增長、業(yè)務敏捷化的持續(xù)發(fā)展,金融行業(yè)分布式架構轉型工作逐步深入。隨之而來引入的DevOps工程、云原生和微服務治理等技術,在提升應用交付能力的同時,極大地增加了應用架構復雜度和系統(tǒng)潛在風險?;煦绻こ套鳛榉植际较到y(tǒng)穩(wěn)定性保障的主流技術,近年來備受關注。混沌工程就是利用受控的經(jīng)驗導向實驗提前探知系統(tǒng)潛在風險,通過優(yōu)化架構和改進運維模式來解決該風險,真正實現(xiàn)韌性架構,降低損失,提高故障免疫力。浦發(fā)銀行從2021年開始探索混沌工程核心理論,并在仿真環(huán)境完成了應用實踐。通過混沌工程實施提前探知諸多風險,提升對系統(tǒng)穩(wěn)定運行的信心。同時混沌理念隨著實施范圍的擴大,逐步深入人心,提升了研發(fā)過程中對系統(tǒng)可用性、容錯性、可恢復性的關注程度。

上海浦東發(fā)展銀行信息科技部(金科中心) 副總經(jīng)理 張國棟


(資料圖)

混沌工程的背景

1.混沌工程VS傳統(tǒng)演練

為了提升系統(tǒng)的穩(wěn)定性,在傳統(tǒng)研發(fā)運維過程中會開展大量的健壯性測試或高可用演練,這些均是對系統(tǒng)已具備的特性的驗證,有明確的目標及系統(tǒng)表現(xiàn)預期。而混沌工程更注重基于生產(chǎn)事件分析,將歷史發(fā)生過的故障注入到未發(fā)生的系統(tǒng)中,探知系統(tǒng)會如何應對,通過不斷實驗,沉淀經(jīng)驗,指導系統(tǒng)架構優(yōu)化,從源頭推動系統(tǒng)穩(wěn)定性建設,從而融入研發(fā)全流程,促使系統(tǒng)穩(wěn)定性持續(xù)改進。因此,混沌工程其實是一項涉及檢測、治理、提升的閉環(huán)工作。

2.混沌工程模式

混沌實驗是混沌工程的核心關鍵,也是工程應用實踐的最重要環(huán)節(jié)?;煦鐚嶒炘趧?chuàng)始公司Netflix被稱為“GAMEDAY”,是一場開發(fā)、測試、運維等各個環(huán)節(jié)人員共同參與的“游戲”。混沌實驗有定義系統(tǒng)穩(wěn)態(tài)假設、在系統(tǒng)上模擬可能發(fā)生的故障(即故障注入)、觀察發(fā)現(xiàn)潛在問題三個主要環(huán)節(jié),可在開發(fā)自測、集成測試、投產(chǎn)運行等多個階段開展。隨著工程成熟度的提升,故障注入的模式由手工命令、工具注入、平臺規(guī)?;幣?、逐步向自動化演練轉變。初期探索階段,通過手工命令和工具注入方式可以快速地實踐和了解混沌工程,并收集到一些基本的系統(tǒng)運行問題,累積實施經(jīng)驗?;煦绻こ掏茝V階段,則需要通過實驗平臺等工具建設來滿足日益增長的實驗復雜度和系統(tǒng)規(guī)?;鲩L。最后,“游戲”的模式逐步演化成紅藍對抗、生產(chǎn)突襲等。

浦發(fā)銀行混沌工程實踐

浦發(fā)銀行的混沌工程實踐主要涉及兩大部分:作為關鍵的核心實驗流程;人員培養(yǎng)、平臺建設、技術指引等配套支持(見圖1所示)。

圖1 混沌工程實踐要點

1.混沌實驗流程

經(jīng)過在分布式改造、系統(tǒng)上云、生產(chǎn)高可用演練等多項重大科技項目配套混沌工程實踐路徑的探索,浦發(fā)銀行逐步形成了標準化的實施流程,涵蓋團隊組建、實驗設計、實驗執(zhí)行、風險分析、優(yōu)化驗證等流程節(jié)點。

混沌工程是一項系統(tǒng)工程,每次實施前需要召集開發(fā)、測試、運維三方核心人員組建實施團隊,并根據(jù)系統(tǒng)特性邀請相關技術專家參與。實驗設計、實驗執(zhí)行、風險分析、架構優(yōu)化則是一個持續(xù)的過程。通過實驗故障注入得以觀察系統(tǒng)的故障應對表現(xiàn),總結相關的問題風險,完成架構優(yōu)化或形成應急手冊,并在后續(xù)實驗過程中再次驗證。

2.混沌實驗設計

故障實驗是整個混沌工程的核心部分。為了保障實驗的有效性和完整性,設計時需從實驗對象、故障場景、爆炸半徑、預期表現(xiàn)等四個方面進行分析。

(1)實驗對象:實驗對象即被注入故障的關鍵節(jié)點。實驗對象設計來源于對系統(tǒng)內部調用鏈路,上下游依賴與流轉關鍵點的分析。通常系統(tǒng)的實驗對象按功能分為應用、中間件、轉發(fā)組件、轉發(fā)硬件、數(shù)據(jù)庫、公共組件、公共平臺等。進行設計時,一般會預先設置單個或多個實驗對象。為了強化實驗的探索性,也可采用隨機選擇實驗對象及故障的設計方法,形成更復雜的故障場景。

(2)故障場景:實驗中故障場景主要來源于浦發(fā)銀行混沌知識庫。知識庫是根據(jù)浦發(fā)銀行現(xiàn)有技術棧情況,著力于歷史發(fā)生故障記錄及共性系統(tǒng)風險分析,逐步形成的基于容器、虛機、負載均衡設備等基礎分類標準實驗場景及對應執(zhí)行策略的集合。知識庫優(yōu)先吸納發(fā)生頻率高,風險高的問題對應場景,并在后續(xù)實踐中不斷更新完善。知識庫的建立一定程度上降低了后續(xù)場景設計的成本。需要注意的是,如果發(fā)現(xiàn)系統(tǒng)不具備應對某些故障的措施,那么在場景設計時不建議將這些故障點納入實驗,而應該考慮先期進行優(yōu)化,以規(guī)避風險問題發(fā)生。

(3)爆炸半徑:實驗爆炸半徑代表著故障對系統(tǒng)影響范圍的控制。通過分析實驗選擇的業(yè)務交易鏈路及注入的故障,可以初步圈定會受影響的系統(tǒng)節(jié)點。實驗爆炸半徑定義的越準確,實驗的受控程度和安全性越高。

(4)預期表現(xiàn):預期表現(xiàn)是穩(wěn)態(tài)假設的具體實現(xiàn),通常是針對系統(tǒng)故障處理技術分析后,給出的故障注入后系統(tǒng)可能發(fā)生的行為。一般重點關注故障期間和故障銷毀后的運行表現(xiàn)。通過設置量化的業(yè)務指標(如系統(tǒng)處理能力)、資源監(jiān)控指標(如CPU使用率),定義具體處理措施表現(xiàn),如前端顯示兜底數(shù)據(jù)、系統(tǒng)警告日志等,實現(xiàn)預期表現(xiàn)的具體觀測方案。

實驗中通過模擬或導入相對穩(wěn)定的業(yè)務流量壓力,可以讓故障注入后的預期指標偏離度更易觀察及分析。實驗數(shù)據(jù)分析時,將實際監(jiān)測到的數(shù)據(jù)與預期表現(xiàn)(穩(wěn)態(tài)假設)作比較,分析二者的偏差值后,就可以評估出系統(tǒng)故障應對措施的有效性以及故障影響范圍。

3.混沌工程實施架構

混沌工程實施架構主要包括流量模擬平臺、監(jiān)控平臺、故障注入平臺、實驗環(huán)境四個部分(如圖2所示)。

圖2 混沌工程實施架構

(1)流量模擬平臺。以浦發(fā)銀行性能測試一體化實施平臺為基礎,通過腳本錄制回放等方式,產(chǎn)生業(yè)務流量,并通過分流網(wǎng)關引導至實驗節(jié)點。在模擬的固定業(yè)務壓力流量下,系統(tǒng)呈現(xiàn)相對穩(wěn)定運行的狀態(tài),為后續(xù)實驗創(chuàng)建理想的參照指標,并對業(yè)務數(shù)據(jù)指標進行詳細匯總分析,供可視化監(jiān)控平臺取數(shù)。

(2)可視化監(jiān)控平臺。實驗過程中實時可視化監(jiān)控指標展示,有助于對問題及時進行定位,更好地分析出運行中的風險。監(jiān)控平臺環(huán)境部署了智能監(jiān)控平臺、日志分析平臺、郵件報警系統(tǒng),監(jiān)控指標項覆蓋了系統(tǒng)處理能力、交易響應時間等業(yè)務指標,服務器CPU、磁盤等基本資源使用率,容器資源使用情況,進程級別使用情況,JVM運行情況等。部分系統(tǒng)強化部署了日志分析平臺及定制化的告警郵件,用于對抗演練中快速匯報問題。

(3)故障注入平臺。浦發(fā)銀行混沌工程平臺,以支持工程化混沌工程實施為建設目標,平臺主體含5個主要功能模塊:故障注入、實驗編排、實驗檢測、實驗報告及平臺管理。平臺一期已具備X86服務器、容器等基礎資源級、應用進程級、應用方法級等故障注入能力;能提供靈活的實驗編排,支持組合式多故障注入,可演化出豐富的實驗場景。通過平臺的建設,混沌實驗的注入操作步驟能夠更加規(guī)范化,避免出現(xiàn)故障歧義導致不可控風險。未來二期建設將重點關注實驗保護、外部流程平臺對接等特性,進一步提升實驗安全性,并著力于平臺能力輸出,將混沌工程以更規(guī)范、更便捷的方式融入研發(fā)工作各環(huán)節(jié)。

(4)實驗環(huán)境。在業(yè)務連續(xù)性保障的要求下,銀行對系統(tǒng)穩(wěn)定性有著非常高的要求?;煦绻こ汤砟钤谟诠膭罟收蠈嵺`,意味著在越接近生產(chǎn)的環(huán)境中實施,探知的風險越真實。因此,建立貼近生產(chǎn)的仿真環(huán)境,對于開展混沌實驗是一個較為合適的方案。為了保障對客互聯(lián)網(wǎng)類系統(tǒng)能順利承接各類業(yè)務獲客、促活、引流等活動,浦發(fā)銀行按照生產(chǎn)架構分步搭建了仿真環(huán)境,涉及30多個重要系統(tǒng),覆蓋多條關鍵業(yè)務鏈路,并配套部署了監(jiān)控告警、日志分析系統(tǒng)。目前仿真環(huán)境承接了日常權益類業(yè)務活動、“雙十一”支付等重要業(yè)務全鏈路性能測試以及保障工作。同時承擔了這些重要系統(tǒng)及關鍵交易鏈路的混沌實驗。

實驗過程中,需要將實驗環(huán)境拆分成2個對照組。對照組可以是完整的鏡像環(huán)境,如2個互備集群,也可以是同一集群中的不同業(yè)務鏈路,如涉及微服務、虛機等有一定的交叉調用。鏡像環(huán)境對照組用來比較在同等業(yè)務流量下,故障發(fā)生前后系統(tǒng)應對表現(xiàn),如熔斷、隔離等特性的實現(xiàn)情況。同一集群中的不同業(yè)務鏈路,用來觀察業(yè)務間故障的隔離性,避免級聯(lián)故障的發(fā)生。

總結與展望

混沌工程不僅是一項IT系統(tǒng)分布式轉型下誕生新的技術,更是一門推進整個研發(fā)流程協(xié)同并進、實現(xiàn)成效優(yōu)化內循環(huán)的工程化學科。通過混沌工程的實踐,不僅能讓未知的風險在發(fā)生前提前被暴露并優(yōu)化;同時,也將研發(fā)流程上不同角色的工程師緊密聯(lián)系在一起,共同思考如何實現(xiàn)系統(tǒng)穩(wěn)定性。在混沌工程的收益顯現(xiàn)后,技術架構團隊總結的各種共性問題以及通用解決方案,可以讓其他系統(tǒng)在建設以及故障排查過程中借鑒采納,使得混沌工程融入整個研發(fā)流程。

目前浦發(fā)銀行的混沌工程實踐主要基于上云架構改造系統(tǒng)投產(chǎn)前韌性能力獲取、系統(tǒng)高可用演練、特定問題分析、系統(tǒng)故障定位、對抗演練等目的開展。2022年已累計完成50多次實驗,發(fā)現(xiàn)了系統(tǒng)故障期間熔斷策略漏洞、公共組件異常后應用流量無法切換、演練步驟中部分預期外的節(jié)點影響等問題;總結并編撰了《混沌工程實施技術指引》,整理發(fā)布多期混沌工程實施理論與案例的宣貫文章;并通過流量平臺、故障注入平臺以及監(jiān)控平臺的建設,加強對于復雜故障場景的驗證,逐步實現(xiàn)了標準化、工程化、規(guī)模化的混沌工程實施模式,有效提升系統(tǒng)穩(wěn)定性。

為進一步提升混沌工程的應用成效,未來考慮從以下三方面推進混沌工程向縱深發(fā)展:第一,實驗開展節(jié)點逐步前移至開發(fā)自測階段,納入DevOps流程,實現(xiàn)問題早發(fā)現(xiàn)、早排除。第二,針對混沌實驗發(fā)現(xiàn)的問題,進一步提煉形成公共解決方案,建立從需求、開發(fā)、測試、運維等全流程信息共享的機制,從系統(tǒng)設計初期排除隱患。第三,針對目前問題分析大量依賴于人工的情況,考慮建設全鏈路跟蹤平臺、智能監(jiān)控平臺實現(xiàn)部分問題的自動驗證對接,提高實驗和分析的自動化程度,降低實施成本。

浦發(fā)銀行通過實踐混沌工程,形成了一套適配上云及分布式改造轉型的技術指引和實施框架,并獲取及解決部分系統(tǒng)隱患。未來將進一步研究和完善混沌工程實驗技術,以期在更多領域發(fā)揮所長。

(欄目編輯:張麗霞)

關鍵詞: 浦發(fā)銀行 故障注入 工程實踐

  
相關新聞
每日推薦
  • 滾動
  • 理財
  • 房產(chǎn)