• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      耿泉峰 李曦 葛維

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

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

      中圖分類號: TP391. 41? ? 文獻標(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運維的工作流,[1]以IT自動化以及持續(xù)集成(CI)、持續(xù)部署(CD)為基礎(chǔ),來優(yōu)化程式開發(fā)、測試、系統(tǒng)運維等所有環(huán)節(jié)。

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

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

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

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

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

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

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

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

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

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

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

      1? DevOps流程

      DevOps的流程主要劃分為以下幾個部分:持續(xù)的管理計劃,持續(xù)的集成與測試,持續(xù)的交付于部署,持續(xù)的監(jiān)控與運維,持續(xù)的分析與計劃[3]。

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

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

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

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

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

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

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

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

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

      2? DevOps常用工具

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

      2.1? 項目管理

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

      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ā)、測試、運維人員專注于崗位工作,而不用浪費時間在各節(jié)點銜接的約定配置上面。

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

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

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

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

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

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

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

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

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

      3? DevOps實例

      D運維自動化管理平臺DevOps開發(fā)實例。

      3.1? 制定計劃

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

      猜你喜歡
      測試人員開發(fā)人員容器
      移動應(yīng)用眾包測試人員信譽度復(fù)合計算模型研究
      Different Containers不同的容器
      難以置信的事情
      Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
      高校分析測試中心測試隊伍建設(shè)方案初探
      山東化工(2018年20期)2018-04-02 16:30:53
      淺析軟件測試中的心理學(xué)應(yīng)用
      取米
      讓W(xué)indows 10進入開發(fā)者模式
      電腦迷(2015年12期)2015-04-29 23:22:51
      后悔了?教你隱藏開發(fā)人員選項
      電腦愛好者(2015年6期)2015-04-03 01:20:56
      犯罪心理測試人員素質(zhì)要求分析
      自治县| 扎兰屯市| 沾益县| 肇州县| 永康市| 双流县| 朔州市| 威海市| 榆中县| 运城市| 永和县| 阿鲁科尔沁旗| 金平| 望城县| 从江县| 呈贡县| 兴仁县| 冕宁县| 黔西县| 金塔县| 通海县| 格尔木市| 梁河县| 射洪县| 三门峡市| 隆安县| 宜宾市| 瑞金市| 成安县| 盐津县| 尼勒克县| 水富县| 崇文区| 广元市| 周宁县| 酉阳| 宣恩县| 垦利县| 洛浦县| 杭锦旗| 巫溪县|