在2018雲栖大會南京峰會企業研發雲專場,由南京銀行研發管理負責人吳攀帶來了“雲效助力新金融DevOps轉型——南京銀行實踐之路”的主題分享。首先對南京銀行的研發規模與成長做了介紹,對“鑫雲+”的誕生和其架構應用做了詳細的講解。
以下為精彩視訊内容整理:
南京銀行研發規模概況
簡單給大家介紹一下南京銀行現在的規模,南京銀行的科技現在有運維中心、研發中心和科技管理部,我是在科技管理部負責配置管理和研發過程管理。我們現在正式的員工有200多人,外包合作場商有600多人,線上營運的營運系統有300多個。
有人說銀行不就是有櫃面、網銀、手機銀行嗎?在這裡想和大家解釋一下,舉個例子。一個貸款的産品,除了要涉及到本身的核心櫃面,貸款本身的系統以外,可能還涉及到風控,涉及到大資料,然後總賬,還有賬戶管理,還有監管。那麼銀行的這種交易的特殊性,導緻了每一個産品可能都有很多個系統在背後支撐,也就導緻了交易的鍊路會非常的長。
南京銀行研發管理的成長曆程
很榮幸在加入南京銀行之後正好是金融快速發展的這些年,見證了南京銀行科技力量不斷增強的一個過程。最開始的時候銀行可能隻有幾個系統結構簡單,但還是有很多技術強人,他可能技術能力很全面,他可能一個人就把系統都做好了,把一個系統維護好。那麼銀行的業務不斷擴充,使用者可以買理财,買債券,可以融資等,這樣就導緻了很複雜的系統結構。這個時候如果還像原來作坊式的開發模式就行不通了。舉個例子,在剛剛工作的時候有一個項目經理,他是非常負責任的,他每天下班前都會做一個excel表記錄團隊裡每個人今天修改了哪些代碼,在哪個子產品上做了什麼,這樣手動去記。在多行研發的時候根本就不可能完成的。到2014年的時候系統已經到200套了,也就大概六七十個人,這個時候僅僅靠人是根本不能完成的。這個時候就決定要引入外部的管理,要有流程,要有品質。2014年的時候獲得了CMMI ML3和ISO的體系認證。
傳統金融業研發過程管理痛點
在建設這些體系的過程中也是跟傳統銀行業一樣遇到了很多痛點,比如廠商很多,拿過來的原型也很多。原先的這種模式是外購為主,經過适配很快就能把業務連接配接起來。這樣的弊端就是各種各樣的技術架構,非常複雜,在這樣複雜的系統架構裡邊去實施一個流水線是一件非常痛苦的事情,同時也帶來了銀行的業務要求需要疊代非常快。如果這麼多的問題,沒有一個工具來管理的話,是不能完全應付的。當時我們也做了一些統一的工作,設立了一些系統把需求管起來。架構也要統一起來,即使是一部分的統一也要盡量的保持不要浪費資源。配置管理也用了一些內建的工具,還有測試到部署。但是一個點的快并不是全流程的快,想要快速傳遞這個價值,需要一個完整的不能中斷的流水線才能盡善盡美。這些問題怎麼解決呢?接下來進行一個介紹。
“鑫雲+”的誕生
2017年1月份這個思想才萌芽,真正開始進廠的時候是2017年的7月,等到上線是2017年11月,先來介紹一下“鑫雲+”是一個什麼概念呢?南京銀行是鑫合俱樂部的一個牽頭行,鑫合俱樂部有140家成員行,所有的資金在一個聯盟裡面。另外的一頭連接配接的是網際網路。作為這兩頭的橋梁,可以連接配接出很多種可能。
“鑫雲+”項目架構變革
“鑫雲+”從7月份進廠之後就對廠商原有的産品做了重構,所有的規範全部重來。拆成微服務、換資料庫中間所有的這些标準全部按照阿裡螞蟻的要求做修改。在這個基礎上提出來DevOps體系。
雲效在DevOps上落地的一些内容,從開發開始→測試→內建→部署,包括環境管理、監控。這一套整個的可視化非常的強,也簡單易用的一個流水線。這樣的話工作者不需要學很多,尤其是測試人員,隻需要三堂課就可以将上萬條案例都測試完。
“鑫雲+”項目并行開發、多分支管理、持續內建
在雲效值得學習的三個地方,第一個就是分支開發的這個模式,在傳統端,比如有一個老的開發系統已經開發了很長時間,有一個大的子產品可能半年才上。但是同時又有其他小的需求,可能一兩周就要上,同時可能也有一些bug要修複,三條線并行。這時候往往出現的一種情況是雖然也分支了,但是并不能管控所有人的送出時間,可能送出的時候會産生沖突,就需要解決沖突,配管員就是解決沖突的。還有一種就是在隻有一個主幹的時候,上線的時候通通往上交,交到最後發現又要去解決依賴的問題。是以這個時候自動化就根本無法實施,傳遞的自動化當時對于我們來說是非常難解決的問題但是雲上解決了。
雲效首先永遠有一個保持正确的主幹,來了一個需求之後,會有特性分支,并行的特性分支開發完之後。如果這三個需求都要上,那就從主幹上打出一個內建分支到認證環節去測。如果發現有問題有一個需求不能上,全部復原回來把正确的兩個打出內建再往下走。所有的這些自動化非常的快,不需要在裡邊摘代碼,不需要檢視沖突,都能快速的完成。
“鑫雲”項目測試效能提升
在2016年新核心上線的時候上了一個新的系統,核心系統對于一個銀行來說相當于信道,它的改動會使其他系統得到改動,當時這個系統的重建也是非常巨大的一個工程。在當時的時候是沒有一個這樣好的自動化的測試工具,是以當時測試是一個非常耗成本的事情。到了“鑫雲+”的時候我們也是核心,我們是全國首家商業銀行能夠實作分布式核心的銀行。 “鑫雲+”是一個通道式的平台,其實大部分的時候是沒有界面的,靠人工測界面是測不起來的,但是又希望提前去發現這些問題。是以更多的時候測試是要分層次的,更多的是對接口的測試針對服務的測試,把這些都測掉,别切雲效能夠在它的系統裡做自動的留痕。保證再去重新跑一遍的時候隻要是修改的測過的都能夠正确的上去。
“鑫雲+”混合雲架構的安全政策管理
在這裡要感謝雲效,一開始是采用混合雲的架構,在公有雲上測試,在私有雲上面生産。
這樣的話,就必須要有一個鍊路去通到公有雲。雲效在這裡幫助做了一些安全政策,或多個中樞扭轉的這種設計,使得我們既能滿足監管要求也能夠無縫對接疊代快速的開發模式。