由中國信息通信研究院主辦、中國通信標準化協(xié)會支持的"OSCAR開源產(chǎn)業(yè)大會"在國家會議中心舉行。
銀行業(yè)云計算發(fā)展論壇作為大會分論壇之一,于22日下午召開。
李曉楓:下面請民生銀行的技術(shù)專家何佳佳給大家分享民生銀行基于開源的運維實踐。開源體系坑多,所以才把運維和開發(fā)理念合在一起,出了新詞。既然你要用開源建私有云,繞不過開源,我們聽民生銀行怎么介紹,請。
民生銀行技術(shù)專家何佳佳帶來的精彩演講題為《民生銀行基于開源的運維實踐》。
以下為演講實錄:
何佳佳:各位領(lǐng)導、專家,大家好,我的分享主題是民生銀行基于開源的運維實踐,其實前面幾位領(lǐng)導和專家都已經(jīng)在云計算,包括開源方面的發(fā)展做了一些指引方面的描述,包括藍圖方面的介紹。我更多會從底層運維支撐角度來看,怎么去做云計算,包括開源的支撐。
我是03年參加工作,基本上到現(xiàn)在剛好分上下半場。上半場在傳統(tǒng)制造業(yè),做過幾乎絕大部分IT各方面的工作,所以IT各個領(lǐng)域基本都有一定了解。下半場加入民生銀行,基本上做核心系統(tǒng)運維,包括關(guān)鍵組件的運維。這兩年更多把精力偏向工具平臺建設(shè),包括ITIL流程,DevOps平臺建設(shè),現(xiàn)在民生銀行在做實踐落地。
民生銀行是比較特殊的銀行,它是第一家民營性質(zhì)全國性股份制銀行,它發(fā)展非??欤?1年的歷程從最開始資本金10幾億,到現(xiàn)在3700億的發(fā)展速度。它有一個特點,業(yè)務(wù)與需求追求短平快,要效果,以結(jié)果為導向。所以,在這種情況下,我們會面臨哪些挑戰(zhàn)呢?剛才提到業(yè)務(wù)的高速發(fā)展情況,有自己的業(yè)務(wù)特色,包括它的靈活性、多樣性。再加上最近幾年互聯(lián)網(wǎng)金融模式,對我行的沖擊比較大,不過民生這方面應(yīng)對也很及時。比如在余額寶出來之后很快對標出來如意寶。在這種業(yè)務(wù)發(fā)展情況下,從業(yè)務(wù)架構(gòu)來講調(diào)整速度非常快,從而帶動底層應(yīng)用架構(gòu),甚至技術(shù)架構(gòu)不停的轉(zhuǎn)變和演進。同時對技術(shù)迭代要求非常高。從以前單一的開發(fā)運行框架到現(xiàn)在多樣化的框架,各類新技術(shù)層出不窮,比如、人工智能,機器學習等等。當然,比較重要的是從封閉商業(yè)軟件模式到基于開源模式的轉(zhuǎn)變。有一個數(shù)字可以證明這些變化量,我們2017年全年所有應(yīng)用變更超過1萬次,而且還在遞增。
從信息科技角度來看,2000年左右我們主要是單體應(yīng)用架構(gòu)。2012年到2013年之間,隨著 新 核心項目上線,改造為了SOA架構(gòu),可以從架構(gòu)圖看到邏輯和應(yīng)用架構(gòu)的復雜性。這兩年有更大的跨度,分布式和微服務(wù)化的改造,和新技術(shù)新架構(gòu)的高速演進,同時通過剛才提到的那些新技術(shù)會去引領(lǐng)業(yè)務(wù),包括應(yīng)用這塊的技術(shù)革新,包括的業(yè)務(wù)革新。比如,2015年開始我們有一個和發(fā)改委合作的金融云科研項目,經(jīng)過2年的研究積累,我們設(shè)計實施了分布式和微服務(wù)架構(gòu)方案,上線了分布式的核心系統(tǒng)。該系統(tǒng)主要采用分布式架構(gòu),也就是我們當時做的金融云科研項目的落地化。另外,新零售信貸體系,利用新興的大數(shù)據(jù)智能分析等技術(shù),實現(xiàn)了決策引擎,反欺詐,貸后監(jiān)測等功能,給業(yè)務(wù)帶來很大的業(yè)務(wù)革新,諸如此類的創(chuàng)新還有很多。
當然,這也給我們的運維帶來了一些難題。從應(yīng)用架構(gòu)演進到技術(shù)迭代,速度是越來越快的,而我們曾經(jīng)的運維支撐能力發(fā)展相對會比較緩慢。這其中存在兩大難題,一個是傳統(tǒng)的運維模式,難以適應(yīng)支持高速變化的應(yīng)用與技術(shù),導致運維不停的被動響應(yīng)需求。另外一個是封閉的商業(yè)軟件工具依賴,需求受限,轉(zhuǎn)型緩慢不靈活,變相增加了運維的被動性,支撐能力因而發(fā)展緩慢。針對這些問題,我們也在思考如何破局。
首先,我們把視角轉(zhuǎn)向運維模式。我們最早的是傳統(tǒng)的組織架構(gòu),會建立很多個專業(yè)領(lǐng)域的中心,實現(xiàn)中心化管理。崗位會有明確職責,崗位之間有一定的隔離性。工具層面,包括流程層面,會和應(yīng)用運維層面有比較清晰的定義。這種機制,是當時的一種比較理想的情況,但不一定適合不斷變化的環(huán)境。那怎么去改變它呢?我們考慮組織機構(gòu)的 云 化。主要從三個方面解決,首先是虛擬化,我們從最痛點的應(yīng)用運維入手,建立虛擬的運維小組,把崗位做業(yè)務(wù)相關(guān)性聚合分組,化整為零,通過虛擬小團隊提高靈活性,同時鼓勵跨組跨中心的輪崗。在此基礎(chǔ)上,建立了兩個跨中心的虛擬組,一個是流程小組,一個是工具與平臺小組。流程組會跨中心設(shè)立流程負責人,整體設(shè)計把控各種IT流程,包括問題、事件、變更等。工具與平臺小組也是多中心協(xié)同,會從實際應(yīng)用場景出發(fā),全局考慮怎么構(gòu)建我們的工具和平臺。在這種虛擬化劃分的基礎(chǔ)上,從而做到整體扁平化管理,統(tǒng)一資源調(diào)配,統(tǒng)一工作流程,實現(xiàn)更有效地協(xié)同合作能力,實現(xiàn)全局信息共享,應(yīng)用場景與工具、流程的深入融合設(shè)計。
工具和平臺層面,我們參考AIOps的理念和漠視,轉(zhuǎn)化設(shè)計了一套自己的運維發(fā)展藍圖。核心基礎(chǔ)能力層面是我們的基礎(chǔ),主要由系統(tǒng)管理中心這邊專門的大數(shù)據(jù)平臺團隊獨立設(shè)計,實現(xiàn)了基于開源的大數(shù)據(jù)基礎(chǔ)架構(gòu)。另外,這個團隊基于開源實施了日志技術(shù)平臺。中間邏輯平臺層包含三個方面。一個是監(jiān)控,主要基于開源Zabbix搭建監(jiān)控體系;自動化與DevOps部分,以前更多是使用商業(yè)軟件,逐步以開源的Ansible,Jenkins等軟件為后臺,做上層的封裝和整合。兩者通過IT服務(wù)管理進行交互與流轉(zhuǎn)。最外層是應(yīng)用場景層面,會從應(yīng)用運維角度看具體的痛點或需求,面向消費場景來驅(qū)動設(shè)計。我們在開源方面還是比較積極的,發(fā)展較快的。比如大數(shù)據(jù)平臺團隊現(xiàn)在不光是在用開源,而且開始貢獻社區(qū)。慢慢的我們就會從購買使用封閉的商業(yè)軟件轉(zhuǎn)向商業(yè)軟件與開源的融合發(fā)展。下邊簡單給大家介紹這幾個層次的情況。
核心基礎(chǔ)能力主要是指大數(shù)據(jù)基礎(chǔ)架構(gòu),設(shè)計實現(xiàn)了三大集群,分計算集群、非計算集群和實時計算集群,三個平臺各司其職,分別服務(wù)于批量數(shù)據(jù)任務(wù)、聯(lián)機查詢以及實時消息和流處理。這么多資源怎么管控是一個很大的問題,大數(shù)據(jù)管控平臺是我們團隊專門自主研發(fā)的,用于支撐大數(shù)據(jù)基礎(chǔ)架構(gòu)運行。平臺層面實現(xiàn)界面邏輯和執(zhí)行層Ansible的封裝。支持項目管理、功能管理,同時還有批量作業(yè)發(fā)起,資源池使用監(jiān)控跟蹤等功能。日志技術(shù)平臺,主要是基于ELK技術(shù)棧構(gòu)建,我們建立了全行的整體日志視圖,總行和分行的分層體系結(jié)構(gòu),通過平臺統(tǒng)一管理所有的日志。包括日志收集、傳輸、存儲、分析、可視化,都在這個大平臺里面完成。
監(jiān)控方面,主要是在zabbix之上做二次開發(fā)和封裝,一個是建立新的監(jiān)控體系,二是和老的監(jiān)控平臺的集成融合。通過大數(shù)據(jù)平臺做分析,以及后處理響應(yīng)動作。另外,我們近期在實施容器云,容器方面的監(jiān)控重要的工作,我們也是通過基于Zabbix的新監(jiān)控體系來實現(xiàn)對容器的支持。
接下來是重點的應(yīng)用場景層。應(yīng)用場景我們更多是從應(yīng)用運維角度出發(fā)進行設(shè)計實現(xiàn)。給大家介紹幾個場景,第一個場景, onplat全景運維平臺,實現(xiàn)實時業(yè)務(wù)數(shù)據(jù)分析和可視化。主要功能包括業(yè)務(wù)數(shù)據(jù)可視化,實時分析,根本原因分析與問題診斷,主動感知系統(tǒng)交易質(zhì)量,包括異動、風險,及時反饋。這個項目在去年獲了兩個獎,一個是金融電子化頒發(fā)的運維創(chuàng)新貢獻獎,一個是行內(nèi)科技創(chuàng)新二等獎。這個圖比較直觀,當前銀行的架構(gòu)變得越來越復雜,比如SOA,分布式、微服務(wù)化面臨同樣的問題。舉一個例子,3秒鐘的交易,要穿過很多城市機房、系統(tǒng),包括服務(wù)器,怎么定位,怎么找問題原因,其實是一個特別難的話題。
下邊這幅圖是以前的一個真實的案例,一個比較局部的交易緩慢問題引發(fā)的一次特別費力的診斷過程,這里不再詳細描述,主要是兩大難題亟待解決。一個是全局優(yōu)化沒有特別直觀的告訴我們到底哪個點出了異常,二是局部問題掩蓋在全局得海量交易里面,難于定位。
基于這些痛點,我們開始著手發(fā)起這個項目。主要的設(shè)計思路是在應(yīng)用服務(wù)運行過程中,旁路無感知的自動完成信息收集和各項檢查,通過API提供給上層做實時展示,多維度分析,甚至通過動態(tài)規(guī)則引擎、機器學習的參與,再反饋到上層做問題根本原因分析和整體運行情況匯聚實時展示。下邊這幅圖是當前的實現(xiàn),一個是非常簡單的主頁入口,能輸入很多要素,比如返回碼、IP系統(tǒng)簡稱、流水號、服務(wù)名、日期、系統(tǒng)A到系統(tǒng)B的訪問關(guān)系等,后臺自動區(qū)分進入不同的分析視圖。另外也可以直接訪問系統(tǒng)全局運行視圖,實時地匯聚展示了系統(tǒng)健康情況和每個系統(tǒng)之間鏈路的情況。如果下層某個指標出現(xiàn)異動,會在上層快速響應(yīng)出來,比如做紅色高亮顯示,能夠很快知道出了問題以及問題所在。視圖支持點擊下鉆到應(yīng)用或鏈路視圖。我們設(shè)立了三個指標集,交易量、性能和異常,圍繞這三個指標集進行多維度分析。
應(yīng)用視圖,用于展示應(yīng)用和交易鏈路的情況,同樣圍繞著剛才提到的三個指標集進行分析。通過動態(tài)規(guī)則引擎以及機器學習,進行分析和判斷,識別異常變動和趨勢。例如左下角的服務(wù)調(diào)用分析,通過規(guī)則判斷,展示當前交易情況和歷史同期正常情況,進行比對展示。另外還有交易尖峰分析,我們可以在界面上快速拖拉拽,快速識別異常點和問題原因。
下邊的功能場景是單筆交易鏈路分析。這部分功能對于運維來講非常有用,比如圖上這一筆端到端的交易調(diào)用,途經(jīng)十幾個系統(tǒng)、服務(wù),通過這個功能可以直觀的看到具體慢在哪個原子服務(wù),到底哪個環(huán)節(jié)出了異常。
這個平臺整個框架比較簡單,數(shù)據(jù)分析邏輯是基于大數(shù)據(jù)平臺來實現(xiàn)的,使用了Kafka,Spark Streaming,ES,Redis等等組件。流程可視化層,利用民生自有的開放框架形成平臺,上層使用開源的UI組件,嵌入自然語言處理。
第二個應(yīng)用場景是我們的自主創(chuàng)新項目實時指標駕駛艙,用于展示商業(yè)銀行的基本經(jīng)營指標,包括資產(chǎn)、負債等等的實時情況。民生銀行過去只能做到T+1日報表查看前一天的數(shù)據(jù),通過這套新的框架,現(xiàn)在可以秒級近實時地看到當前指標,包括存款、貸款等各項指標?,F(xiàn)在我們的行領(lǐng)導每天都要多次查看這個功能。這個功能可以在手機上方便的查看實時情況,實現(xiàn)下鉆分析到多個維度,比如按機構(gòu)統(tǒng)計。另外實現(xiàn)快速識別大額異動的交易。邏輯角度不再詳細描述,主要包括三層,數(shù)據(jù)接入層,數(shù)據(jù)計算層,接口服務(wù)層,最終提供到手機上進行展示。
第三個場景是針對更多的分布式系統(tǒng)上線,提供關(guān)鍵的分布式交易追蹤功能。分布式架構(gòu)內(nèi)部的調(diào)用復雜,難于故障排查。我們通過分布式的服務(wù)框架,逐筆按照規(guī)范定義記錄調(diào)用信息,通過ES進行持久化存儲,集成開源Zipkin進行分布式追蹤展示,這樣分布式系統(tǒng)的問題定位會很便捷。這個功能已經(jīng)與之前的Onplat項目打通,實現(xiàn)外部調(diào)用與內(nèi)部調(diào)用的聯(lián)動整合。
第四個是應(yīng)用系統(tǒng)一眼清平臺,實現(xiàn)基于模板快速進行配置,把所有信息匯集在一起,包括交易情況,各種中間件、服務(wù)器、數(shù)據(jù)庫等中下層基礎(chǔ)設(shè)施的信息,做到一眼就能看清應(yīng)用系統(tǒng)的整體運行情況。
剛才提到的這些應(yīng)用案例只是我們運維工具和平臺建設(shè)的一部分,還有其他的一些工作。比如正在進行的標準化組件開發(fā),我們建立了標準的日志組件提供給應(yīng)用開發(fā)團隊使用,其他類型的組件也在設(shè)計。運維下一步的規(guī)劃分幾個方面,一方面深入設(shè)計應(yīng)用場景,部分開始實現(xiàn)業(yè)務(wù)方面的需求,這個我們與業(yè)務(wù)部門在做合作推廣;另一方面,會加強前端平臺層面的建設(shè),即時通訊的聯(lián)動,提供更豐富的API,移動端的展示等等;同時,計劃把更多海量數(shù)據(jù)通過機器學習,抽象為知識沉淀到知識管理體系,再形成一套固定的后處理方案,通過自動化,實現(xiàn)自愈自治的能力。
我的分享就到這里,謝謝大家!
文章編輯:CobiNet(寧波)
本公司專注于電訊配件,銅纜綜合布線系列領(lǐng)域產(chǎn)品研發(fā)生產(chǎn)超五類,六類,七類線,屏蔽模塊,配線架及相關(guān)模塊配件的研發(fā)和生產(chǎn)。
?2016-2019寧波科博通信技術(shù)有限公司版權(quán)所有浙ICP備16026074號