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)目管理
主站蜘蛛池模板: 暴力调教一区二区三区| 黑人巨大精品欧美一区二区区| 亚洲国产av无码综合原创国产| 片在线无码观看| 日韩在线2020专区| 91口爆吞精国产对白第三集| 毛片网站在线看| 九九香蕉视频| 青青草国产免费国产| 亚洲看片网| 日韩第一页在线| 看国产毛片| 日本成人福利视频| 国产18页| 天堂av高清一区二区三区| 亚洲第一区欧美国产综合| 综合亚洲网| 亚洲精品波多野结衣| 久久9966精品国产免费| av尤物免费在线观看| 亚洲色图在线观看| 国产亚洲精久久久久久无码AV| 亚洲伊人电影| 无码国产偷倩在线播放老年人 | 99re视频在线| 992tv国产人成在线观看| 亚洲swag精品自拍一区| 中文字幕乱妇无码AV在线| 91亚洲国产视频| 亚洲精品麻豆| 美女扒开下面流白浆在线试听| 国产乱视频网站| 中文字幕人成人乱码亚洲电影| 欧美日韩福利| 国产美女视频黄a视频全免费网站| 高h视频在线| 国产99免费视频| 久操中文在线| a级高清毛片| 国产精品片在线观看手机版| 日韩激情成人| 亚洲AV无码乱码在线观看裸奔 | 亚洲国产精品一区二区第一页免 | 国产在线观看精品| 日本一区二区三区精品AⅤ| 亚瑟天堂久久一区二区影院| 日本在线亚洲| www.youjizz.com久久| 无码精品福利一区二区三区| 91毛片网| 无码免费视频| 大香网伊人久久综合网2020| 国产欧美精品一区aⅴ影院| 无码粉嫩虎白一线天在线观看| 无码一区二区波多野结衣播放搜索| 久久九九热视频| 日韩小视频在线播放| 国产91成人| a级毛片一区二区免费视频| 国产日韩精品欧美一区灰| 中文字幕在线不卡视频| 亚洲国产午夜精华无码福利| 激情综合网激情综合| 青青草国产免费国产| 毛片在线区| 九九九国产| 久久国产精品夜色| 成人免费一区二区三区| 久热中文字幕在线| 午夜日韩久久影院| 欧美日韩高清| 日韩无码黄色网站| 国产91av在线| 国产男女免费完整版视频| 91色老久久精品偷偷蜜臀| 免费一极毛片| 亚洲人成电影在线播放| 久久a级片| 国产精品久久精品| 毛片网站免费在线观看| 91青青视频| 五月婷婷激情四射|