張朝輝


摘 要:研發(fā)運維一體化體系使系統(tǒng)開發(fā)、測試和運營有了較高質(zhì)量的保證,也大大提高了效率,減少開發(fā)成本和開發(fā)周期,因此被廣泛應(yīng)用于互聯(lián)網(wǎng)行業(yè)乃至金融業(yè)。研發(fā)運維一體化也是我社信息系統(tǒng)的新征程。本文將簡單分析研發(fā)運維一體化體系中部分自動化流程,對信息系統(tǒng)的促進作用。
關(guān)鍵詞:自動化流程;農(nóng)信信息系統(tǒng);自動檢測
1 自動化流程
1.1 代碼自動檢測
代碼自動檢測指通過工具自動分析或檢查源程序的語法、結(jié)構(gòu)、接口、邏輯等程序問題,并對檢測結(jié)果給出改進建議和修復(fù)時長,從而保證代碼質(zhì)量。
實現(xiàn)代碼自動檢測,首先是代碼檢測規(guī)則的標(biāo)準(zhǔn)化。代碼規(guī)則主要包括缺陷的類型、嚴(yán)重程度、修復(fù)時長等標(biāo)準(zhǔn),其中缺陷類型分為缺陷、漏洞及壞味道,嚴(yán)重程度可分為主要、次要、阻斷、提示等幾個等級,通過建立代碼檢測規(guī)則可以迅速檢測源程序中是否存在缺陷。
檢測規(guī)則確定后,即可通過代碼檢測工具(sonarqube等)對提交的代碼進行檢測與分析,從而確定代碼缺陷的類型、嚴(yán)重程度、缺陷個數(shù)、修復(fù)時長、覆蓋率和重復(fù)率等詳細(xì)信息,并通過郵件等工具把分析結(jié)果實時反饋到相關(guān)負(fù)責(zé)人,相關(guān)負(fù)責(zé)人在收到這些信息后,對缺陷進行再次分析,確認(rèn)缺陷的有效性,并制定對缺陷修復(fù)方案、修復(fù)時長,進行代碼缺陷的修復(fù)。
通過這樣循環(huán)的“采集-分析-反饋-修復(fù)-跟蹤”閉環(huán)操作,從根本上解決系統(tǒng)開發(fā)過程中代碼缺陷,提高了代碼質(zhì)量,降低安全風(fēng)險,提高軟件開發(fā)效率。
1.2 自動化部署
自動化部署指通過觸發(fā)方式自動化部署版本代替人工部署版本的操作。在傳統(tǒng)單塊架構(gòu)的情況下,通過手工操作人工部署的時間上往往是分鐘級、小時級的,而分布式系統(tǒng)架構(gòu),成百上千臺機器,若是每臺機器都通過人工部署,那不僅僅是時間上的問題,準(zhǔn)確性和統(tǒng)一性的要求對于部署人員來說肯定是夢魘。在互聯(lián)網(wǎng)迅速發(fā)展的今天,科學(xué)技術(shù)日新月異,隨著持續(xù)集成工具(如jenkins、bamboo等)推廣應(yīng)用和分布式架構(gòu)的成熟,僅通過一次觸發(fā)操作即可以自動部署成百上千臺機器,從而縮短部署時間,提高準(zhǔn)確度和工作效率。
自動化部署過程是可視化的,自動化部署減少人工干預(yù)造成的不確定風(fēng)險,縮短了系統(tǒng)部署時間,部署效率提高的同時部署的成功率也大大提高。
1.3 自動化測試
自動化測試是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的一種過程,在預(yù)設(shè)條件下運行系統(tǒng)或應(yīng)用程序,執(zhí)行測試并評估測試結(jié)果,以達到節(jié)省人力、時間或硬件資源,提高測試效率和準(zhǔn)確性,主要包括自動化設(shè)計、自動化開發(fā)、自動化執(zhí)行和自動化分析。可以通過分層測試,來提高集成測試時的版本質(zhì)量,同時從測試類型上來分,單元測試、接口測試、性能測試、集成測試等均可實現(xiàn)一定程度的自動化測試。
傳統(tǒng)的單元測試需要大量人工操作來測試檢查和驗證最小測試單元,而自動化單元測試通過替代人工操作達到縮短測試時間和提高測試質(zhì)量的目的;通過自動化性能測試工具模擬多種正常、峰值以及異常等負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進行測試,通常借助工具(loaderunner,jmeter等)實現(xiàn)自動化性能測試,達到驗證系統(tǒng)性能要求的目的;自動化接口測試主要用于快速檢測系統(tǒng)提供的接口服務(wù)正確性;傳統(tǒng)集成測試需要大量的人力做軟件功能的測試驗證,而自動化集成測試可以達到節(jié)省時間、減少人力成本、提高工作效率的目的。
自動化測試,可以保證測試質(zhì)量,提高測試團隊的工作效率,同時節(jié)約了人力成本并提高了測試人員能力。
1.4 自動化運維
自動化運維主要針對微服務(wù),包括監(jiān)控、自動巡檢、告警、故障處理等方面。
(1)監(jiān)控是自動化運維的前提。有效的監(jiān)控機制能讓我們迅速了解系統(tǒng)和微服務(wù)運行狀況和發(fā)現(xiàn)服務(wù)故障。讓運維人員迅速的發(fā)現(xiàn)異常,從而為分析問題和解決問題提供前提條件。
(2)自動化巡檢是自動化運維的重要一環(huán)。自動化巡檢指把系統(tǒng)及應(yīng)用的歷史信息形成基線指標(biāo),然后通過自動化巡檢,把實時采集的信息與基線指標(biāo)對比分析,及時發(fā)現(xiàn)系統(tǒng)隱患,把問題和故障消滅在萌芽中。
(3)告警是自動化運維的基礎(chǔ)。當(dāng)系統(tǒng)出現(xiàn)異常時,通過告警機制,能及時呈現(xiàn)在監(jiān)控大屏等監(jiān)控設(shè)備上,并通過郵件、短信及時告知運維人員及相關(guān)負(fù)責(zé)人,進而為分析問題和解決問題贏取寶貴時間。
(4)故障處理是自動化運維的目的。依靠微服務(wù)開關(guān)、限流、降級、熔斷等服務(wù)治理機制和自動容錯、故障隔離等機制對自動化運維進行支撐,實現(xiàn)故障自動隔離,提高故障處理效率和系統(tǒng)可用率,比如購買火車票、雙十一秒殺可以采用限流機制,保障后臺系統(tǒng)正常運行。
2 實施效果及展望
目前,我社已引入了自動化部署流程并取得初步效果,自動化代碼檢測、自動化測試、自動化運維等將結(jié)合我社現(xiàn)狀相繼引進實施。所以,以下自動化實施效果的闡述僅指自動化部署的實施效果。
2.1 效率提升
借助于自動化集成平臺工具Jenkins,對現(xiàn)有的操作系統(tǒng)部署方式進行改造,通過測試環(huán)境反復(fù)驗證,最終在生產(chǎn)上實現(xiàn)自動化部署,效率得到大大提升。以下是生產(chǎn)環(huán)境自動化部署實施前后的數(shù)據(jù)對比:
表1 生產(chǎn)環(huán)境自動化前后的數(shù)據(jù)對比分析
系統(tǒng) 手動部署(分鐘) 自動化部署(分鐘) 提升效率(倍)
能力中心 60 28 2.14
渠道交互 20 2.13 9.39
柜面前置 10 2.68 3.73
控管平臺 10 1.77 5.65
綜合前置平臺 5 0.38 13.16
2.2用戶體驗提升
我們在開發(fā)、測試和生產(chǎn)三類環(huán)境進行了自動化部署的嘗試,受到了開發(fā)人員、環(huán)境部署人員和運維人員等用戶的一致好評,用戶體驗如下:
表2 用戶體驗評價表
角色 用戶體驗
開發(fā)人員 減少了手工打包、手動部署等人工操作步驟,節(jié)約了時間,提高了效率,值得提倡。
環(huán)境部署人員 對部署人員的技術(shù)要求降低,方便快捷,節(jié)省時間,易于操作。
運維人員 1.操作方便快捷,發(fā)布過程穩(wěn)定,風(fēng)險降低,效率得到大大提高。
2.流程規(guī)范,操作步驟清晰,行為可追溯。
從目前部分實施的效果分析,自動化流程的引進將會提高我社的工作效率、保障質(zhì)量、提升用戶體驗,隨著代碼自動檢測、自動化測試、自動化運維等自動化的引進,將會對我社的科技工作起到很大的促進作用。
參考文獻:
[1]張明思,陸捷.電力工程中自動化技術(shù)的應(yīng)用探索[J].機電信息,2018(6):23-24.
[2]胡玉睿.電力工程中自動化技術(shù)的應(yīng)用探索[J].城市建設(shè)理論研究:電子版,2017(18):5795-5796.
[3]李建軍.針對電力工程中自動化技術(shù)探索研究[J].中國科技投資,2016(25):146.
[4]李江華.電氣自動化控制設(shè)備可靠性相關(guān)問題分析[J].城市建設(shè)理論研究(電子版),2018(22).
[5]趙楊,丁寶峰,杜翠女,趙明.淺談電氣自動化技術(shù)在火力發(fā)電中的創(chuàng)新與應(yīng)用[J].硅谷,2011(03).
[6]應(yīng)雪,董明君.電氣自動化技術(shù)存在瓶頸及解決對策分析[J].電子元器件與信息技術(shù),2017(02).
[7]祁杰.電氣自動化技術(shù)在火力發(fā)電中的創(chuàng)新與應(yīng)用[J].中國高新技術(shù)企業(yè),2015(25).