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

基于DevOps的軟件開發(fā)管理模式

2019-10-08 07:45:24耿泉峰李曦葛維
軟件 2019年1期
關(guān)鍵詞:項(xiàng)目管理

耿泉峰 李曦 葛維

摘? 要: 文章簡述了DevOps概念、基于DevOps的軟件開發(fā)流程,并以D平臺為例對開發(fā)流程的每一步給出了示例。DevOps本質(zhì)上是將IT開發(fā)與運(yùn)維合并,借助強(qiáng)大的管理工具,引入容器化技術(shù)使當(dāng)前系統(tǒng)環(huán)境部署過程由IAAS轉(zhuǎn)向PAAS,用以規(guī)范系統(tǒng)間調(diào)用關(guān)系,并基于PAAS基礎(chǔ)之上整改配置項(xiàng)及數(shù)據(jù),使其與系統(tǒng)服務(wù)分離,實(shí)現(xiàn)靈活配置,快速實(shí)施。DevOps是軟件開發(fā)管理未來的發(fā)展趨勢。

關(guān)鍵詞: DevOps開發(fā)與運(yùn)維;DevOps軟件開發(fā)流程

中圖分類號: TP391. 41? ? 文獻(xiàn)標(biāo)識碼: B? ? ?DOI:10.3969/j.issn.1003-6970.2019.01.020

【Abstract】: This paper briefly introduces the concept of DevOps and the software development process based on DevOps, and gives an example of each step of the development process with the D platform as an example. DevOps is essentially a combination of IT development and maintenance. With the help of powerful management tools and container technology, the current system environment deployment process is changed from IAAS to PAAS to standardize inter-system call relations. Based on PAAS, the configuration items and data are adjusted to separate them from system services, achieve flexible configuration and fast implementation. Shi. DevOps is the future trend of software development management.

【Key words】: DevOps development; Operation and maintenance DevOps software development process

0? 引言

DevOps(Development和Operations的組合詞)是一套完整的面向IT運(yùn)維的工作流,[1]以IT自動(dòng)化以及持續(xù)集成(CI)、持續(xù)部署(CD)為基礎(chǔ),來優(yōu)化程式開發(fā)、測試、系統(tǒng)運(yùn)維等所有環(huán)節(jié)。

它重視“軟件開發(fā)人員”和“IT運(yùn)維人員”間的協(xié)作。基于自動(dòng)的持續(xù)的軟件交付流程,使編譯,打包,發(fā)布,測試等行為能夠更高效,更穩(wěn)定。

敏捷迭代的概念愈發(fā)明顯,為支持敏捷二字,傳統(tǒng)的軟件發(fā)布模式已經(jīng)感到乏力,因此DevOps的概念應(yīng)運(yùn)而生。圖1為DevOps的概念圖。

DevOps串聯(lián)的是技術(shù)與人的問題。它包含許多技術(shù)方案,比如像持續(xù)集成這類概念已深入人心,持續(xù)集成要做好,不但需要持續(xù)集成服務(wù)器及配套的自動(dòng)化集成和測試程序,還需要與版本控制緊密結(jié)合。除此之外,還需要注重各崗位之間協(xié)作的關(guān)系。把開發(fā)與運(yùn)維相融合,這是很重要的思維轉(zhuǎn)變。

DevOps最主要的優(yōu)勢是可以持續(xù)的高效的進(jìn)行交付,這也正是這個(gè)概念興起的原因。使用DevOps的高效IT公司平均每年可以完成1460次部署。與其他未使用DevOps的IT公司相比,前者的部署頻率為后者的200倍,前者投產(chǎn)速度比后者快2555倍,前者故障恢復(fù)速度比后者快24倍。在開發(fā)及運(yùn)維工作分配過程中,后者要多花22%的時(shí)間用在為規(guī)劃好或者重復(fù)工作上,而前者卻可以多花29%的時(shí)間用在其他類型工作上面。可以看出利用Devops不緊提高了產(chǎn)品產(chǎn)出效率,也提高了員工的工作質(zhì)量。

DevOps還有一個(gè)優(yōu)勢就是可以使每一個(gè)員工都理解和參與整體的產(chǎn)品生產(chǎn)過程,提高了員工的滿足和成就感,使員工產(chǎn)出更為高效。

可能你會(huì)認(rèn)為快速部署和提高投產(chǎn)質(zhì)量是自相矛盾的。其實(shí)不然,快速部署可以使投產(chǎn)過程中的問題今早暴露,產(chǎn)品可以更快交付,更快得到用戶反饋,從而更快的進(jìn)行響應(yīng)優(yōu)化。“小步快跑”是DevOps的形式,每次集成帶來的變化是比較小的,出現(xiàn)問題偏差較小,修復(fù)優(yōu)化也相對容易。

DevOps是開發(fā)人員,運(yùn)維人員和質(zhì)量人員之間溝通協(xié)作的“橋梁”。將傳統(tǒng)產(chǎn)品發(fā)布模式及運(yùn)維模式進(jìn)行改變,提高效率,降低成本。

DevOps目前處于急速增長狀態(tài),在大型企業(yè)中尤為明顯,經(jīng)過調(diào)查,DevOps在企業(yè)中的接受度大幅提高。%74的受訪者接受并認(rèn)可了DevOps。目前,88%的大型企業(yè)開始接受并使用DevOps,中小型企業(yè)的使用占比也達(dá)到了75%。

目前采用DevOps的公司有很多,比如:Walmart、Sony、Adobe、Amazon、Apple、Facebook、LinkedIn、Airbnb、Ebay、Etsy、NASA、Starbucks、Netflix、Target,等。

大型企業(yè)正在自下而上接受DevOps,其中業(yè)務(wù)部門(35%)以及項(xiàng)目和團(tuán)隊(duì)(32%)已經(jīng)實(shí)施DevOps。不過,只有22%的大企業(yè)在整個(gè)公司范圍內(nèi)使用了DevOps[2]。

實(shí)用工具方面,DevOps工具的用量大幅。Puppet和Chef是最常用的DevOps工具,使用率均為35%。Docker增長量也非常虧,使用率翻倍。Ansible的用量也顯著增加,使用率從15%增長至31%。

1? DevOps流程

DevOps的流程主要?jiǎng)澐譃橐韵聨讉€(gè)部分:持續(xù)的管理計(jì)劃,持續(xù)的集成與測試,持續(xù)的交付于部署,持續(xù)的監(jiān)控與運(yùn)維,持續(xù)的分析與計(jì)劃[3]。

DevOps流程中涉及的角色為:產(chǎn)品業(yè)務(wù)人員,開發(fā)人員,測試人員,運(yùn)維人員,項(xiàng)目管理人員(Scrum Master)

1.1? 持續(xù)的管理與計(jì)劃

業(yè)務(wù)產(chǎn)品人員制定功能并于開發(fā),測試與運(yùn)維人員一起制定產(chǎn)品交付計(jì)劃[4]。每一個(gè)角色根據(jù)自身工作內(nèi)容做出建議。項(xiàng)目管理人員在這個(gè)階段制定進(jìn)度,并在流程每一個(gè)節(jié)點(diǎn)進(jìn)行狀態(tài)跟蹤。整體計(jì)劃及狀態(tài)應(yīng)該在項(xiàng)目管理平臺(比如JIRA)中對所有人為可見并實(shí)時(shí)更新狀態(tài)。

1.2? 持續(xù)集成與測試

開發(fā)人員在開發(fā)業(yè)務(wù)功能同時(shí)需同時(shí)編寫針對功能的單元測試代碼,運(yùn)維人員在編譯功能代碼的同時(shí)編譯并運(yùn)行單元測試模塊,并針對結(jié)果進(jìn)行判斷是否需要修改或向測試人員流轉(zhuǎn)。測試人員依據(jù)功能描述和接口文檔編寫接口測試用例,運(yùn)維人員在編譯部署通過后集成接口測試并反饋測試報(bào)告。整個(gè)過程的狀態(tài)應(yīng)該是對所有參與人員可見的。

1.3? 持續(xù)交付與部署

針對代碼開發(fā)實(shí)施每日構(gòu)建和集成,可以使用集成工具如jenkins進(jìn)行定時(shí)構(gòu)建并將構(gòu)建產(chǎn)物部署至仿真環(huán)境,將部署結(jié)果告知測試人員進(jìn)行驗(yàn)證。圖3為jenkins定時(shí)示例。

1.4? 持續(xù)的分析與計(jì)劃

針對項(xiàng)目管理平臺(JIRA)的每項(xiàng)工作狀態(tài)進(jìn)行分析,發(fā)現(xiàn)突破及瓶頸,并針對性的對計(jì)劃進(jìn)行變更。加入每天站立會(huì)進(jìn)行整體進(jìn)度匯總報(bào)告并吸收參與人員的建議。

2? DevOps常用工具

以下是以某電子系統(tǒng)的D運(yùn)維自動(dòng)化管理平臺(以下簡稱”D平臺”)為例的DevOps常用工具。D平臺的DevOps工具中包含了項(xiàng)目管理平臺JIRA、開發(fā)工具GIT、持續(xù)集成與測試、持續(xù)交付與部署、持續(xù)監(jiān)控與運(yùn)維這幾個(gè)部分。

2.1? 項(xiàng)目管理

JIRA[5]是基于JAVA開發(fā)的項(xiàng)目缺陷跟蹤管理平臺,由Atlassian公司開發(fā),JIRA在項(xiàng)目管理系統(tǒng)中功能和穩(wěn)定性一向比較出色,而且易用性也比較好。同時(shí)用戶購買JIRA系統(tǒng)的同時(shí),也獲得了其源代碼,可以做二次開發(fā)。JIRA功能強(qiáng)大,界面簡潔,配置靈活,可擴(kuò)展性強(qiáng)。

2.2? 開發(fā)工具

GIT是一套分布式代碼管理系統(tǒng),可以高效的處理代碼版本問題。主要特性表現(xiàn)為遠(yuǎn)程分支和本地分支的結(jié)合使用來解決多功能并行開發(fā)的需求。

2.3? 持續(xù)集成與測試

Maven[6]是管理開發(fā)代碼間依賴的利器。Maven對開發(fā)人員提供了一套完整的生命周期框架。Maven可以集成所有開發(fā)過程,包括編譯、打包、測試、發(fā)布、歸檔等操作。Maven的原則是約定大于配置,可以讓開發(fā)、測試、運(yùn)維人員專注于崗位工作,而不用浪費(fèi)時(shí)間在各節(jié)點(diǎn)銜接的約定配置上面。

CsperJS:CsperJS[7]是基于PhantomJS編寫的腳本處理和測試工具,提供了完成常見場景的測試方法。D平臺使用CasperJS編寫平臺測試案例,并與JENKINS集成形成自動(dòng)化測試體系。

Jenkins: Jenkins[8]是基于JAVA開發(fā)的持續(xù)集成平臺,并且已開源,用于解決重復(fù)的工作,比如編譯、冒煙測試、發(fā)布等操作。Jenkins擴(kuò)展性極強(qiáng),可以與大部分框架集成,包括Maven, kubernetes, CsperJS等,在大多數(shù)企業(yè)中被廣泛使用。

2.4? 持續(xù)交付與部署

kubernetes,簡稱K8s,是用8代替8個(gè)字符“ubernete”而成的縮寫。是一個(gè)開源的,用于管理云平臺中多個(gè)主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡單并且高效(powerful),Kubernetes提供了應(yīng)用部署,規(guī)劃,更新,維護(hù)的一種機(jī)制。

傳統(tǒng)的應(yīng)用部署方式是通過插件或腳本來安裝應(yīng)用。這樣做的缺點(diǎn)是應(yīng)用的運(yùn)行、配置、管理、所有生存周期將與當(dāng)前操作系統(tǒng)綁定,這樣做并不利于應(yīng)用的升級更新/回滾等操作,當(dāng)然也可以通過創(chuàng)建虛擬機(jī)的方式來實(shí)現(xiàn)某些功能,但是虛擬機(jī)非常重,并不利于可移植性。

新的方式是通過部署容器方式實(shí)現(xiàn),每個(gè)容器之間互相隔離,每個(gè)容器有自己的文件系統(tǒng),容器之間進(jìn)程不會(huì)相互影響,能區(qū)分計(jì)算資源。相對于虛擬機(jī),容器能快速部署,由于容器與底層設(shè)施、機(jī)器文件系統(tǒng)解耦的,所以它能在不同云、不同版本操作系統(tǒng)間進(jìn)行遷移。

容器占用資源少、部署快,每個(gè)應(yīng)用可以被打包成一個(gè)容器鏡像,每個(gè)應(yīng)用與容器間成一對一關(guān)系也使容器有更大優(yōu)勢,使用容器可以在build或release 的階段,為應(yīng)用創(chuàng)建容器鏡像,因?yàn)槊總€(gè)應(yīng)用不需要與其余的應(yīng)用堆棧組合,也不依賴于生產(chǎn)環(huán)境基礎(chǔ)結(jié)構(gòu),這使得從研發(fā)到測試、生產(chǎn)能提供一致環(huán)境[9]。類似地,容器比虛機(jī)輕量、更“透明”,這更便于監(jiān)控和管理。圖4為kubernetes架構(gòu)。

2.5? 持續(xù)監(jiān)控與運(yùn)維

Zabbix[10]:Zabbix是基于WEB界面提供分布式系統(tǒng)及網(wǎng)絡(luò)監(jiān)視功能的開源框架。

3? DevOps實(shí)例

D運(yùn)維自動(dòng)化管理平臺DevOps開發(fā)實(shí)例。

3.1? 制定計(jì)劃

由業(yè)務(wù)產(chǎn)品人員制定D平臺本年度的b需求點(diǎn)并添加至JIRA平臺。項(xiàng)目管理人員在計(jì)劃階段確定大概的需求及完成時(shí)間,在JIRA平臺中確定Sprint。每個(gè)項(xiàng)目團(tuán)隊(duì)的成員在Sprint下建立相應(yīng)的工作任務(wù),使JIRA平臺sprint狀態(tài)中任務(wù)情況一目了然。項(xiàng)目管理人員跟蹤Sprint及Sprint下任務(wù)的分配情況。

猜你喜歡
項(xiàng)目管理
裝配式EPC總承包項(xiàng)目管理
基于大數(shù)據(jù)分析的集合式EPC總承包項(xiàng)目管理軟件技術(shù)的應(yīng)用
項(xiàng)目管理在科研項(xiàng)目管理中的應(yīng)用
新形勢下大數(shù)據(jù)分析方法在項(xiàng)目管理中的應(yīng)用
未來如何更高效地進(jìn)行工程項(xiàng)目管理
建筑施工項(xiàng)目管理
項(xiàng)目管理在通信工程設(shè)計(jì)中的應(yīng)用
環(huán)境工程的項(xiàng)目管理
創(chuàng)新項(xiàng)目管理 凝聚農(nóng)發(fā)正能量
淺談如何有效進(jìn)行項(xiàng)目管理
主站蜘蛛池模板: 国产一在线观看| 国内毛片视频| 精品国产网站| 国产福利免费观看| 欧美三级自拍| 国产超碰在线观看| 日本不卡在线视频| 日本免费a视频| 日韩欧美国产成人| 精品国产一区91在线| 日韩欧美中文| 久久香蕉国产线看观看式| 国产白浆在线| 手机在线看片不卡中文字幕| 无码网站免费观看| 亚洲精品高清视频| 永久成人无码激情视频免费| 91丝袜乱伦| 国产成人免费| 午夜国产小视频| 精品欧美日韩国产日漫一区不卡| 爱做久久久久久| 国产免费一级精品视频 | 色综合天天综合| www.亚洲色图.com| yjizz视频最新网站在线| 亚洲天堂2014| 国产成人凹凸视频在线| 18禁黄无遮挡网站| 在线亚洲精品福利网址导航| 狠狠色香婷婷久久亚洲精品| 亚洲AV无码久久精品色欲| 亚洲欧美极品| 久无码久无码av无码| 国产内射在线观看| 天天爽免费视频| 欧美综合区自拍亚洲综合绿色| 国产91熟女高潮一区二区| 九九九精品成人免费视频7| 国产成人精品一区二区三区| 国产chinese男男gay视频网| 55夜色66夜色国产精品视频| 国产永久在线视频| 精品综合久久久久久97| 欧美成人免费午夜全| 国产精品极品美女自在线看免费一区二区| 亚洲精品麻豆| 国产精品亚洲五月天高清| 成年人视频一区二区| 国产又色又爽又黄| 亚洲欧美自拍中文| 亚洲中文精品久久久久久不卡| 99免费在线观看视频| 国产精品主播| 无码内射在线| 呦女亚洲一区精品| 国产欧美日韩在线在线不卡视频| a网站在线观看| 亚洲日韩欧美在线观看| AV熟女乱| 亚洲 欧美 中文 AⅤ在线视频| 成人午夜天| 亚洲美女一区| 精品成人一区二区三区电影| 亚洲第一极品精品无码| 国产超薄肉色丝袜网站| 91精品免费高清在线| 99精品热视频这里只有精品7| 亚洲成a∧人片在线观看无码| 四虎精品国产永久在线观看| 无码日韩视频| 99青青青精品视频在线| 国产欧美视频在线| 尤物午夜福利视频| 亚洲V日韩V无码一区二区| 国产综合精品一区二区| 在线观看网站国产| 日韩美毛片| 日本福利视频网站| 亚洲一级色| 国产精品专区第1页| 午夜日b视频|