大型互聯網金融產品Devops應用實踐

金融 可視化 腳本語言 SQL DoNews DoNews 2017-10-13

一、背景:A產品是平安集團為金融機構客戶提供集中信息服務、跨平臺登陸、統一賬戶管理等多種服務的互聯網金融平臺,其致力於彙集集團內外部的金融產品和服務,依託互聯網技術提供豐富的增值項目,幫助金融機構解決資產負債餘缺,改善資產流動性,提升交易效率,降低操作風險。

二、現狀:產品線剛成立時200多人,並快速從直銷銀行切入,打造出產品交付給中小銀行客戶。從2016年開始,隨著簽約銀行項目增多,交付壓力陡增,挑戰也越來越大,開始進入混沌狀態…

1、 產品標準化嚴重不足,與銀行定製矛盾,近70%的人力投入定製開發,甚至一般先做交付。

2、 需求脫節不一致,不透明,跨地域、跨部門。

3、 基於組件化開發,首次新上線一家銀行,100+配置文件,300+SQL文件,近百個jar包,一堆的war包,隨著版本演進,版本配套混亂,不敢輕易升級。

4、 手動移交,部署過程經常出錯,追溯困難,上線週期漫長,首次上線達8天。

5、 代碼分支蔓延,分支再拉分支,缺陷修復及收編導致維護成本持續增長。

6、 滿負荷運作,為了交付,加班再加班應對,通宵也是常見的,專業公司經常被要求週末遠程支持。

7、 質量問題聚集,長時期積壓600多個。

8、 銀行監管難滿足,不同職責人員權限未做有效分離,研發效率低。

9、 士氣低下,一年時間人員流失變動近半。

……

三、措施:基於目前這種狀況,敏捷教練應邀入場,開始進行系統化思考、分析,以業界Devops方法為基礎,開始著手從需求及構架解耦、持續部署、組織協作等方面進行漸進改進。

1、 架構解耦、定製與標準產品需求分離,並引導價值客戶迴歸產品規劃主航道,做強標準,統一需求,分層、分級管理;進一步進行可擴展設計,架構解耦,進行組件化、插件化。

大型互聯網金融產品Devops應用實踐

2、 流程現狀梳理,分別討論制定標版流程及Site實施流程

a、 標版流程:規劃需求及銀行標準需求承載,迭代開發後經驗證,進入製品庫。

大型互聯網金融產品Devops應用實踐

b、 Site應邀實施流程:需求匹配組件,大部分從製品庫中選擇,少量進入標準需求開發團隊,少量定製實施開發承載

大型互聯網金融產品Devops應用實踐

3、 基礎設施及代碼,結構化配置規範梳理

一切設施都進行版本控制

大型互聯網金融產品Devops應用實踐

分別討論制定標準組件代碼規範、PAPP業務配置規範、基礎設施配置規範、數據庫腳本配置規範,所有設施都通過SVN進行配置管理,其中敏感信息如密碼等,採用通配符方式在CMDB中配置。並開始基於一個Site進行規範整改試點,逐步調整推動新site完成代碼、結構規範化整改

大型互聯網金融產品Devops應用實踐

4、 代碼分支收編回主幹整改

我們梳理其中一個新site試點實施時,發現約60%的組件基於分支進行演進開發,如下圖標黃部分,主幹收編困難,維護成本持續增長

大型互聯網金融產品Devops應用實踐

痛定思痛,決定做一次整改,首先從試點項目涉及的組件開始,推動架構組與產品一起進行,經過一週多的時間,基本完成試點Site的整改,並開始推動其他組件分支收編回主幹,如下其中已做整改的site。

大型互聯網金融產品Devops應用實踐

5、 持續交付部署流程整理

a、 標準產品需求,進入模塊標準產品團隊,組件開發測試後,發佈進入製品庫

大型互聯網金融產品Devops應用實踐

b、 銀行實施產品,從製品庫選擇對應組件和版本,以及從SVN上取出對應的配置文件和war包、DB腳本,一鍵部署到測試、生產環境

大型互聯網金融產品Devops應用實踐

6、 神兵Wizard工具方案設計應用

建立兩層工作空間,產品層、子項目組件層。各子項目組件層進行需求、版本、部署管理,發佈歸檔製品庫。產品銀行層,建立需求、版本,選擇製品庫組件版本,進行部署發佈

大型互聯網金融產品Devops應用實踐

7、 質量內建,自動化測試inner接入

通過持續集成平臺部署完成後,調起自動化接口測試,保障高效質量

大型互聯網金融產品Devops應用實踐

8、 組織協作

a、全功能團隊:一旦交付項目立項,則組建跨領域PM、前端、後臺、測試、運維一體化團隊。

b、交付項目總體規劃、清晰里程碑

大型互聯網金融產品Devops應用實踐

c、相互承諾:Team對PO的承諾納入迭代能按時完成,PO對Team的承諾迭代中不輕易增加變更需求,PM對團隊的承諾,排除項目外干擾,保障項目高效運作。每個迭代開始前,發出明確的迭代計劃。

大型互聯網金融產品Devops應用實踐

d、保持穩定的版本節奏,測試前置,及時參與測試驗收反饋,及時修改。

大型互聯網金融產品Devops應用實踐

e、透明化,進度、質量、風險等,通過早會、自動化、持續集成、週報,每日下班前問題風險同步等,及時可視化出來。

四、應用狀況:通過以上措施,經歷了近半年時間的不斷迭代試點應用,根據反饋不斷調整漸進改變,在產品中開始應用起來。

1、 模塊接收主動規劃需求,以及由銀行site分配過來的需求,實現需求協作管理backlog管理、看板進度可視化管理。需求分層分級管理,實現全量需求池。銀行需求與模塊開發組件協作管理。

大型互聯網金融產品Devops應用實踐

2、 銀行Site與組件版本配套協作高效管理,實現各版本演進可追溯

大型互聯網金融產品Devops應用實踐

3、 特性需求看板,以精益看板的方法為特性的端到端交付建立可視化價值流,驅動交付過程的持續優化,現實小批量快速流程為目標

大型互聯網金融產品Devops應用實踐

4、 銀行Site自動化構建,部署流水線,為從代碼提交到發佈至生產整個過程建立可視化、可追溯的受控流水線,整合持續集成、環境配置、數據庫變更、應用部署等所有自動化過程。一鍵高效發佈部署測試及生產,並可進行回滾。

大型互聯網金融產品Devops應用實踐

5、 複雜產品多流水構建情況全景瀏覽

大型互聯網金融產品Devops應用實踐

6、 研發與生產分離,部署計劃提前知道

大型互聯網金融產品Devops應用實踐

運維部署確認後,一鍵部署到生產環境。以具有版本控制的腳步來自動化管理所有應用構建,環境配置、數據庫等,保證所有基礎設施的建立和變更都以抑制的方式進行。

大型互聯網金融產品Devops應用實踐

五、效果:目前整體方案已經在新Site中推廣應用,並取得一定的效果:

• 規模化應用:銀行site上線10家,60+條部署流水線持續運轉中,新Site逐步實施中。

• 標準化產品增強,成本降低:通過需求引導、定製與標準分離、以及架構解耦,需求定製降至10%左右,100+組件按版本規範化製品庫管理,研發成本大幅降低。

• 研發效率大幅提升:一天多發,增量版本按需交付;標版組件部署從約半小時提升到秒級;新site部署上線從近一週縮減到小時級。

• 基礎設施及流程規範化管理:所有設施進入版本控制管理,代碼分支蔓延遏制,版本配套混亂、版本升級風險有效解決,實現部署記錄可追溯,質量大幅提升,有效滿足銀行監管。

• 影響:為首家基於Pafa5研發模式管理試點落地,為其他專業公司提供借鑑參考,多個專業公司產品已開始參照該研發管理模式改進。

• 開放平臺建設進一步探索中,後臺平臺化,前臺通過接口接入,甚至開放前臺給客戶自己開發。

相關推薦

推薦中...