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