云效合作南京銀行:新金融DevOps的轉型實踐
在2018云棲大會南京峰會企業研發云專場,由南京銀行研發管理負責人吳攀帶來了“云效助力新金融DevOps轉型——南京銀行實踐之路”的主題分享。首先對南京銀行的研發規模與成長做了介紹,對“鑫云+”的誕生和其架構應用做了詳細的講解。
(1)客戶介紹
簡單給大家介紹一下南京銀行現在的規模,南京銀行的科技現在有運維中心、研發中心和科技管理部,我是在科技管理部負責配置管理和研發過程管理。我們現在正式的員工有200多人,外包合作場商有600多人,在線運營的運營系統有300多個。
(2)項目背景
很榮幸在加入南京銀行之后正好是金融快速發展的這些年,見證了南京銀行科技力量不斷增強的一個過程。2014年的時候獲得了CMMI ML3和ISO的體系認證。
在建設這些體系的過程中也是跟傳統銀行業一樣遇到了很多痛點,比如廠商很多,拿過來的原型也很多。原先的這種模式是外購為主,經過適配很快就能把業務連接起來。這樣的弊端就是各種各樣的技術架構,非常復雜,在這樣復雜的系統架構里邊去實施一個流水線是一件非常痛苦的事情,同時也帶來了銀行的業務要求需要迭代非常快。如果這么多的問題,沒有一個工具來管理的話,是不能完全應付的。當時我們也做了一些統一的工作,設立了一些系統把需求管起來。架構也要統一起來,即使是一部分的統一也要盡量的保持不要浪費資源。配置管理也用了一些集成的工具,還有測試到部署。但是一個點的快并不是全流程的快,想要快速交付這個價值,需要一個完整的不能中斷的流水線才能盡善盡美。這些問題怎么解決呢?接下來進行一個介紹。
(3)解決方案
2017年1月份這個思想才萌芽,真正開始進廠的時候是2017年的7月,等到上線是2017年11月,先來介紹一下“鑫云+”是一個什么概念呢?南京銀行是鑫合俱樂部的一個牽頭行,鑫合俱樂部有140家成員行,所有的資金在一個聯盟里面。另外的一頭連接的是互聯網。作為這兩頭的橋梁,可以連接出很多種可能。
“鑫云+”項目架構變革
“鑫云+”從7月份進廠之后就對廠商原有的產品做了重構,所有的規范全部重來。拆成微服務、換數據庫中間所有的這些標準全部按照阿里螞蟻的要求做修改。在這個基礎上提出來DevOps體系。
云效在DevOps上落地的一些內容,從開發開始→測試→集成→部署,包括環境管理、監控。這一套整個的可視化非常的強,也簡單易用的一個流水線。這樣的話工作者不需要學很多,尤其是測試人員,只需要三堂課就可以將上萬條案例都測試完。
“鑫云+”項目并行開發、多分支管理、持續集成
在云效值得學習的三個地方,第一個就是分支開發的這個模式,在傳統端,比如有一個老的開發系統已經開發了很長時間,有一個大的模塊可能半年才上。但是同時又有其他小的需求,可能一兩周就要上,同時可能也有一些bug要修復,三條線并行。這時候往往出現的一種情況是雖然也分支了,但是并不能管控所有人的提交時間,可能提交的時候會產生沖突,就需要解決沖突,配管員就是解決沖突的。還有一種就是在只有一個主干的時候,上線的時候通通往上交,交到最后發現又要去解決依賴的問題。所以這個時候自動化就根本無法實施,交付的自動化當時對于我們來說是非常難解決的問題但是云上解決了。
云效首先永遠有一個保持正確的主干,來了一個需求之后,會有特性分支,并行的特性分支開發完之后。如果這三個需求都要上,那就從主干上打出一個集成分支到認證環節去測。如果發現有問題有一個需求不能上,全部回滾回來把正確的兩個打出集成再往下走。所有的這些自動化非常的快,不需要在里邊摘代碼,不需要查看沖突,都能快速的完成。
“鑫云”項目測試效能提升
(4)價值體現
在2016年新核心上線的時候上了一個新的系統,核心系統對于一個銀行來說相當于信道,它的改動會使其他系統得到改動,當時這個系統的重建也是非常巨大的一個工程。在當時的時候是沒有一個這樣好的自動化的測試工具,所以當時測試是一個非常耗成本的事情。到了“鑫云+”的時候我們也是核心,我們是全國首家商業銀行能夠實現分布式核心的銀行。 “鑫云+”是一個通道式的平臺,其實大部分的時候是沒有界面的,靠人工測界面是測不起來的,但是又希望提前去發現這些問題。所以更多的時候測試是要分層次的,更多的是對接口的測試針對服務的測試,把這些都測掉,別切云效能夠在它的系統里做自動的留痕。保證再去重新跑一遍的時候只要是修改的測過的都能夠正確的上去。