999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DevOps建設(shè)研究和實踐

2021-06-29 20:46:32唐松強蔡永健唐海濤朱夏良何栓康
計算機時代 2021年4期

唐松強 蔡永健 唐海濤 朱夏良 何栓康

摘? 要: 隨著信息技術(shù)的飛速發(fā)展和軟件研發(fā)框架的不斷升級,傳統(tǒng)研發(fā)中開發(fā)、運維、QA之間的溝通協(xié)作愈加困難。DevOps作為新軟件研發(fā)管理理念,其通過促進開發(fā)、運維、QA協(xié)同工作的模式,得到了越來越多IT企業(yè)的關(guān)注和使用。文章基于DevOps理念,對其在需求管理、研發(fā)過程、運維管理三個階段的技術(shù)路線進行研究,并通過JIRA、Jenkins、Zabbix等工具將DevOps系統(tǒng)落地。在具體項目實踐中,保障了項目研發(fā)進度,提升了系統(tǒng)健壯性,實現(xiàn)公司產(chǎn)品研發(fā)的提質(zhì)增效。

關(guān)鍵詞: DevOps; 持續(xù)交付; 持續(xù)監(jiān)控; 自動化部署; 研發(fā)管理

中圖分類號:TP399? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)04-13-05

Abstract: With the rapid development of information technology and the continuous upgrading of software R&D frameworks, the communication and cooperation between development, operation and maintenance and QA in traditional R&D becomes more and more difficult. DevOps, as a new concept for software R&D management, its mode of promoting development, operation and QA collaborative work has been paid attention to and been used by more and more IT companies. Based on the concept of DevOps, this paper studies the technical route of DevOps in the three stages of demand management, R&D process and operation and maintenance management, and put it into effect by using JIRA, Jenkins, ZABBIX and other tools, which ensures the progress of project research and development, improves the robustness of the system, and improves the R&D quality and efficiency of company's product in the specific project practice.

Key words: DevOps; continuous delivery; continuous monitoring; automated deployment; research and development management

0 引言

為提高企業(yè)產(chǎn)品快速交付能力,軟件行業(yè)提出DevOps的理念。DevOps[1]通過促進開發(fā)、運維和QA之間的溝通、協(xié)作和整合,實現(xiàn)軟件產(chǎn)品持續(xù)部署和交付,幫助企業(yè)提質(zhì)增效。中國電建集團華東勘測設(shè)計研究院有限公司近幾年不斷地對DevOps進行探索優(yōu)化,目前已有大量項目使用DevOps進行軟件研發(fā),為公司的持續(xù)發(fā)展提供了強有力的支撐。

1 DevOps簡介

1.1 DevOps概念

DevOps是一個體系,是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進開發(fā)、技術(shù)運營和質(zhì)量保障部門之間的溝通、協(xié)作與整合,其示意圖如圖1所示。

1.2 DevOps優(yōu)勢

⑴ 加強部門合作

DevOps強調(diào)開發(fā)、運維的溝通合作,通過自動化的流程來使得構(gòu)建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。

⑵ 縮短產(chǎn)品上市時間

DevOps可以在產(chǎn)品規(guī)劃到實現(xiàn)的整個過程中具有更好的質(zhì)量保障,確保產(chǎn)品和公司業(yè)務(wù)目標的一致性,從而縮短產(chǎn)品上市周期。

⑶ 產(chǎn)品迭代時間更短

DevOps使用持續(xù)部署和交付[2]的方式進行軟件交付,可盡早地識別并消除瓶頸,從而保障企業(yè)實現(xiàn)每天多次交付而不是每年多次發(fā)布軟件版本。

⑷ 提升自動化能力

DevOps具有明確定義的工作流,將大量重復(fù)性任務(wù)通過自動化的方式實現(xiàn),減少了人為錯誤的幾率,這使得產(chǎn)品的安全性和合規(guī)性要求更加容易得到保障。

⑸ 減少資源浪費

DevOps持續(xù)集成和交付的方式,讓企業(yè)可以更有效地利用資源,并削減企業(yè)成本。

2 DevOps技術(shù)路線

2.1 研發(fā)流程技術(shù)路線

研發(fā)流程技術(shù)路線,主要通過JIRA[3]實現(xiàn)對需求和研發(fā)任務(wù)的可視化管理。例如對于同一個需求而言,其研發(fā)測試任務(wù)之間普遍存在相互依賴關(guān)系,采用父子任務(wù)以及任務(wù)狀態(tài)的強校驗形式對此類任務(wù)進行管理,在前期需求分析時創(chuàng)建任務(wù),若子任務(wù)沒有完成,作為父任務(wù)的需求工單將無法提交發(fā)布,從而避免因模塊間依賴關(guān)系而導(dǎo)致的發(fā)布質(zhì)量問題。

對于不同項目的不同情況,JIRA的工作流和界面制定都是靈活的。項目經(jīng)理可以在JIRA中定制出適合本公司或者本項目的流程,各實施人也可以在切身使用過程中提出優(yōu)化建議,實現(xiàn)流程的不斷改進。

2.2 自動化部署技術(shù)路線

基于Jenkins+GitLab+Docker+Harbor+SonarQube+Kubernetes[4]實現(xiàn)軟件自動化集成和部署,如圖2所示。

在該技術(shù)路線下,Java開發(fā)工程師在完成某個功能編碼后,將代碼推送到源代碼倉庫GitLab,通過Webhook觸發(fā)Jenkins自動化地拉取最新代碼,然后觸發(fā)SonarQube靜態(tài)代碼掃描[5],掃描通過后執(zhí)行相應(yīng)的編譯命令,比如java的maven命令或者是python的pip命令下載依賴后編譯打包,通過Dockerfile封裝成Docker鏡像并上傳到Harbor鏡像倉庫,最后執(zhí)行腳本自動更新到開發(fā)環(huán)境的Kubernetes集群。

2.3 自動化運維技術(shù)路線

基于Zabbix[6]+Prometheus[7]+Email的方式實現(xiàn)服務(wù)的監(jiān)控和反饋,如圖3所示。基于Zabbix集群實現(xiàn)服務(wù)器集群的CPU負載、內(nèi)存占用、磁盤I/O、網(wǎng)絡(luò)狀態(tài)、端口、日志等監(jiān)控,并預(yù)設(shè)好閾值,當資源使用達到了臨界值時會通過Email發(fā)送告警郵件,通知相關(guān)責(zé)任人及時處理問題。基于Prometheus實現(xiàn)對服務(wù)的監(jiān)控,當系統(tǒng)服務(wù)出現(xiàn)或者即將出現(xiàn)故障時,通過Email將告警信息反饋給管理員,實現(xiàn)對問題的快速處理,避免對業(yè)務(wù)造成影響。當問題發(fā)生后需要對問題進行調(diào)查和處理時,通過對監(jiān)控歷史數(shù)據(jù)進行分析,可以找到并解決問題的根源。結(jié)合Grafana可直觀地顯示系統(tǒng)運行狀態(tài)、資源使用情況,以及服務(wù)運行狀態(tài)等信息。

3 DevOps實踐

3.1 項目描述

工程數(shù)據(jù)中心軟件開發(fā)項目的目標是圍繞工程數(shù)據(jù)管理標準體系,實現(xiàn)工程數(shù)據(jù)全生命周期的信息化管理,并能基于系統(tǒng)中保存的海量數(shù)據(jù)開展工程數(shù)據(jù)的挖掘分析工作,提煉數(shù)據(jù)價值,用數(shù)據(jù)驅(qū)動項目建設(shè)和公司業(yè)務(wù)發(fā)展,從一個全新維度為工程企業(yè)決策提供支撐。

該項目使用SpringCloud微服務(wù)框架[6]編寫,技術(shù)架構(gòu)分為5層,如圖4所示,分別是:

⑴ 基礎(chǔ)設(shè)施層,該層以虛擬化、云計算、容器平臺等技術(shù)提供按需獲取、按需調(diào)度的計算、存儲及網(wǎng)絡(luò)資源;

⑵ 數(shù)據(jù)層,該層主要包括Redis分布式緩存、Minio等對象存儲、Mysql關(guān)系型數(shù)據(jù)庫、ArangoDB圖數(shù)據(jù)庫以及PostgreSQL+PostGIS空間數(shù)據(jù)庫;

⑶ 服務(wù)層,該層基于微服務(wù)架構(gòu),根據(jù)功能需要設(shè)計分為多個微服務(wù)并應(yīng)用不同類型的數(shù)據(jù)庫,利用Nacos進行統(tǒng)一的服務(wù)注冊和發(fā)現(xiàn);

⑷ 網(wǎng)關(guān)層,用APIGateway進行通信的管理,將內(nèi)部或外部請求分發(fā)至對應(yīng)服務(wù);

⑸ 應(yīng)用層,提供標準的RESTful API,支持桌面應(yīng)用、瀏覽器等多終端。

3.2 研發(fā)流程管理實踐

工程數(shù)據(jù)中心項目創(chuàng)新性高,理論體系未完善,導(dǎo)致局部需求定義欠佳,在執(zhí)行過程中,需求不斷變化,有時還會添加額外的需求。項目組借助于JIRA實現(xiàn)了需求和研發(fā)任務(wù)的可視化管理,如圖5所示。得益于Sprint,使得項目團隊可以在短周期內(nèi)將離散和潛在可交付的應(yīng)用程序進行沖刺上線,可及時解決項目臨時的或緊急的需求。

3.3 自動化部署實踐

借助于Jenkins+GitLab+Docker+Harbor+SonarQube[7]+Kubernetes的技術(shù)路線,工程數(shù)據(jù)中心項目組實現(xiàn)了自動化部署。開發(fā)人員在編碼結(jié)束后將最新代碼推送到部署的分支,通過Gitlab中的webhook觸發(fā)任務(wù),將最新commit的代碼推送到Jenkins中。Jenkins首先會對最近commit的源代碼進行靜態(tài)掃描,掃描結(jié)果如圖6所示。掃描沒有問題之后調(diào)用預(yù)先設(shè)置好的腳本編譯打包,根據(jù)Dockerfile封裝生成Docker鏡像。最后調(diào)用遠程腳本部署到Kubernetes平臺。

3.4 自動化運維實踐

工程數(shù)據(jù)中心上線運行后,由于用戶數(shù)量增漲、文件數(shù)據(jù)量增加、代碼迭代頻率增快等原因,系統(tǒng)時常出現(xiàn)各種報錯。項目組借助Zabbix集群的Agent完美地解決了多服務(wù)器集群底層運維監(jiān)控的問題,實現(xiàn)磁盤、CPU、內(nèi)存的實時使用監(jiān)控,當?shù)竭_預(yù)設(shè)的臨界值之后會觸發(fā)告警,其在Web頁面的監(jiān)視圖如圖7所示。

另外,工程數(shù)據(jù)中心采用微服務(wù)架構(gòu)編寫,各微服務(wù)的健康檢查以及網(wǎng)絡(luò)連通性都需要監(jiān)控,借助于Prometheus和Grafana可以實現(xiàn)對服務(wù)、數(shù)據(jù)庫的監(jiān)控和告警,其可視化頁面如圖8所示,Email告警通知如圖9所示。

4 結(jié)束語

本文重點介紹了DevOps概念、優(yōu)勢以及實現(xiàn)的技術(shù)路線,最后結(jié)合工程數(shù)據(jù)中心項目描述DevOps落地應(yīng)用情況。可以看到,DevOps不僅極大的提高了需求管理的準確性,減少了開發(fā)和運維的溝通成本,提升了軟件系統(tǒng)的健壯性,實現(xiàn)了研發(fā)過程管理提質(zhì)增效,最終從多個方面完善了公司的研發(fā)體系。

參考文獻(References):

[1] 榮國平,白曉穎,岳濤.面向DevOps的軟件工程新技術(shù)專題前言[J].軟件學(xué)報,2019.10.

[2] 張文林.持續(xù)交付及其在大型項目中的應(yīng)用[J].軟件導(dǎo)刊,2017.10.

[3] 王敏,賈百強,李翔,李小軍.基于JIRA的全生命周期軟件開發(fā)管理平臺[J].上海船舶運輸科學(xué)研究所學(xué)報,2017.2.

[4] 蔡永健,路云菲,鄔遠祥,唐海濤.基于Jenkins和Docker容器技術(shù)在數(shù)字化電站項目自動化部署的研究和應(yīng)用[J].計算機時代,2020.2.

[5] 付金瑩,蔣云,王金倫,申宗杰.基于靜態(tài)分析的應(yīng)用代碼質(zhì)量管理體系研究及應(yīng)用[J].中國新通信,2013.21.

[6] 石宇婷.基于Zabbix平臺的私有云監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[D].東華大學(xué),2017.

[7] 馬永,吳躍,何李囡,程航.基于Prometheus的基礎(chǔ)軟硬件全鏈路監(jiān)控設(shè)計和實現(xiàn)[J].電子技術(shù)與軟件工程,2020.1.

主站蜘蛛池模板: av一区二区人妻无码| 国产在线观看人成激情视频| 国产三区二区| 高h视频在线| 欧美yw精品日本国产精品| 一区二区偷拍美女撒尿视频| 国产超薄肉色丝袜网站| 欧美精品综合视频一区二区| 91精品啪在线观看国产91九色| 伊人久久综在合线亚洲2019| 青青草欧美| 成人精品亚洲| 日本尹人综合香蕉在线观看| 97se亚洲综合不卡 | 国内99精品激情视频精品| 国产成人在线小视频| 国产欧美日韩综合在线第一| 久久久精品国产亚洲AV日韩| 九九香蕉视频| 黄色不卡视频| 亚洲爱婷婷色69堂| 日韩第九页| 欧美一级爱操视频| 夜夜爽免费视频| 中文成人在线视频| 国产亚洲欧美在线人成aaaa| 久久a毛片| 直接黄91麻豆网站| 91视频精品| 亚洲成人精品| 在线无码av一区二区三区| 在线无码九区| 啪啪啪亚洲无码| 国产成在线观看免费视频| 五月婷婷综合色| 国产成人综合久久精品尤物| 欧美午夜小视频| 亚洲高清无码精品| 大乳丰满人妻中文字幕日本| www.av男人.com| 久久黄色小视频| 欧美日韩免费观看| 色综合成人| 国产在线自乱拍播放| 丁香婷婷激情网| 欧美久久网| 91免费国产高清观看| 久久免费视频6| 亚洲精品桃花岛av在线| 久久青草精品一区二区三区| 一级香蕉视频在线观看| 国产成人精品在线1区| 国产97视频在线观看| 久久国产精品影院| 播五月综合| 国产aⅴ无码专区亚洲av综合网 | 国产男女免费完整版视频| 国产区免费精品视频| 狠狠操夜夜爽| 国产成人精品一区二区| 国产人在线成免费视频| 久久综合九色综合97网| 色网站在线视频| 亚洲天堂伊人| 亚洲区视频在线观看| 日韩专区欧美| 久久久久青草线综合超碰| 欧美高清国产| 中美日韩在线网免费毛片视频 | 污网站在线观看视频| 欧美成人午夜影院| 国内精品九九久久久精品| 中文字幕久久波多野结衣| 国产91熟女高潮一区二区| h视频在线播放| 亚洲欧美极品| 亚洲精品在线91| 无遮挡一级毛片呦女视频| 精品国产香蕉在线播出| 国产日韩精品欧美一区喷| 午夜精品国产自在| 69免费在线视频|