金融科技:中国农行研发中心DevOps规划与实践
本文根據(jù)〖2019 DAMS中國數(shù)據(jù)智能管理峰會〗現(xiàn)場演講內(nèi)容整理而成。
講師介紹
姚元慶,中國農(nóng)業(yè)銀行研發(fā)中心資深專員,具有十余年金融業(yè)軟件研發(fā)、項目管理經(jīng)驗。長期致力于組織級項目管理、PMO建設(shè)、敏捷研發(fā)規(guī)劃,以及作為教練為項目提供支持等工作。
大家好,今天與大家分享的內(nèi)容是DevOps在國有大型商業(yè)銀行的規(guī)劃與實踐,審視從國有大型商業(yè)銀行視角看一下DevOps怎么樣規(guī)劃與實踐。分享內(nèi)容大致是這樣的:
分享概要
1、目標(biāo)和背景
2、體系架構(gòu)
3、三條主線,即:工具、流程、規(guī)范
4、總結(jié)
一、背景與目標(biāo)
在去年下半年和今年上半年,我行提出了數(shù)字化轉(zhuǎn)型戰(zhàn)略。今年上半年的機(jī)構(gòu)體制改革已經(jīng)完成了,業(yè)務(wù)和科技部門在組織結(jié)構(gòu)上進(jìn)行了相關(guān)調(diào)整。
金融行業(yè)在研發(fā)過程中,經(jīng)常提到的是雙模研發(fā),其中在核心系統(tǒng)上還是要用原來傳統(tǒng)的方式來進(jìn)行研發(fā)。
在業(yè)務(wù)角度,核心系統(tǒng)不會有那么大的變化,相對變化比較大一般都是掌銀、網(wǎng)銀及新興業(yè)務(wù)方面,所以,在核心系統(tǒng)上采用穩(wěn)態(tài)研發(fā)、瀑布式的或者接近瀑布式的方式是一個非常理智的選擇。
而在其他方面,比如說網(wǎng)銀掌銀,市場變化壓力非常大,如果不快起來,業(yè)務(wù)也會讓你快起來,企業(yè)也會讓你快,還要保持四平八穩(wěn),那是不想干了,是吧!
今年6月份,研發(fā)中心與信通院在DevOps方面進(jìn)行共建。我們DevOps方面的目標(biāo)可以簡要概括為“1、3、5”:一個平臺(DevOps),連接三個角色(開發(fā)、測試、運(yùn)維),打通五個環(huán)節(jié)(需求、開發(fā)、測試、部署、運(yùn)維)。如此構(gòu)建農(nóng)業(yè)銀行研發(fā)中心的DevOps體系。
二、體系框架
體系框架方面,與大家說體系框架之前,把我最深刻一個體會與大家分享:那就是“零”。
“零”是什么呢?其實對DevOps內(nèi)容來說,大家覺得DevOps是干什么的?對于企業(yè)來說:DevOps也好、敏捷也好、之前的CMMI也好,都只是企業(yè)實現(xiàn)目標(biāo)的一個工具和手段。
有段時間CMMI、DevOps或者敏捷,相關(guān)內(nèi)容在企業(yè)進(jìn)行推銷的時候,如果Get到企業(yè)的管理訴求、解決企業(yè)的痛點問題,其實叫DevOps還是什么都無所謂,尤其對大企業(yè)來講,這個是最最重要一點。
還有一點我需要跟大家特別掏心窩的說一下,DevOps是什么?在學(xué)術(shù)和交流角度務(wù)必要清楚;但是,在企業(yè)角度最重要的是它能給企業(yè)帶來什么價值。
DevOps是什么?拿這個圖來說。大家看像是一個房子。DevOps就是裝修隊如何來裝修你的房子。DevOps在傳播過程中,首要提到的是拆墻(如:拆除研發(fā)與運(yùn)維的墻、業(yè)務(wù)與技術(shù)的墻,當(dāng)然也有企業(yè)與用戶的墻)。讓大家能更好的溝通和交流,快速的實現(xiàn)價值的交付。
這兩年,我們科技圈的Dev和Ops是不夠,視野太狹窄了。其實至少要到科技和業(yè)務(wù),拿銀行的詞而就是痛毆“業(yè)技融合”來快速響應(yīng)市場的需求。
以下幾點很重要:有的企業(yè)能拆墻,有的企業(yè)只能從墻上開一扇門,有的企業(yè)最多能開一扇窗,有的企業(yè)可能只能鉆一個孔。
對于實際執(zhí)行者,需要考慮一下,適合企業(yè)現(xiàn)狀的是拆墻、建門、開窗還是打孔,這個是最關(guān)鍵的一個點,否則大家就是在聊DevOps,聊DevOps而不是在做DevOps。
在做DevOps時一定要記住:你是在干嘛?拆墻、開門、開窗、還是打孔。如果孔都打不了,那DevOps就展示不要想了,先等等或嘗試推動。
我們剛開始做敏捷只是開發(fā)過程敏捷,有些情況下只能做到這個范圍,甚至有一些團(tuán)隊這都做不到。需要根據(jù)實際情況,下面做的內(nèi)容是我們的一些探索與實踐,站在研發(fā)中心角度,我們怎么來拆墻,開門,開窗打孔。
首先是體系框架圖。在信通院DevOps體系規(guī)范里面有這樣一個體系框架圖。我們也基本上延用了相關(guān)內(nèi)容,但是跟它比有一些特色。因為我們企業(yè)的形式其它企業(yè)不一樣,我們是一個研發(fā)中心,就是上面有業(yè)務(wù)部門,下面有運(yùn)維部門。
例如:
-
在我們的規(guī)范中叫組織文化。原版體系架構(gòu)叫企業(yè)文化;
-
工具里面一站式工具平臺,按照我們的工具平臺寫的;
-
再下面是流水線,我們是從提交、一直到部署和運(yùn)維,而不是更長的一個流程;
-
隨后是技術(shù)架構(gòu)、應(yīng)用架構(gòu),我們是有使用自己的Saas,IaaS,PaaS。
通過體系框架的比較,大家可以看到,我們跟業(yè)界方式方法基本一樣,同時,根據(jù)相關(guān)實際情況進(jìn)行了一些改造和優(yōu)化。
其次是三條主線,工具、流程、規(guī)范。
-
在工具方面,我們要建設(shè)統(tǒng)一的平臺:DevOps集成平臺;
-
在流程方面,建設(shè)持續(xù)交付流水線、推進(jìn)自動化測試、完善運(yùn)營監(jiān)控;
-
在規(guī)范方面,建立一個質(zhì)量視圖和打造DevOps組織規(guī)范。
三、實施路線——工具部分
工具方面:我們會根據(jù)規(guī)劃進(jìn)行一個逐步收斂,比如:配置管理工具、代碼白盒檢查、構(gòu)建和發(fā)布工具等。
同時,進(jìn)行管理鏈和開發(fā)鏈的一體化,測試鏈與開發(fā)鏈一體化,形成研發(fā)側(cè)的工具鏈。
之后,就是研發(fā)態(tài)和運(yùn)營態(tài),對應(yīng)就是研發(fā)工具鏈和運(yùn)營工具鏈。形成統(tǒng)一的DevOps平臺。
三、實施路線——流程部分
流程方面:有了工具,還需要用流程進(jìn)行規(guī)范。比如:持續(xù)交付的流程,大家都是差不多,從業(yè)務(wù)需求,通過編碼構(gòu)建然后一直到測試環(huán)境,一直部署到生產(chǎn)部署。
這里有一點需要說明,部署到生產(chǎn)環(huán)境需要符合銀保監(jiān)會相關(guān)要求。測試方面、運(yùn)營監(jiān)控方面處理思路與此類似。
四、實施路線——規(guī)范部分
規(guī)范方面:規(guī)范部分可能這里面比較重要的就是質(zhì)量視圖,大家都知道-PDCA。
我們統(tǒng)一的過程管理整體視圖是這樣的,質(zhì)量視圖是分層級的,例如管理類視圖,首先是制作“勢能大”、對其它工作有指導(dǎo)作用的領(lǐng)導(dǎo)層使用的報表,通常是與考核和績效有關(guān)的報表和指標(biāo)。
在開發(fā)類視圖中,大部分是技術(shù)方面的。比如配置管理工具、代碼掃描工具、安全掃描工具、構(gòu)建工具等,它們?yōu)轫椖拷M、團(tuán)隊來提供運(yùn)行情況的信息。旁邊,有生產(chǎn)環(huán)境有運(yùn)營鏈對應(yīng)的報表和指標(biāo)。
質(zhì)量體系中質(zhì)量視圖有指標(biāo),大家都關(guān)心指標(biāo)。我們做了大致的分類,預(yù)計會形成這樣一個視圖,橫向是我們的指標(biāo)所產(chǎn)生的階段,縱向是指標(biāo)的大分類。比如說周期,會有什么樣的指標(biāo),跨的范圍是什么樣的,效率會在哪個方面,不同顏色表示著不同的關(guān)注程度。有些指標(biāo)可以促進(jìn)系統(tǒng)內(nèi)部改進(jìn)和系統(tǒng)之間對比讓大家相互促進(jìn)。
如果把整個圖畫出來、把所有指標(biāo)全都標(biāo)出來肯定是比較大的圖。可以把一些,最后關(guān)注點里面的指標(biāo)先列出來,大家能看到我們關(guān)注什么,并且關(guān)注是在什么階段。
這是我們的儀表板樣例,包括周期、項目數(shù)量、交付的時間、以及所屬部門等等。通過度量體系和相關(guān)儀表板。我們可以滿足領(lǐng)導(dǎo)層進(jìn)而是各個成績了解實時情況。
下面說談一下DevOps組織規(guī)范。正中間是DevOps的文化建設(shè)和體系建設(shè)。文化建設(shè)又包含了我們的一些制度標(biāo)準(zhǔn)、敏捷培訓(xùn)體系、指標(biāo)與監(jiān)控等方面內(nèi)容;技術(shù)體系方面包括DevOps集成平臺、持續(xù)交付流水線、分層自動化測試體系、監(jiān)控運(yùn)維分析、統(tǒng)一質(zhì)量視圖等。
它們共同作用、在技術(shù)方面有DevOps平臺,在文化建設(shè)方面有標(biāo)準(zhǔn)。還需要定期的外部和內(nèi)部自檢、評價,逐步建立我們DevOps的相關(guān)規(guī)范。
六、總結(jié)
輸出成果方面,建立農(nóng)業(yè)銀行的DevOps成熟度評價體系。可以評估某個研發(fā)系統(tǒng)的DevOps成熟度,這個大家可以對比一下原來的CMMI,我們做這個東西更多是讓內(nèi)部有一個評價、評估和考核方面的需要。
在考核體系方面,主要考核內(nèi)容是交付周期,什么時候接到業(yè)務(wù)需求,一直到什么時候交付給業(yè)務(wù)。
今天與大家交流了最開始的企業(yè)使用DevOps、敏捷等最重要的“零”;之后,介紹了1+3,即:一個體系框架加上工具、流程、規(guī)范。希望能對大家有所幫助。
>>>>
Q&A
Q1:我們公司也是大型國企,現(xiàn)在領(lǐng)導(dǎo)已經(jīng)確定了要上DevOps,但因為我們有眾多的外包合作方。我們希望借助這個平臺和工具鏈,把很多項目外包模式逐步轉(zhuǎn)成人力外包。在這個中間,有您里面提到的組織文化建設(shè)和規(guī)范推動的過程,所以我就想慢慢向合作方推或者是要改變很多不同的現(xiàn)有工作模式,有沒有什么好的建議?
A:領(lǐng)導(dǎo)為什么要推DevOps?解決了企業(yè)的一個什么樣的痛點?這個痛點是不是真的痛或者是癢點,大型企業(yè)的關(guān)注點的可能比較多,我們要分清,是否真的要解決問題和解決什么問題才去做DevOps。
外包是DevOps需要注意的一個坑,我個人覺得的重要的是,你要怎么來考慮激勵他?外包人員如何融入?這些是跟企業(yè)內(nèi)部員工完全不一樣的。你把這個方面解決一下,人員激勵能夠融入團(tuán)隊里面來,做到這點才能解決你那個問題,逐漸把供應(yīng)商的技術(shù)能力固化到你們企業(yè)里。激勵方面才是最重要的事情,要不然也不要考慮其他的了。
想掌握的產(chǎn)品,跟你的技術(shù)能力是要匹配的,我們的特點是大型商業(yè)銀行,需要承擔(dān)社會責(zé)任、需要遵照銀保監(jiān)會相關(guān)要求,我們會一定會滿足“風(fēng)險可控”,同時也會進(jìn)行“make or buy”分析,采取恰當(dāng)?shù)姆绞健?/p>
Q2:您覺得市場上隨著DevOps不斷發(fā)展,是如何改變開發(fā)人員和運(yùn)維人員之間的一種合作方式?
A:開發(fā)人員和運(yùn)維人員想改變的就一個,原來大家目標(biāo)是不一樣,開發(fā)受業(yè)務(wù)要求,要盡快發(fā)布新的功能,運(yùn)維那邊希望盡可能穩(wěn)定,別出事,目標(biāo)不一致導(dǎo)致原來協(xié)作方式出現(xiàn)那堵墻。
如何讓他們目標(biāo)一致協(xié)作起來,根本原因蠻簡單,讓這堵墻沒有,原來是因為目標(biāo)不一致產(chǎn)生的墻,現(xiàn)在讓目標(biāo)一致。
怎么一致?就是涉及到企業(yè)文化、團(tuán)隊組成、考核,才可能把這墻打破。如果只是通過工具,剛開始是孔,把信息傳遞過去,原來信息都傳遞不過去怎么弄?
現(xiàn)在通過工具孔,把信息傳遞過去之后,逐步讓墻變得透風(fēng)了,慢慢建窗、門。慢慢的推倒這堵墻,一定要讓大家目標(biāo)一致。
這個雖然看起來虛,但就是根本。協(xié)調(diào)目標(biāo)這個事情是一個大手筆,通常需要改變組織結(jié)構(gòu)。
Q3:我比較好奇,在大型金融機(jī)構(gòu)里頭,目前在機(jī)構(gòu)里推DevOps都是研發(fā)機(jī)構(gòu)發(fā)起的,為什么不是數(shù)據(jù)中心發(fā)起呢?
A:這個問題真的是一個好問題,Patric發(fā)起DevOps時是從一個運(yùn)維側(cè)逐漸發(fā)展起來的。大家做所有相關(guān)實踐,大部分都是從運(yùn)維角度考慮。這個沒錯,那么為什么銀行這邊大部分是從研發(fā)這個角度來?我個人理解不一定對,是因為整個銀行壓力傳導(dǎo)點與前面說的情況不一樣。
剛才說DevOps的時候是面臨著運(yùn)維壓力,然后說要改,銀行這邊壓力點是在開發(fā)部門,并且是業(yè)務(wù)給開發(fā)端的壓力。為什么業(yè)務(wù)會給開發(fā)端這些壓力?原因是多方面的,其中肯定是業(yè)務(wù)需求旺盛和或業(yè)務(wù)交付速度不夠快。
假如說是這樣的情況,對比同業(yè)交付速度比較快,而銀行業(yè)務(wù)略微慢一些。這個時候壓力就會出來,交付的壓力會傳導(dǎo)給誰?肯定是研發(fā)中心。我們就面臨著所有的整個業(yè)務(wù),這時,運(yùn)維方面還沒有傳到到呢、或者感受的比較小。
?
?
總結(jié)
以上是生活随笔為你收集整理的金融科技:中国农行研发中心DevOps规划与实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贪心算法之——独木舟上的旅行(nyoj7
- 下一篇: 贪心算法之——阶乘之和(nyoj91)