日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DevOps在证券互联网研发中的应用与实践

發(fā)布時間:2024/1/8 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DevOps在证券互联网研发中的应用与实践 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

近些年金融科技在證券行業(yè)發(fā)揮的作用越來越重要,運(yùn)用金融科技賦能業(yè)務(wù)發(fā)展,通過個性化服務(wù)構(gòu)建護(hù)城河,將金融科技與業(yè)務(wù)創(chuàng)收和降本增效相結(jié)合開始成為證券從業(yè)人員所關(guān)注的問題,如何提升研發(fā)交付效率、小步快跑、快速迭代是所有證券行業(yè)科技研發(fā)團(tuán)隊(duì)共同關(guān)心的話題。敏捷為快速迭代提供了理論思想和方法指導(dǎo),DevOps為敏捷落地提供了補(bǔ)充和工具支持。

中泰證券股份有限公司互聯(lián)網(wǎng)研發(fā)團(tuán)隊(duì)通過對DevOps相關(guān)理論和技術(shù)的研究、分析,設(shè)計并實(shí)現(xiàn)了蜂鳥效能管理平臺。通過蜂鳥效能管理平臺實(shí)現(xiàn)了編碼后續(xù)研發(fā)環(huán)節(jié)的降本增效。DevOps是一套創(chuàng)新且有效的文化和思想,本平臺借鑒其中的持續(xù)集成、持續(xù)交付和持續(xù)運(yùn)營的關(guān)鍵思想,并結(jié)合互聯(lián)網(wǎng)研發(fā)過程遇到的實(shí)際情況,解決了研發(fā)、測試和運(yùn)維等角色溝通協(xié)作中遇到的一系列問題,實(shí)現(xiàn)了產(chǎn)品多環(huán)境交付、流程可視化、測試自動化、運(yùn)維智能化、流程規(guī)范化和效能指標(biāo)可視化等功能。蜂鳥效能平臺上線后的應(yīng)用實(shí)踐結(jié)果表明,通過運(yùn)用DevOps相關(guān)理論和技術(shù)能夠提升互聯(lián)網(wǎng)研發(fā)在市場快速變化的過程中實(shí)現(xiàn)產(chǎn)品應(yīng)用的快速迭代,從而達(dá)到減少產(chǎn)品試錯與迭代過程中的時間成本和技術(shù)人力成本,為公司業(yè)務(wù)創(chuàng)收提供技術(shù)保障的目的。

背景及意義

DevOps因其先進(jìn)性和全面性,已被認(rèn)為是軟件工程的第三次革命;由PUPPET和DORA聯(lián)合發(fā)布的《2017 State of DevOps Report》報告中,故障恢復(fù)時間縮短了96倍,業(yè)務(wù)需求從提出到投產(chǎn)的周期從3個月到6個月縮短到3周甚至更短,使得企業(yè)更好適應(yīng)市場變化。DevOps已經(jīng)被證實(shí)能在IT和商業(yè)兩方面提升效率。

DevOps定義:DevOps(Development和Operations的組合詞)是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進(jìn)開發(fā)(應(yīng)用程序/軟件工程)、技術(shù)運(yùn)營和質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合。它是一種重視“軟件開發(fā)人員(Dev)”和“IT運(yùn)維技術(shù)人員(Ops)”之間溝通合作的文化、運(yùn)動或慣例。透過自動化“軟件交付”和“架構(gòu)變更”的流程,來使得構(gòu)建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。它的出現(xiàn)是由于軟件行業(yè)日益清晰地認(rèn)識到:為了按時交付軟件產(chǎn)品和服務(wù),開發(fā)和運(yùn)維工作必須緊密合作。特別是敏捷迭代已經(jīng)成為金融行業(yè)研發(fā)團(tuán)隊(duì)的主流研發(fā)模式,這對開發(fā)、測試、運(yùn)維提出了更高效的要求。

中泰證券互聯(lián)網(wǎng)研發(fā)團(tuán)隊(duì)采用敏捷研發(fā)模式進(jìn)行團(tuán)隊(duì)間的協(xié)作,敏捷的實(shí)施需要通過小迭代形式不斷的交付應(yīng)用產(chǎn)品。敏捷開發(fā)驅(qū)動開發(fā)人員更快的交付代碼,新的代碼需要被更快的測試,并需要頻繁的被部署到開發(fā)、測試和生產(chǎn),由于運(yùn)維和測試不能盡快的參與到軟件開發(fā)生命周期,導(dǎo)致交付流水線阻塞的情況,而通過DevOps的運(yùn)用很好解決了這些問題。

在DevOps實(shí)施的過程中,涉及的角色主要包括開發(fā)、測試(質(zhì)量)、運(yùn)維三個角色,見下圖:

圖1 開發(fā)、測試(質(zhì)量保證)、運(yùn)維

其中研發(fā)主要關(guān)注產(chǎn)品研發(fā)的高效、穩(wěn)定、快速的實(shí)現(xiàn),以及對應(yīng)的產(chǎn)品開發(fā)完成后,交付制品對應(yīng)上線時間點(diǎn)能夠可預(yù)期;運(yùn)維則更多的關(guān)注如何通過自動化運(yùn)維和持續(xù)監(jiān)控等工具降低產(chǎn)品上線后的維護(hù)成本;測試(質(zhì)量保障)角色則關(guān)注研發(fā)提交過來的產(chǎn)品能夠盡快的得到測試,因此在提高質(zhì)量保障效率的過程中,該角色更多的關(guān)注產(chǎn)品的持續(xù)自動化測試,以及產(chǎn)品交付質(zhì)量的提升。而DevOps實(shí)現(xiàn)了將研發(fā)、運(yùn)維和質(zhì)量三個角色統(tǒng)一起來,實(shí)現(xiàn)了研發(fā)、運(yùn)維和質(zhì)量的一體化,同時通過持續(xù)集成和持續(xù)交付的能力,使運(yùn)維人員更早的參與到產(chǎn)品的交付過程中去,減少了不同角色之間的交付壁壘。

綜上所述,盡管新工具思想的推進(jìn)在一定程度上能夠提升產(chǎn)品的交付效率,但由于企業(yè)自動化程度低、軟件開發(fā)流程的不規(guī)范導(dǎo)致的交付效率慢、交付流程不規(guī)范、線上故障反映不及時、運(yùn)營數(shù)據(jù)獲取困難等問題的存在,使企業(yè)在實(shí)際的產(chǎn)品交付過程中依然不能實(shí)現(xiàn)快速交付有價值的產(chǎn)品給用戶。這就需要一個平臺解決以上問題,但是目前市面上已有的相關(guān)產(chǎn)品存在不能和流程結(jié)合以及不支持混合制品(容器和非容器)的持續(xù)集成與持續(xù)交付,且不能獲取實(shí)際場景的業(yè)務(wù)數(shù)據(jù)。因此,一個能夠解決當(dāng)前困境的統(tǒng)一自研DevOps平臺變得尤為重要。

中泰證券DevOps蜂鳥效能平臺整體功能規(guī)劃

蜂鳥效能平臺是一個以DevOps相關(guān)理念為指導(dǎo)思想,結(jié)合證券行業(yè)安全、合規(guī)等需求特性實(shí)現(xiàn)的一個集多環(huán)境(開發(fā)、測試、預(yù)發(fā)布、生產(chǎn))持續(xù)集成(CI)/持續(xù)發(fā)布(CD)、代碼質(zhì)量檢測、自動化測試、上線流程審批、研發(fā)效能數(shù)據(jù)跟蹤及報表統(tǒng)計的綜合效能管理平臺。通過蜂鳥效能平臺在互聯(lián)網(wǎng)研發(fā)過程中的應(yīng)用,提升了互聯(lián)網(wǎng)研發(fā)在市場快速變化的過程中實(shí)現(xiàn)產(chǎn)品應(yīng)用的快速迭代,從而達(dá)到減少產(chǎn)品試錯與迭代過程中的時間成本和技術(shù)人力成本,并為公司業(yè)務(wù)創(chuàng)收提供技術(shù)了保障的目標(biāo)。

依托DevOps相關(guān)理念,結(jié)合當(dāng)前互聯(lián)網(wǎng)技術(shù)中最前沿的容器化技術(shù)、容器編排管理kubernetes、微服務(wù)架構(gòu)、配置中心、靜態(tài)代碼掃描、接口管理和自動化測試(UI、接口、安全、性能)等技術(shù),蜂鳥效能平臺實(shí)現(xiàn)了具有持續(xù)集成、持續(xù)交付和持續(xù)運(yùn)營能力的統(tǒng)一綜合效能管理平臺,各階段詳細(xì)技術(shù)如下圖:

圖2 蜂鳥效能平臺技術(shù)架構(gòu)

蜂鳥效能平臺整體技術(shù)架構(gòu)劃分為三層,最底層為基礎(chǔ)設(shè)施層,該層主要為各混合云環(huán)境下的基礎(chǔ)環(huán)境,如私有云、華為云、阿里云和行業(yè)云等環(huán)境下的開發(fā)、測試和生產(chǎn)環(huán)境,建立在基礎(chǔ)層之上搭建了支撐平臺的工具,形成了平臺的工具層,如需求管理Jira、代碼管理Git、構(gòu)建依賴工具、單元測試Junit、代碼掃描工具、制品管理工具、自動化測試工具(接口、UI、安全)、配置管理工具、應(yīng)用部署工具、容器管理Kubernetes和監(jiān)控工具等,通過工具層提供的能力,建立并實(shí)現(xiàn)了價值流層,價值流層對應(yīng)的功能直接為對應(yīng)的職能化人員賦能,主要為持續(xù)集成、持續(xù)交付和持續(xù)運(yùn)營等功能。

蜂鳥效能平臺相關(guān)技術(shù)節(jié)點(diǎn)簡介

與項(xiàng)目管理平臺Jira集成

為了將具體需求與迭代上線進(jìn)行對應(yīng),從而達(dá)到系統(tǒng)上線需求可追蹤,同時也為后續(xù)對需求進(jìn)行價值分析提供基礎(chǔ)數(shù)據(jù),因此需要將項(xiàng)目管理平臺JIRA與蜂鳥效能平臺持續(xù)交付進(jìn)行打通。研發(fā)人員在蜂鳥效能平臺進(jìn)行提測和發(fā)布上線時可以根據(jù)提示選擇對應(yīng)的STORY,從而完成提測、上線與JIRA項(xiàng)目的關(guān)聯(lián)打通。

代碼管理及構(gòu)建

代碼的科學(xué)管理對團(tuán)隊(duì)高效協(xié)作以及流程規(guī)范具有特別重要的作用,蜂鳥效能平臺采用Git作為代碼管理工具。GitFlow模式是若干模式的集大成者,包含一個主干分支、一個開發(fā)分支、許多的特性分支、許多的發(fā)布發(fā)布分支和Hotfix分支,以及許多的合并規(guī)則,通過GitFlow模式的運(yùn)用,能夠解決開發(fā)過程中大部分代碼協(xié)作的問題。同時通過分支的管理,也為后續(xù)開發(fā)環(huán)境的CI/CD奠定了基礎(chǔ)。

制品庫管理

蜂鳥效能平臺的制品倉庫在持續(xù)交付的過程中扮演著中轉(zhuǎn)站的作用,如何結(jié)合制品倉庫實(shí)現(xiàn)制品在不同環(huán)境中的流轉(zhuǎn)對保持制品交付前后的一致性與可追溯性有著重要的作用。對于當(dāng)前的制品主要分為Docker鏡像類和非鏡像類制品,為了能夠?qū)ocker鏡像類進(jìn)行管理,鏡像倉庫采用開源Harbor進(jìn)行管理,對于非鏡像類制品采用Artifactory進(jìn)行管理,為了能夠達(dá)到環(huán)境流轉(zhuǎn)的效果,采用基于倉庫的不同賬號之間的權(quán)限管理方案,具體見關(guān)鍵模塊方案。對于唯一性問題,容器類制品采用鏡像id非容器類制品采用MD5碼保證制品的唯一性。

接口管理

蜂鳥效能平臺接口管理功能對于不同的研發(fā)角色作用不同,開發(fā)人員能夠利用接口管理功能進(jìn)行前后端接口調(diào)用、多項(xiàng)目接口統(tǒng)一管理、接口調(diào)試和多團(tuán)隊(duì)協(xié)同開發(fā);測試人員能夠基于接口管理功能中登記的接口進(jìn)行簡單接口測試、場景化接口測試;運(yùn)維人員可以基于接口管理功能中登記的接口實(shí)現(xiàn)業(yè)務(wù)監(jiān)控;產(chǎn)品人員可以快速進(jìn)行數(shù)據(jù)統(tǒng)計。

配置中心

蜂鳥效能平臺的配置中心能夠?qū)崿F(xiàn)對不同環(huán)境、多云環(huán)境的系統(tǒng)參數(shù)配置進(jìn)行管理,同時配置中心也是多環(huán)境(開發(fā)、測試、仿真、生產(chǎn))CI/CD的關(guān)鍵。蜂鳥效能平臺的配置中心基于Apollo實(shí)現(xiàn),Apollo是一個開源的分布式配置中心,能夠集中化管理應(yīng)用不同環(huán)境、不同集群的配置,配置修改后能夠?qū)崟r推送到應(yīng)用端,并且具備規(guī)范的權(quán)限、流程治理等特性,適用于微服務(wù)配置管理場景。配置中心實(shí)現(xiàn)了開發(fā)、測試、生產(chǎn)多環(huán)境的系統(tǒng)參數(shù)配置功能,同時支持多云架構(gòu)下的分布式系統(tǒng)配置管理。配置中心為CI、CD的平滑交付提供了技術(shù)保障。

單元測試、靜態(tài)代碼掃描及開發(fā)環(huán)境CI/CD

單元測試能夠讓開發(fā)人員在提測前發(fā)現(xiàn)新增變動對系統(tǒng)可能造成的不利影響,并通過將單元測試與開發(fā)環(huán)境CI/CD進(jìn)行結(jié)合,當(dāng)開發(fā)人員進(jìn)行代碼提交或者進(jìn)行代碼merge時將觸發(fā)自動單元測試并將結(jié)果反饋給對應(yīng)研發(fā)人員。

為了提高研發(fā)過程中的代碼質(zhì)量并盡快發(fā)現(xiàn)已有系統(tǒng)代碼中存在的漏洞缺陷,蜂鳥效能平臺提供了靜態(tài)代碼掃描功能,靜態(tài)代碼掃描功能可以對研發(fā)人員的代碼進(jìn)行分析并進(jìn)一步提升編碼規(guī)范。靜態(tài)代碼掃描功能需要能夠識別代碼中一些常見的漏洞,如資源類問題(資源釋放、無效指針等)、安全性要求(數(shù)據(jù)污染、注入等)、潛在的缺陷(數(shù)組越界、初始化、除零錯誤、空指針引用等)、多線程和同步性(雙重鎖定、未釋放的鎖等)和異常處理(NullPointerException)等。靜態(tài)代碼掃描平臺采用增量掃描和全面掃描相結(jié)合的方式,日常開發(fā)對于不斷的代碼提交采用自動增量掃描,便于快速發(fā)現(xiàn)新增代碼中的缺陷,同時結(jié)合定時全量掃描和提測前全量掃描的方式,發(fā)現(xiàn)代碼中所有的缺陷,只有當(dāng)高危、中危、低危等級的缺陷全部修復(fù)完后才能由開發(fā)人員在蜂鳥效能平臺上提測版本給測試人員,提升了開發(fā)人員提測版本的質(zhì)量和安全性。

靜態(tài)代碼掃描關(guān)鍵截圖如下:

圖3 靜態(tài)代碼統(tǒng)計分析

通過靜態(tài)代碼掃描的報告詳情,能夠查看當(dāng)前項(xiàng)目的缺陷情況,同時通過缺陷展示快速定位缺陷位置。

自動化測試及測試環(huán)境CI/CD

蜂鳥效能平臺的自動化測試功能實(shí)現(xiàn)了互聯(lián)網(wǎng)研發(fā)團(tuán)隊(duì)測試人員的效率飛躍,通過將自動化測試平臺與持續(xù)交付的流程進(jìn)行結(jié)合大大提升了測試效率。在蜂鳥效能平臺上,測試人員能夠看到研發(fā)人員提測的具體內(nèi)容,并識別出具體的制品版本及唯一碼,測試人員可以在蜂鳥效能平臺上對開發(fā)人員提測的版本進(jìn)行一鍵部署和一鍵自動化測試,最后測試的結(jié)果將以報告的方式反饋給研發(fā)人員。

通過蜂鳥效能平臺的接口管理功能與自動化測試功能的集成。目前已經(jīng)支持UI及接口自動化測試。UI自動化基于Appium框架實(shí)現(xiàn),Appium要能真正自動化手機(jī)上的應(yīng)用必須依賴于各個移動平臺所帶的自動化框架;IOS平臺目前依賴于XCUITest實(shí)現(xiàn),安卓目前主要依賴于uiautomator。框架提供的是運(yùn)行庫,運(yùn)行庫運(yùn)行在移動設(shè)備上。

AppiumServer服務(wù)起來后會在移動設(shè)備上安裝一個幫助自動化的應(yīng)用,可理解為“控制許可”或者“代理”應(yīng)用,通過這樣應(yīng)用可以編譯我們自動化給出的指令,然后按指令測試移動設(shè)備上的應(yīng)用。

圖4 UI自動化流程

蜂鳥效能平臺的接口自動化功能基于接口分層測試設(shè)計的思想,采用python+unittest+ddt框架自研實(shí)現(xiàn)。把測試數(shù)據(jù)與測試代碼完全分離,將數(shù)據(jù)操作、用例配置、日志記錄、接口請求等公用方法封裝成單獨(dú)類,使用DDT數(shù)據(jù)驅(qū)動工具管理每個接口的多種測試場景,使用unittest組織、執(zhí)行多個接口的測試用例集合,通過添加多種斷言形式,如接口的狀態(tài)碼、返回值、差異化(diff)對比等對接口測試結(jié)果進(jìn)行判斷,最后通過HtmlTestRunner生成測試報告,把返回的測試結(jié)果用圖形和文本形式形象的展現(xiàn)出來。

圖5 接口自動化體系

接口自動化測試功能是DevOps實(shí)踐中不可或缺的一部分,具備持續(xù)測試能力,提升了測試效率,使測試人員快速適應(yīng)敏捷開發(fā)工作模式,從而減少了產(chǎn)品迭代過程中的時間成本和技術(shù)人力成本,為產(chǎn)品快速迭代和發(fā)布提供了質(zhì)量保障。

圖6 接口自動化流程

通過自動化測試與CI/CD相結(jié)合,提升了測試效率與制品交付速度。

安全測試

蜂鳥效能平臺將安全掃描評估系統(tǒng)融入到自動化流程中,實(shí)現(xiàn)研發(fā)人員自助式安全掃描測試。安全掃描評估系統(tǒng)是一套能夠通過對系統(tǒng)整體架構(gòu)進(jìn)行掃描,從而發(fā)現(xiàn)系統(tǒng)整體架構(gòu)中可能存在的安全漏洞和容易遭受網(wǎng)絡(luò)攻擊與計算機(jī)病毒攻擊等風(fēng)險。安全掃描評估系統(tǒng)會對具體的安全漏洞風(fēng)險進(jìn)行分析并給出具體的報告建議。

圖7 安全掃描漏洞分布報表

通過將安全掃描評估系統(tǒng)的安全掃描能力前置,在整體安全掃描效率上極大提升了研發(fā)的安全風(fēng)險意識,并提高了安全漏洞的處置效率。

CI/CD流水線整體設(shè)計

蜂鳥效能平臺CI/CD功能主要包括靜態(tài)代碼掃描、開發(fā)環(huán)境CI/CD、測試環(huán)境CI/CD和自動化測試、上線流程審批、生產(chǎn)環(huán)境CI/CD、交付制品的環(huán)境流轉(zhuǎn)等功能。其中應(yīng)用產(chǎn)品的制品在各環(huán)境中詳細(xì)流轉(zhuǎn)邏輯圖如下:

圖8 CI/CD流程

從上圖可知,制品在多環(huán)境CI/CD流轉(zhuǎn)的過程中,主要包括三個環(huán)境的流轉(zhuǎn),分別為開發(fā)環(huán)境、測試環(huán)境和生產(chǎn)環(huán)境,其中開發(fā)環(huán)境采用自動構(gòu)建、自動集成和自動部署的方案,測試環(huán)境的流轉(zhuǎn)與發(fā)布根據(jù)技術(shù)經(jīng)理在蜂鳥效能平臺上的提測,測試組人員可以根據(jù)自身需要進(jìn)行按需自動化發(fā)布部署,發(fā)布部署完成后,可以對相應(yīng)的功能模塊進(jìn)行自動化測試。制品在生產(chǎn)環(huán)境的流轉(zhuǎn)與發(fā)布方式和測試環(huán)境的發(fā)布部署方式類似,在蜂鳥效能平臺上走完審批流程后根據(jù)實(shí)際需要,運(yùn)維人員按需自動化發(fā)布部署。蜂鳥效能平臺實(shí)現(xiàn)了線上審批流程和測試、發(fā)布操作的關(guān)聯(lián)控制,保證每次提測和發(fā)布上線都有嚴(yán)格的流程把控。

其中對于容器化應(yīng)用各環(huán)境流轉(zhuǎn)發(fā)布部署細(xì)節(jié)如下:

1、開發(fā)環(huán)境鏡像生成與發(fā)布:在Gitlab上創(chuàng)建工程后,研發(fā)人員可以自助在平臺上對該Gitlab工程綁定自動構(gòu)建和部署模塊,當(dāng)該工程主分支發(fā)生branch合并時觸發(fā)自動構(gòu)建,鏡像創(chuàng)建后,會將對應(yīng)的鏡像推送到鏡像倉庫,然后再觸發(fā)自動化部署腳本將該鏡像自動部署到開發(fā)環(huán)境。

2、測試環(huán)境下的鏡像流轉(zhuǎn)與發(fā)布:在開發(fā)人員將對應(yīng)的需求開發(fā)完后,在蜂鳥效能平臺上進(jìn)行應(yīng)用產(chǎn)品提測,提測后測試組能夠在蜂鳥效能平臺上的測試模塊看到提測的具體鏡像內(nèi)容,根據(jù)提測詳情,可以實(shí)現(xiàn)一鍵自動部署,然后再對測試環(huán)境的鏡像進(jìn)行自動化功能、接口、性能和UI測試。

3、生產(chǎn)環(huán)境下的鏡像流轉(zhuǎn)與發(fā)布:在走完產(chǎn)品上線流程審批后,運(yùn)維人員能夠在蜂鳥效能平臺上看到具體的上線流程信息,根據(jù)實(shí)際情況進(jìn)行自動化發(fā)布部署、回滾和復(fù)核。

通過CI/CD流水線,使產(chǎn)品、UED、研發(fā)、測試、運(yùn)維和合規(guī)等職能化角色可以在其對應(yīng)職責(zé)的權(quán)限下完成產(chǎn)品上線過程中對應(yīng)的具體操作,如測試人員完成自動化測試操作、運(yùn)維人員完成自動化部署操作和合規(guī)人員完成合規(guī)審核操作等,最終達(dá)到產(chǎn)品交付的目的。同時蜂鳥效能平臺隔離了開發(fā)、測試、生產(chǎn)環(huán)境,對應(yīng)的角色只能在對應(yīng)的環(huán)境進(jìn)行操作,操作環(huán)境的隔離符合《證券基金經(jīng)營機(jī)構(gòu)信息技術(shù)管理辦法》的相關(guān)要求。

4、提測及上線流程跟蹤如下:

圖9 提測流程詳情

該圖為一個提測、上線發(fā)布流程部分截圖,各職能化角色都有參與到該流程中,開發(fā)人員提測、測試人員執(zhí)行測試、技術(shù)經(jīng)理確認(rèn)上線發(fā)布、產(chǎn)品經(jīng)理發(fā)布前驗(yàn)收、產(chǎn)品及技術(shù)負(fù)責(zé)人確認(rèn)上線、合規(guī)確認(rèn)發(fā)布流程、運(yùn)維人員A執(zhí)行發(fā)布、運(yùn)維人員B復(fù)核發(fā)布、業(yè)務(wù)部門生產(chǎn)驗(yàn)收。

混合云管理及生產(chǎn)發(fā)布

在真實(shí)的部署環(huán)境中,經(jīng)常涉及多云環(huán)境下的發(fā)布管理,為了實(shí)現(xiàn)多云環(huán)境下的制品流轉(zhuǎn)及發(fā)布部署,蜂鳥效能平臺實(shí)現(xiàn)了一套混合云環(huán)境的發(fā)布管理功能。

中泰證券互聯(lián)網(wǎng)應(yīng)用系統(tǒng)的部署環(huán)境為一個混合云場景,蜂鳥效能平臺通過對混合云環(huán)境資源的整合,解決了混合云環(huán)境的CI/CD發(fā)布部署和系統(tǒng)監(jiān)控問題,具體方案如下圖:

圖10 混合云多云環(huán)境部署

通過該方案與CI/CD制品流轉(zhuǎn)設(shè)計相結(jié)合,使研發(fā)人員交付的應(yīng)用制品可以通過蜂鳥效能平臺實(shí)現(xiàn)多環(huán)境流轉(zhuǎn),最終發(fā)布部署到混合云的環(huán)境中去。

自動化監(jiān)控及技術(shù)運(yùn)營

為提升線上問題和故障的發(fā)現(xiàn)、反饋效率,蜂鳥效能平臺集成了自動化監(jiān)控功能,自動化監(jiān)控能夠提高運(yùn)維的效率,并能夠滿足頻繁發(fā)布部署過程中的應(yīng)用監(jiān)控問題,通過對應(yīng)用服務(wù)的自動化監(jiān)控與故障自愈相結(jié)合能夠在用戶無感知的情況下修復(fù)線上故障,同時在蜂鳥效能平臺上對線上故障數(shù)據(jù)進(jìn)行跟蹤收集分析,達(dá)到盡快反饋給研發(fā)人員并能夠?qū)收匣厮菥哂袇⒖甲饔谩?/p>

效能指標(biāo)跟蹤及改善

效能指標(biāo)能夠體現(xiàn)研發(fā)過程的實(shí)施情況,客觀的效能數(shù)據(jù)可以對我們研發(fā)改進(jìn)起到指導(dǎo)效果,沒有客觀數(shù)據(jù)和成功標(biāo)準(zhǔn)就無法做到持續(xù)反饋和持續(xù)改進(jìn)。蜂鳥效能平臺中關(guān)鍵效能指標(biāo)見下圖:

圖11 效能數(shù)據(jù)

研發(fā)效能數(shù)據(jù)多維度展示產(chǎn)品交付各階段的數(shù)據(jù),如開發(fā)階段的代碼數(shù)據(jù)統(tǒng)計、測試階段的自動化測試數(shù)據(jù)統(tǒng)計、運(yùn)維上線后的故障數(shù)據(jù)統(tǒng)計等;其中流水線指標(biāo)從交付效率和吞吐率兩方面主要反映研發(fā)過程整體效能情況;項(xiàng)目/需求指標(biāo)能夠從需求的成本和上線后的價值兩個角度對需求進(jìn)行價值數(shù)據(jù)衡量;研發(fā)指標(biāo)反映了當(dāng)前研發(fā)人員的工作負(fù)荷以及產(chǎn)出及質(zhì)量情況;測試指標(biāo)對產(chǎn)品質(zhì)量保證具有關(guān)鍵指導(dǎo)的作用;運(yùn)維指標(biāo)能夠反映運(yùn)維工作效率的情況,如線上故障情況及功能上線發(fā)布效率。蜂鳥效能平臺通過多維度對不同交付階段進(jìn)行數(shù)據(jù)跟蹤并繪制全面的圖表對全過程進(jìn)行效能分析。

總結(jié)

中泰證券互聯(lián)網(wǎng)研發(fā)團(tuán)隊(duì)基于DevOps思想構(gòu)建的蜂鳥效能平臺上線以來,接入項(xiàng)目模塊220多個,支持容器及非容器應(yīng)用,經(jīng)過累計21萬+次的CI/CD(持續(xù)集成/持續(xù)交付),已經(jīng)成為目前互聯(lián)網(wǎng)研發(fā)過程中不可或缺的核心研發(fā)工具平臺。帶來的價值如下:

1、規(guī)范研發(fā)過程,實(shí)現(xiàn)安全可控

蜂鳥效能平臺將開發(fā)、測試、生產(chǎn)環(huán)境進(jìn)行了有效隔離,實(shí)現(xiàn)了各環(huán)節(jié)操作的安全可控及合規(guī)。所有的發(fā)布操作均通過蜂鳥效能平臺留痕并且操作綁定流程制度,做到了問題可追溯、減少了誤操作、操作符合公司IT管理規(guī)定。

2、提升交付效率,縮短交付時間

蜂鳥效能平臺旨在縮短開發(fā)人員完成功能代碼編寫到生產(chǎn)發(fā)布過程中的時間消耗,提升研發(fā)交付效率。

縮短了開發(fā)時間周期,通過靜態(tài)代碼掃描可以在10~20分鐘內(nèi)實(shí)現(xiàn)對一個應(yīng)用系統(tǒng)的代碼檢查,提升了開發(fā)人員CodeReview的效率。每個迭代的時間縮短0.5~1天。

縮短了測試時間周期,全功能回歸測試從2~3天人工測試降低到自動化測試6~8小時。每個迭代的時間縮短2天左右。安全自動化測試,從3到5天人工進(jìn)行,到目前的自助式服務(wù)30分鐘。減少了等待3到5天。

縮短了各環(huán)節(jié)流轉(zhuǎn)的時間,蜂鳥效能平臺自動化CI/CD次數(shù)自上線以來達(dá)到21萬+次,已經(jīng)實(shí)現(xiàn)了從開發(fā)人員提交代碼到生產(chǎn)發(fā)布過程中的自動化,節(jié)約了大量的人力成本。其中各環(huán)境下的發(fā)布部署改造前后具體參考圖如下:

圖12 CI/CD實(shí)施前后數(shù)據(jù)分析

從上圖可知,通蜂鳥效能平臺的實(shí)現(xiàn)與應(yīng)用,使應(yīng)用制品在開發(fā)、測試和運(yùn)維階段的發(fā)布部署過程中,對應(yīng)的發(fā)布部署效率提升10倍以上。

3、提升交付質(zhì)量,減少線上故障

靜態(tài)代碼掃描可以識別一定的代碼邏輯設(shè)計、編碼缺陷及安全漏洞,減少了程序問題導(dǎo)致的生產(chǎn)問題。

應(yīng)用發(fā)布過程中,應(yīng)用包在開發(fā)、測試和生產(chǎn)的環(huán)境流轉(zhuǎn)過程中,應(yīng)用包不用重新編譯打包,實(shí)現(xiàn)了同一應(yīng)用包多環(huán)境流轉(zhuǎn),系統(tǒng)、業(yè)務(wù)配置參數(shù)通過配置中心讀取,減少了因?yàn)閼?yīng)用包變更和參數(shù)配置問題導(dǎo)致的生產(chǎn)發(fā)布問題。

通過容器化技術(shù)實(shí)現(xiàn)了各環(huán)境對應(yīng)用的隔離性和封裝性,減少了因?yàn)殚_發(fā)、測試、生產(chǎn)環(huán)境的差異性導(dǎo)致的生產(chǎn)發(fā)布問題。

4、減少了人力資源投入,節(jié)省了研發(fā)成本

在測試能力提升方面,目前自動化測試已經(jīng)覆蓋核心業(yè)務(wù)用例80%以上,核心業(yè)務(wù)主要為集中交易、兩融、期權(quán)、理財、條件單、銀證轉(zhuǎn)等核心業(yè)務(wù),通過自動化測試回歸后保障線上無交易類業(yè)務(wù)生產(chǎn)故障。2020年下半年加強(qiáng)了自動化測試能力建設(shè),通過自動化測試減少了人力資源投入,目前自動化測試團(tuán)隊(duì)6人,2020年自動化測試?yán)塾嫻?jié)省16人/年。UI回歸次數(shù)安卓和iOS共回歸65次,每次執(zhí)行用例2500+,按照每人每天可執(zhí)行55條計算,共節(jié)省約11人/年;接口自動化回歸529次,按每人每天40接口計算,共節(jié)省約5人/年。

文章來源:證券期貨業(yè)金融科技中心,點(diǎn)擊查看原文

Kubernetes線下實(shí)戰(zhàn)與CKA培訓(xùn)

本次培訓(xùn)在北京開班,基于最新考綱,理論結(jié)合實(shí)戰(zhàn),通過線下授課、考題解讀、模擬演練等方式,幫助學(xué)員快速掌握Kubernetes的理論知識和專業(yè)技能,并針對考試做特別強(qiáng)化訓(xùn)練,讓學(xué)員能從容面對CKA認(rèn)證考試,使學(xué)員既能掌握Kubernetes相關(guān)知識,又能通過CKA認(rèn)證考試,理論、實(shí)踐、考證一網(wǎng)打盡,學(xué)員可多次參加培訓(xùn),直到通過認(rèn)證。點(diǎn)擊下方圖片或者閱讀原文鏈接查看詳情。

總結(jié)

以上是生活随笔為你收集整理的DevOps在证券互联网研发中的应用与实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。