<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          某大型證券公司DevOps持續(xù)交付應(yīng)用實(shí)踐

          共 8311字,需瀏覽 17分鐘

           ·

          2021-11-16 01:24

          作者介紹

          張永啟、向元武、于娜娜,中泰證券股份有限公司科技研發(fā)部,本文選自《交易技術(shù)前沿》總第三十九期文章。

          近些年金融科技在證券行業(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ǔ)充和工具支持。


          中泰證券股份有限公司科技研發(fā)部互聯(lián)網(wǎng)研發(fā)團(tuán)隊(duì)通過對DevOps相關(guān)理論和技術(shù)的研究、分析,設(shè)計(jì)并實(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í)間成本和技術(shù)人力成本,為公司業(yè)務(wù)創(chuàng)收提供技術(shù)保障的目的。


          一、背景及意義


          DevOps因其先進(jìn)性和全面性,已被認(rèn)為是軟件工程的第三次革命;由PUPPET和DORA聯(lián)合發(fā)布的《2017 State of DevOps Report》報(bào)告中,故障恢復(fù)時(shí)間縮短了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)識到:為了按時(shí)交付軟件產(chǎn)品和服務(wù),開發(fā)和運(yùn)維工作必須緊密合作。


          特別是敏捷迭代已經(jīng)成為金融行業(yè)研發(fā)團(tuán)隊(duì)的主流研發(fā)模式,這對開發(fā)、測試、運(yùn)維提出了更高效的要求。


          圖1:敏捷迭代流程


          中泰證券互聯(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)維三個角色,見下圖:


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


          其中研發(fā)主要關(guān)注產(chǎn)品研發(fā)的高效、穩(wěn)定、快速的實(shí)現(xiàn),以及對應(yīng)的產(chǎn)品開發(fā)完成后,交付制品對應(yīng)上線時(shí)間點(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ì)量的一體化,同時(shí)通過持續(xù)集成和持續(xù)交付的能力,使運(yùn)維人員更早的參與到產(chǎn)品的交付過程中區(qū),減少了不同角色之間的交付壁壘。


          圖3:DevOps過程


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


          圖4:DevOps能力地圖與實(shí)踐落地


          二、中泰證券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ù)跟蹤及報(bào)表統(tǒng)計(jì)的綜合效能管理平臺。通過蜂鳥效能平臺在互聯(lián)網(wǎng)研發(fā)過程中的應(yīng)用,提升了互聯(lián)網(wǎng)研發(fā)在市場快速變化的過程中實(shí)現(xiàn)產(chǎn)品應(yīng)用的快速迭代,從而達(dá)到減少產(chǎn)品試錯與迭代過程中的時(shí)間成本和技術(shù)人力成本,并為公司業(yè)務(wù)創(chuàng)收提供技術(shù)了保障的目標(biāo)。


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


          圖5:蜂鳥效能平臺規(guī)劃


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


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


          1、與項(xiàng)目管理平臺JIRA集成


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


          2、CI/CD流水線整體設(shè)計(jì)


          蜂鳥效能平臺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)邏輯圖如下:


          ?圖6: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合并時(shí)觸發(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)品交付的目的。同時(shí)蜂鳥效能平臺隔離了開發(fā)、測試、生產(chǎn)環(huán)境,對應(yīng)的角色只能在對應(yīng)的環(huán)境進(jìn)行操作,操作環(huán)境的隔離符合《證券基金經(jīng)營機(jī)構(gòu)信息技術(shù)管理辦法》的相關(guān)要求。


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


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


          4、制品庫管理


          蜂鳥效能平臺的制品倉庫在持續(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碼保證制品的唯一性。


          5、接口管理


          蜂鳥效能平臺接口管理功能對于不同的研發(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)計(jì)。


          6、配置中心


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


          ?圖7:分布式配置中心


          7、單元測試、靜態(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時(shí)將觸發(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)新增代碼中的缺陷,同時(shí)結(jié)合定時(shí)全量掃描和提測前全量掃描的方式,發(fā)現(xiàn)代碼中所有的缺陷,只有當(dāng)高危、中危、低危等級的缺陷全部修復(fù)完后才能由開發(fā)人員在蜂鳥效能平臺上提測版本給測試人員,提升了開發(fā)人員提測版本的質(zhì)量和安全性。


          8、自動化測試及測試環(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é)果將以報(bào)告的方式反饋給研發(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)用。


          圖8:UI自動化流程


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


          圖9:接口自動化體系


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


          圖10:接口自動化流程


          9、混合云管理及生產(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)控問題,具體方案如下圖:


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


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


          10、自動化監(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í)在蜂鳥效能平臺上對線上故障數(shù)據(jù)進(jìn)行跟蹤收集分析,達(dá)到盡快反饋給研發(fā)人員并能夠?qū)收匣厮菥哂袇⒖甲饔谩?/span>


          11、效能指標(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)見下圖:


          圖12:效能數(shù)據(jù)


          研發(fā)效能數(shù)據(jù)多維度展示產(chǎn)品交付各階段的數(shù)據(jù),如開發(fā)階段的代碼數(shù)據(jù)統(tǒng)計(jì)、測試階段的自動化測試數(shù)據(jù)統(tǒng)計(jì)、運(yùn)維上線后的故障數(shù)據(jù)統(tǒng)計(jì)等;其中流水線指標(biāo)從交付效率和吞吐率兩方面主要反映研發(fā)過程整體效能情況;項(xiàng)目/需求指標(biāo)能夠從需求的成本和上線后的價(jià)值兩個角度對需求進(jìn)行價(jià)值數(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ā)布效率。


          四、DevOps蜂鳥效能平臺關(guān)鍵功能截圖


          目前蜂鳥效能平臺已經(jīng)覆蓋中泰證券互聯(lián)網(wǎng)金融全部業(yè)務(wù),接入項(xiàng)目模塊180多個,支持容器及非容器應(yīng)用,累計(jì)CI/CD(持續(xù)集成/持續(xù)交付)次數(shù)6萬+。


          1、產(chǎn)品關(guān)鍵截圖一:提測及上線流程跟蹤如下:


          圖13


          該圖為一個完整提測、上線發(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)收。


          2、產(chǎn)品關(guān)鍵截圖二:提測詳情頁關(guān)鍵截圖如下:


          圖14


          該圖為提測詳情圖,技術(shù)經(jīng)理可以通過該提測詳情頁完成容器或者非容器化的提測。


          3、產(chǎn)品關(guān)鍵截圖三:蜂鳥效能數(shù)據(jù)截圖如下:


          圖15


          該圖為效能數(shù)據(jù)對研發(fā)階段的某一場景進(jìn)行展示。蜂鳥效能平臺通過多維度對不同交付階段進(jìn)行數(shù)據(jù)跟蹤并繪制全面的圖表對全過程進(jìn)行效能分析。


          4、產(chǎn)品關(guān)鍵截圖四:自動化測試結(jié)果關(guān)鍵截圖如下:


          圖16


          通過自動化測試報(bào)告能夠詳細(xì)完整的查看具體的功能模塊測試詳情。


          5、產(chǎn)品關(guān)鍵截圖五:靜態(tài)代碼掃描關(guān)鍵截圖如下:

          圖17


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


          五、總結(jié)


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


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


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


          2、提升交付效率,縮短交付時(shí)間


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


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


          縮短了測試時(shí)間周期,全功能回歸測試從2~3天人工測試降低到自動化測試6~8小時(shí)。每個迭代的時(shí)間縮短2天左右。


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


          圖18


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


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


          靜態(tài)代碼掃描可以識別一定的代碼邏輯設(shè)計(jì)、編碼缺陷及安全漏洞,減少了程序問題導(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ā)布問題。


          - END -

          ?推薦閱讀?
          31天拿下K8s含金量最高的CKA+CKS證書!
          Kubernetes 實(shí)現(xiàn)灰度和藍(lán)綠發(fā)布
          Gitlab+Jenkins+k8s+Helm 的自動化部署實(shí)踐
          終于明白了 DevOps 與 SRE 的區(qū)別!
          民生銀行 IT運(yùn)維故障管理 可視化案例
          Nginx配置中一個不起眼字符"/"的巨大作用,失之毫厘謬以千里
          Kubernetes上生產(chǎn)環(huán)境后,99%都會遇到這2個故障
          K8s kubectl 常用命令總結(jié)(建議收藏)
          Kubernetes 的這些核心資源原理,你一定要了解
          基于Nginx實(shí)現(xiàn)灰度發(fā)布與AB測試
          編寫 Dockerfile 最佳實(shí)踐
          12年資深運(yùn)維老司機(jī)的成長感悟
          搭建一套完整的企業(yè)級 K8s 集群(二進(jìn)制方式)



          點(diǎn)亮,服務(wù)器三年不宕機(jī)

          瀏覽 78
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  蜜桃精品视频在线 | 在线观看免费黄视频 | 无码专区一区 | 欧美日韩亚州在线观看 | 日本a视频|