亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2019-10-08 07:45:24耿泉峰李曦葛維
        軟件 2019年1期
        關(guān)鍵詞:測(cè)試人員開發(fā)人員容器

        耿泉峰 李曦 葛維

        摘? 要: 文章簡(jiǎn)述了DevOps概念、基于DevOps的軟件開發(fā)流程,并以D平臺(tái)為例對(duì)開發(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ā)展趨勢(shì)。

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

        中圖分類號(hào): TP391. 41? ? 文獻(xiàn)標(biāo)識(shí)碼: 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ā)、測(cè)試、系統(tǒng)運(yùn)維等所有環(huán)節(jié)。

        它重視“軟件開發(fā)人員”和“IT運(yùn)維人員”間的協(xié)作。基于自動(dòng)的持續(xù)的軟件交付流程,使編譯,打包,發(fā)布,測(cè)試等行為能夠更高效,更穩(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)化集成和測(cè)試程序,還需要與版本控制緊密結(jié)合。除此之外,還需要注重各崗位之間協(xié)作的關(guān)系。把開發(fā)與運(yùn)維相融合,這是很重要的思維轉(zhuǎn)變。

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

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

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

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

        DevOps目前處于急速增長(zhǎng)狀態(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增長(zhǎng)量也非常虧,使用率翻倍。Ansible的用量也顯著增加,使用率從15%增長(zhǎng)至31%。

        1? DevOps流程

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

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

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

        業(yè)務(wù)產(chǎn)品人員制定功能并于開發(fā),測(cè)試與運(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)目管理平臺(tái)(比如JIRA)中對(duì)所有人為可見并實(shí)時(shí)更新狀態(tài)。

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

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

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

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

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

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

        2? DevOps常用工具

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

        2.1? 項(xiàng)目管理

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

        2.2? 開發(fā)工具

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

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

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

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

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

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

        kubernetes,簡(jiǎn)稱K8s,是用8代替8個(gè)字符“ubernete”而成的縮寫。是一個(gè)開源的,用于管理云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡(jiǎn)單并且高效(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)用的升級(jí)更新/回滾等操作,當(dāng)然也可以通過創(chuàng)建虛擬機(jī)的方式來實(shí)現(xiàn)某些功能,但是虛擬機(jī)非常重,并不利于可移植性。

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

        容器占用資源少、部署快,每個(gè)應(yīng)用可以被打包成一個(gè)容器鏡像,每個(gè)應(yīng)用與容器間成一對(duì)一關(guān)系也使容器有更大優(yōu)勢(shì),使用容器可以在build或release 的階段,為應(yīng)用創(chuàng)建容器鏡像,因?yàn)槊總€(gè)應(yīng)用不需要與其余的應(yīng)用堆棧組合,也不依賴于生產(chǎn)環(huán)境基礎(chǔ)結(jié)構(gòu),這使得從研發(fā)到測(cè)試、生產(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)化管理平臺(tái)DevOps開發(fā)實(shí)例。

        3.1? 制定計(jì)劃

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

        猜你喜歡
        測(cè)試人員開發(fā)人員容器
        移動(dòng)應(yīng)用眾包測(cè)試人員信譽(yù)度復(fù)合計(jì)算模型研究
        Different Containers不同的容器
        難以置信的事情
        Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
        高校分析測(cè)試中心測(cè)試隊(duì)伍建設(shè)方案初探
        山東化工(2018年20期)2018-04-02 16:30:53
        淺析軟件測(cè)試中的心理學(xué)應(yīng)用
        取米
        讓W(xué)indows 10進(jìn)入開發(fā)者模式
        電腦迷(2015年12期)2015-04-29 23:22:51
        后悔了?教你隱藏開發(fā)人員選項(xiàng)
        電腦愛好者(2015年6期)2015-04-03 01:20:56
        犯罪心理測(cè)試人員素質(zhì)要求分析
        国产在线无码精品无码| 中文字幕一区韩国三级| 亚洲综合色视频在线免费观看| 蜜臀av毛片一区二区三区| 97在线观看播放| 国产精品国产三级农村妇女| 中文字幕五月久久婷热| 中文字幕亚洲精品在线免费| 国产精品人妻一区二区三区四| 在教室伦流澡到高潮hnp视频| jiZZ国产在线女人水多| 亚洲熟女乱一区二区三区| 久久久久夜夜夜精品国产| 亚洲最大中文字幕无码网站| 亚洲欧美成人久久综合中文网| 国产av熟女一区二区三区密桃| 乱子伦一区二区三区| 偷窥村妇洗澡毛毛多| 亚洲va精品va国产va| 精品国产一区二区三区性色| 午夜理论片yy44880影院| 亚洲人成影院在线无码观看| 在线播放中文字幕一区二区三区| 亚洲第一幕一区二区三区在线观看| 成人综合网站| 亚洲国产欧美日韩一区二区| 一区二区黄色素人黄色| 国产成人精品无码片区在线观看 | 午夜不卡久久精品无码免费| 亚洲AⅤ樱花无码| 亚洲男人的天堂av一区| 国产精品无码v在线观看| 国产美女白浆| 蜜桃视频网站在线免费观看| 久青草影院在线观看国产| 天堂影院一区二区三区四区| 亚洲第一免费播放区| 亚洲国产成人久久精品一区| 国产女人高潮叫床免费视频| 国产一区二区牛影视| 人妻体体内射精一区中文字幕 |