您好,登錄后才能下訂單哦!
導讀:
金融業研發過程都離不開平臺支撐,實現研發過程自動化協同和控制,其中代碼的質控可以通過集成Sonar、Checkstyle等很好的實現自動化,但是SQL的質控在自動化流程中卻長期處于空白。
如今,通過SQM研發的Jenkins插件、JVM探針,將SQL質控的自動化能力組裝到DevOps流水線中,徹底填補了這個空白,必要時配以SQM的OpenAPI,能實現更強大的能力。
DevOps與金融企業研發
IT研發領域里,DevOps已經成為一套越來越主流的實踐方法集和文化價值觀,它可以幫助企業縮短軟件發布周期,提升軟件質量,安全快速獲取產品開發反饋。
在國內,各大金融企業很早就開始實踐DevOps理念,并且有些銀行落地比較到位,已取得很好成效,比如招商銀行、平安銀行、民生銀行、中信銀行等。
研究機構發現,在DevOps過程中,
自動化
是帶來組織效能差異的關鍵因素,也是DevOps 的關鍵點。產品/項目的規劃設計、計劃跟蹤、迭代開發、持續交付這些不同階段都有好的方法論支撐,比如故事地圖、Scrum框架、看板方法等,但是那些將全局過程標準化、自動化、可視化,關鍵流程和節點管控到位,并行開發過程協同管理到位,構建起完整DevOps流水線的企業才能獲得最大收益。
因此,過去幾年,各企業都在構建自己的DevOps平臺,即完整的DevOps流水線。 筆者總結了一下,大致分為兩個流派,開源或自研。
開源流派,基于開源工具鏈的持續交付流水線,實現從0到1快速構建DevOps能力。
自研流派,核心大多都是對開源工具鏈的封裝、擴展、增強,簡化使用難度,實現DevOps目標。
金融企業出于安全性、穩定性,自主可控等因素,大多走自研或合作研發DevOps平臺的路徑。
無論哪個流派,對代碼的質控管理都是關鍵一環,通過集成Sonar、Checkstyle等能很好的實現自動化。
但是SQL的質量控制卻還停留在不檢測或者人工檢測,效率低,質量標準差異大,不能自動化,不能和DevOps融合的狀態,產生很大的風險隱患。
SQL質控的挑戰和價值
多年的實踐中,我們發現影響業務性能、連續性、穩定性的因素多種多樣,但歸納起來可以分為六大類,其中兩大類和SQL有關。
在現代的企業研發中,其它因素都有較好的方法和工具控制,但SQL質量問題一直未能得到較好解決,業務爆發各種SQL性能及安全問題,倒逼必須將能夠SQL質量控制住,在其影響業務之前就要發現并消除掉。
經過在SQL質控方向多年的探索,我們發現,雖然SQL質量問題存在于應用軟件的全生命周期,從開發、測試、發布上線、生產運行,SQL質量問題,無處不在,但進行SQL質量控制的效果,卻是越前置越好。
開發測試階段SQL質控效果遠遠大于生產運行階段SQL質控效果,前置解決才是根本。 同時通過將SQL質控按場景工具化、自動化,和DevOps過程集成起來,可以高效的實現質控目標。 SQM-SQL質量管控平臺,應運而生。
兩大引擎,SQL解析引擎+專家引擎
覆蓋應用全生命周期:開發、測試、上線發布、生產運行
內置的專家經驗規則+語法樹特征值、文本正則匹配的靈活自定義規則能力,全面覆蓋用戶SQL規范
支持各種開發語言構建的應用
支持數據庫Oracle、MySQL、DB2,即將支持Microsoft SQL Server 、PostgreSQL、OceanBase
Jenkins插件、JVM插件,與DevOps集成,自動化SQL質控
強大的OpenAPI,方便用戶快速將SQM能力與其它用戶系統集成
支持不同規模、不同研發模式的十多種場景化SQL質量管控方案,適合的才是最好的
智能優化,能夠對SQL進行全面分析后,給出精確的優化建議,比如創建索引等
DevOps中的SQL質控
DevOps中的SQL質控應從流程制度建設、管控手段建設、人員能力提升三個維度綜合解決問題。
SQL質控前置到開發測試階段。 在開發交付給測試的環節前引入SQL的質量控制,提升團隊之間的協作效率,減少返工帶來的成本增加,在測試環節引入自動的SQL質量復核能力,全面覆蓋。
人員能力和質量管控提升。 人員能力,可通過培訓、專業輔導、SQL代碼規范等方式進行提升。 質量管控,借助專業工具作為抓手進行管控,對于極端復雜問題可借助專家支持優化。
一般的DevOps流程可視為兩級流程。 一級主流程是DevOps的整體過程,包括“任務管理、代碼管理、構建和發布、其他后續”。
“構建&發布”的二級流程,包括了多個步驟: 源代碼管理,代碼檢查,構建,測試,部署。 二級流程下又包含了多項“操作”,比如“代碼檢查”包括了規范性檢查,安全檢查,其他檢查。
SQM研發的Jenkins插件、JVM插件,支持快速組裝到DevOps流水線中,在代碼檢查環節,自動化進行SQL的質量檢查。
在測試環節,自動化進行SQL的質量檢查。
過程示意圖
Jenkins+SQMPlug-in實際運轉圖
案例解析與探討
X銀行
解決方案: Jenkins插件+JVM插件+OpenAPI,分階段落地
SQM與開發流程融合,在開發測試環節提供SQL審核服務。 在開發階段處理大部分的SQL質量問題,將運維工作前置到開發階段,大大節約成本且提高開發效率。
1)SQM平臺實現與DevOps融合
2)SQM提供SQL腳本審核功能(實時審核)
3)復雜SQL可經過SQM平臺由DBA協助處理
4)提供SQL豁免處理流程
Y銀行
解決方案: 工單+OpenAPI+平臺
為了達成SQL質量控制目標,該行結合自身情況,從SQL質量控制要點出發,持續實踐迭代,利用SQM審核工具覆蓋開發環境和測試環境,進行SQL的審核與監控。
2016年SQM項目正式啟動。
SQM從一開始的調研實施,到后續不斷的迭代完善,現在已經在該銀行的研發體系里扮演了重要的角色。
截止2019年年中,該行的SQM平臺的用戶有三千余人,配置的項目(子系統)有四百多個,監控五百多個測試庫,工單總數將近五千個,每天創建工單數有20個左右,工單當天處理完成率達80% 自動化的SQL審核減輕了測試和運維的壓力,大大減少了人工的工作量統一了開發規范流程,通過不斷探索,總結出了最佳實踐的工作流 極大減少了應用投產之后由于SQL性能引發的嚴重問題助力該銀行打造數據中臺,以及DevOps開發運維一體化建設 促使項目性能問題統一歸檔、分類和追蹤,形成比較完善的處理閉環,并為項目組開發質量評價提供量化指標數據。
Z銀行
解決方案: OpenAPI+連庫捕獲+流程再造
該行對SQL審核的期望目標如下:
1)防止問題SQL流入至生產環境
2)項目上線前SQL的檢測,對問題SQL進行審核整改
3)設計的閉環審核流程,確保每個問題SQL都完成整改
在對開發測試流程進行梳理,該行決定將SQM審核與開發流程融合在一起,進行流程再造。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。