摘要: 南京銀行經過自身實踐經驗,分享銀行業如何實現高效研發,如何利用工具實施DevOps,如何加速產品的快速迭代和創新,在108天完成新金融轉型。數據庫
在2018雲棲大會南京峯會企業研發雲專場,由南京銀行研發管理負責人吳攀帶來了「雲效助力新金融DevOps轉型——南京銀行實踐之路」的主題分享。首先對南京銀行的研發規模與成長作了介紹,對「鑫雲+」的誕生和其架構應用作了詳細的講解。安全
如下爲精彩視頻內容整理:架構
簡單給你們介紹一下南京銀行如今的規模,南京銀行的科技如今有運維中心、研發中心和科技管理部,我是在科技管理部負責配置管理和研發過程管理。咱們如今正式的員工有200多人,外包合做場商有600多人,在線運營的運營系統有300多個。
有人說銀行不就是有櫃面、網銀、手機銀行嗎?在這裏想和你們解釋一下,舉個例子。一個貸款的產品,除了要涉及到自己的核心櫃面,貸款自己的系統之外,可能還涉及到風控,涉及到大數據,而後總帳,還有帳戶管理,還有監管。那麼銀行的這種交易的特殊性,致使了每個產品可能都有不少個系統在背後支撐,也就致使了交易的鏈路會很是的長。運維
很榮幸在加入南京銀行以後正好是金融快速發展的這些年,見證了南京銀行科技力量不斷加強的一個過程。最開始的時候銀行可能只有幾個系統結構簡單,但仍是有不少技術強人,他可能技術能力很全面,他可能一我的就把系統都作好了,把一個系統維護好。那麼銀行的業務不斷擴展,用戶能夠買理財,買債券,能夠融資等,這樣就致使了很複雜的系統結構。這個時候若是還像原來做坊式的開發模式就行不通了。舉個例子,在剛剛工做的時候有一個項目經理,他是很是負責任的,他天天下班前都會作一個excel表記錄團隊裏每一個人今天修改了哪些代碼,在哪一個模塊上作了什麼,這樣手動去記。在多行研發的時候根本就不可能完成的。到2014年的時候系統已經到200套了,也就大概六七十我的,這個時候僅僅靠人是根本不能完成的。這個時候就決定要引入外部的管理,要有流程,要有質量。2014年的時候得到了CMMI ML3和ISO的體系認證。分佈式
在建設這些體系的過程當中也是跟傳統銀行業同樣遇到了不少痛點,好比廠商不少,拿過來的原型也不少。原先的這種模式是外購爲主,通過適配很快就能把業務鏈接起來。這樣的弊端就是各類各樣的技術架構,很是複雜,在這樣複雜的系統架構裏邊去實施一個流水線是一件很是痛苦的事情,同時也帶來了銀行的業務要求須要迭代很是快。若是這麼多的問題,沒有一個工具來管理的話,是不能徹底應付的。當時咱們也作了一些統一的工做,設立了一些系統把需求管起來。架構也要統一塊兒來,即便是一部分的統一也要儘可能的保持不要浪費資源。配置管理也用了一些集成的工具,還有測試到部署。可是一個點的快並非全流程的快,想要快速交付這個價值,須要一個完整的不能中斷的流水線才能盡善盡美。這些問題怎麼解決呢?接下來進行一個介紹。微服務
2017年1月份這個思想才萌芽,真正開始進廠的時候是2017年的7月,等到上線是2017年11月,先來介紹一下「鑫雲+」是一個什麼概念呢?南京銀行是鑫合俱樂部的一個牽頭行,鑫合俱樂部有140家成員行,全部的資金在一個聯盟裏面。另外的一頭鏈接的是互聯網。做爲這兩頭的橋樑,能夠鏈接出不少種可能。工具
「鑫雲+」從7月份進廠以後就對廠商原有的產品作了重構,全部的規範所有重來。拆成微服務、換數據庫中間全部的這些標準所有按照阿里螞蟻的要求作修改。在這個基礎上提出來DevOps體系。學習
雲效在DevOps上落地的一些內容,從開發開始→測試→集成→部署,包括環境管理、監控。這一套整個的可視化很是的強,也簡單易用的一個流水線。這樣的話工做者不須要學不少,尤爲是測試人員,只須要三堂課就能夠將上萬條案例都測試完。測試
在雲效值得學習的三個地方,第一個就是分支開發的這個模式,在傳統端,好比有一個老的開發系統已經開發了很長時間,有一個大的模塊可能半年才上。可是同時又有其餘小的需求,可能一兩週就要上,同時可能也有一些bug要修復,三條線並行。這時候每每出現的一種狀況是雖然也分支了,可是並不能管控全部人的提交時間,可能提交的時候會產生衝突,就須要解決衝突,配管員就是解決衝突的。還有一種就是在只有一個主幹的時候,上線的時候統統往上交,交到最後發現又要去解決依賴的問題。因此這個時候自動化就根本沒法實施,交付的自動化當時對於咱們來講是很是難解決的問題可是雲上解決了。
雲效首先永遠有一個保持正確的主幹,來了一個需求以後,會有特性分支,並行的特性分支開發完以後。若是這三個需求都要上,那就從主幹上打出一個集成分支到認證環節去測。若是發現有問題有一個需求不能上,所有回滾回來把正確的兩個打出集成再往下走。全部的這些自動化很是的快,不須要在裏邊摘代碼,不須要查看衝突,都能快速的完成。大數據
在2016年新核心上線的時候上了一個新的系統,核心系統對於一個銀行來講至關於信道,它的改動會使其餘系統獲得改動,當時這個系統的重建也是很是巨大的一個工程。在當時的時候是沒有一個這樣好的自動化的測試工具,因此當時測試是一個很是耗成本的事情。到了「鑫雲+」的時候咱們也是核心,咱們是全國首家商業銀行可以實現分佈式核心的銀行。 「鑫雲+」是一個通道式的平臺,其實大部分的時候是沒有界面的,靠人工測界面是測不起來的,可是又但願提早去發現這些問題。因此更多的時候測試是要分層次的,更多的是對接口的測試針對服務的測試,把這些都測掉,別切雲效可以在它的系統裏作自動的留痕。保證再去從新跑一遍的時候只要是修改的測過的都可以正確的上去。
在這裏要感謝雲效,一開始是採用混合雲的架構,在公有云上測試,在私有云上面生產。
這樣的話,就必需要有一個鏈路去通到公有云。雲效在這裏幫助作了一些安全策略,或多箇中樞扭轉的這種設計,使得咱們既能知足監管要求也可以無縫對接迭代快速的開發模式。