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

基于Bamboo的持續集成系統

2016-12-21 10:05:52段琳孫恒一
電子技術與軟件工程 2016年20期
關鍵詞:自動化

段琳++孫恒一

摘 要 傳統的軟件開發模式經常會遇到開發階段與驗收階段隔離所帶來的諸多問題,基于Bamboo的持續集成系統通過自動化手段為軟件項目開發團隊轉變傳統開發模式、實踐持續集成思想提供了足夠的平臺支持,有利于項目快速反饋機制的建立、有利于盡早發現問題手段的完善,為軟件的高質量交付創造條件。

【關鍵詞】軟件開發模式 持續集成 自動化

1 引言

傳統的軟件項目在開發階段并不要求進行軟件集成,這就造成了應用程序在相當長的一段時間內始終處于無法運行的狀態,尤其在軟件開發團隊規模比較大的情況下這一現象顯得尤為突出。原因很簡單,項目干系人沒有興趣在開發完成之前運行整個應用。針對項目的軟件測試在沒有可運行應用程序的情況下,更多依賴于軟件開發人員自行編寫的單元測試,而這些測試用例對于運行環境來講意義不大。這樣的做法對于那些項目分支的生命周期很長或者把驗收測試放到項目尾聲來做的團隊將是災難性的。為了彌補這一缺失,團隊負責人不得不在開發結束后預留很長的時間作為集成階段,最糟糕的是沒人知道到底要花多長時間完成項目集成。極端的情況是有些項目到了集成階段才發現軟件并不完全滿足用戶需求。

解決以上困難的途徑之一就是采用持續集成。持續集成要求每當有開發人員提交代碼,就要對整個應用實施構建、部署并執行全面的自動化測試進行驗證。這一過程中最重要的原則是如果構建或者測試失敗,則開發團隊應立即停止研發的工作,在最短的時間內予以修復。持續集成的目標是保證正在開發的軟件一直處于正常工作狀態。

持續集成是一種軟件工程實踐,即項目研發團隊對源代碼進行高頻度集成。每次集成都通過自動化構建(包括編譯,發布,自動化測試)來驗證集成效果從而盡快發現并改正軟件錯誤,進而提高軟件質量。企業可以通過建立以持續集成為核心軟件開發控制體系來規范其軟件版本變更行為,實現對軟件版本變更的深入管控,確保軟件版本發布的正確性、合規性及穩定性。

為了能夠深入理解持續集成理論,在實踐中積累應用經驗,特選取Atlassion公司的持續集成管理系統Bamboo進行持續集成系統研究。

2 持續集成系統研究

2.1 Bamboo簡介

Atlassian Bamboo是一款商業的持續集成構建服務器軟件。它是一套持續集成服務系統,它會在代碼庫有變動后有策略的觸發構建、部署及測試以確保新的變化很好地整合到已有的代碼庫中或者通過反饋機制快速將失敗發送給開發團隊;發布管理功能通過腳本執行來規范發布流程。Bamboo實現持續集成的原理圖如圖1所示。

2.2 準備工作

在開始搭建持續集成之前,需要做好版本控制、自動化構建及團隊意識建立三件事情。

2.2.1 版本控制

與項目相關的所有內容都必須提交到一個版本控制庫中,包括產品代碼、測試代碼、數據庫腳本、構建與部署腳本,以及所有用于創建、安裝、運行和測試的相關文件,本次研究采用的版本控制工具為Tortoise SVN。

2.2.2 命令行腳本

持續集成系統是通過命令行來執行自動構建、部署、測試和發布的。這么做是為了確保持續集成是以自動化方式完成整個過程的。應盡量保持腳本整潔、易于理解、易于維護,這樣有利于使用持續集成系統的項目人員更好的協作。

2.2.3 團隊意識建立

嚴格的講,持續集成并不是一種工具,而是一種軟件開發實踐。它需要開發團隊能夠給予支持并嚴格遵守持續集成原則,每個人以增量的方式頻繁提交代碼并認同“修復破壞應用程序的任意修改是最高優先級的任務”,如果團隊無法達成類似共識,那么便無法通過持續集成達到提升軟件質量的目標。

2.3 流程自動化

源代碼提交流程是Bamboo持續集成系統應用中最重要的組成部分。如圖2所示的源代碼變更流程中,交付/開發團隊提交代碼至版本控制庫,觸發構建和單元測試,構建成功則觸發自動化驗收測試,成功則繼續用戶驗收測試以及發布,在每一步出現問題則及時反饋給交付/開發團隊。

這一過程保證了源代碼在提交、構建、單元測試、自動化驗收測試、用戶驗收及發布的各個階段始終處于被控狀態,整個過程以流水線的形式開展并對過程結果予以記錄和反饋,從而實現流程自動化。流水線的輸入是版本控制中的某個具體版本,輸出的是經過測試的發布版本。

有效地阻止那些沒有經過充分測試或不滿足功能需求的版本進入生產環境能避免回歸缺陷,尤其是對那些需要緊急修復并部署到生產環境的情況來說更為重要。在構建、部署、測試以及發布被自動化實現以后,項目團隊能夠更加靈活的處理緊急情況,產品發布根本不會存在任何風險,因為總有一個最近的正確版本作為下一次代碼提交的基礎,一旦有問題則立刻回滾,然后線下修復就可以了。另外自動化還能避免手工易錯步驟帶來的項目風險。

2.4 多種開發語言支持

Bamboo針對不同編程語言的特點,提供多種構建、部署、自動化測試的工具,如圖3所示,構建工具包括Ant、Bower、AWS CodeDeploy、Docker、Grails、Grunt、Maven、MSBuild、NAnt、Node.js、Nodeunit、Devenv、Script等;如圖4所示,測試工具包括JUnit、MBUnit、Mocha Test、MSTest、NUnit、PHPUnit、TestNG等;如圖5所示,部署工具包括Artifact Download、Tomcat、Docker、Heroku、SSH、SCP等。這些工具為實現持續集成自動化提供有力支持。

本次研究以目前主流的三種軟件開發語言Java、MS.Net、PHP為例驗證Bamboo持續集成系統對持續集成的實現。

JAVA項目采用:

Ant+Selenium+Nunit+Tomcat。

MS.Net項目采用:

MSBuild+WatiN+MSTest+Artifact Download。

PHP項目采用:

Selenium+PHPUnit+SSH。

實踐證明,Bamboo提供的持續集成工具能夠很好地發揮作用。

2.5 部署一體化

軟件部署流程的起點是開發人員向版本控制庫提交代碼,持續集成管理系統對這次提交做出響應即觸發部署流程。第一個階段稱為提交階段,通過編譯代碼、運行單元測試、執行代碼分析、創建軟件二進制包,在所有單元測試驗證通過后將可執行代碼打包成可執行文件,并放到一個制品庫(Artifacts Repository)中。Bamboo提供了保存這種過程產物的功能,并能夠將其提供給流水線的后續階段。

第二階段進入驗收階段,主要特點為自動化驗收測試、冒煙測試的執行。持續集成服務系統Bamboo支持多個代理機(agent)同時運行自動化任務。這種并行執行會明顯提高執行效率,更快得到反饋,更快針對反饋做出處理。這個階段是流水線中第一階段成功完成后自動觸發的,該階段完成后同樣會將驗證后的成果放入到制品庫中。

第三階段進入部署階段。前兩個階段的順利完成為第三階段創造了條件,根據不同項目特點,將產品實際部署到任意環境(測試環境、發布環境、生產環境等)。Bamboo在完成整個過程中,需要版本控制、制品倉庫管理、配置管理的全程配合,如圖6的部署基本流程演示了整個部署一體化實現流程。

3 結論

基于Bamboo的持續集成系統通過自動化手段為軟件項目開發團隊轉變傳統開發模式、實踐持續集成思想提供了足夠的平臺支持,有利于項目快速反饋機制的建立、有利于盡早發現問題手段的完善,為軟件的高質量交付創造條件。

參考文獻

[1]Jez Humble,David Farley.持續交付-發布可靠軟件的系統方法[M].北京:人民郵電出版社,2011:87-90.

[2]董越.軟件集成策略:如何有效地提升質量[M].北京:電子工業出版社,2013,277-288.

[3]杜瓦爾,邁耶斯,格洛弗.持續集成軟件質量改進和風險降低之道[M].北京:機械工業出版社,2008,59-66.

作者簡介

段琳(1990-),女,白族,云南省大理市人。碩士研究生學位。研究方向為數字圖像處理。

孫恒一(1989-),男,云南省玉溪市人。碩士研究生學位。研究方向為電力信息化。

作者單位

云南電網有限責任公司信息中心 云南省昆明市 650217

猜你喜歡
自動化
國內焊接設備市場現狀及發展趨勢研究
經營者(2016年12期)2016-10-21 07:39:01
供電企業電力自動化主站系統研究
錦界煤礦連采膠帶機集控系統的介紹
供熱站自動控制系統中PLC的應用
AGV小車在白酒行業自動化立體倉庫中的應用
中國市場(2016年36期)2016-10-19 03:40:15
電氣工程及其自動化問題與對策
我國機械設計制造及其自動化的現狀及發展趨勢
淺論節能設計理念在機械制造與自動化中的應用
簡析火力發電廠熱工自動化儀表應用及故障排除方法
配網自動化實用化模式建設及系統運行
主站蜘蛛池模板: 亚洲丝袜中文字幕| 久久久噜噜噜久久中文字幕色伊伊 | 91久久精品日日躁夜夜躁欧美| 看国产一级毛片| 欧美成人免费午夜全| 日韩黄色大片免费看| 91丝袜乱伦| 91久久国产热精品免费| 亚洲中文精品人人永久免费| 在线综合亚洲欧美网站| 91福利在线观看视频| 国产h视频免费观看| 久久这里只有精品66| 亚洲最大综合网| 伊人无码视屏| 麻豆精品久久久久久久99蜜桃| 亚洲视频免费播放| 免费又爽又刺激高潮网址 | 亚洲人成网站观看在线观看| 青青久在线视频免费观看| 国产成人凹凸视频在线| 亚洲aaa视频| 草逼视频国产| 亚洲人成网站在线观看播放不卡| 97se亚洲综合在线| 日韩无码黄色网站| 国产精品成人一区二区| 国产伦片中文免费观看| 久久精品人人做人人爽电影蜜月| 久久黄色视频影| 中文字幕精品一区二区三区视频 | 99久久精品免费看国产免费软件| 中文字幕在线看视频一区二区三区| 久草青青在线视频| 高清视频一区| 免费久久一级欧美特大黄| 美女内射视频WWW网站午夜| 又黄又湿又爽的视频| 欧美日韩免费观看| 色婷婷丁香| 久草国产在线观看| 国产精品蜜芽在线观看| 一区二区影院| 亚洲精品国产成人7777| 亚洲天堂网在线视频| a级毛片免费看| 国产在线观看人成激情视频| 一区二区三区高清视频国产女人| 欧美狠狠干| 亚洲热线99精品视频| 好吊色国产欧美日韩免费观看| 波多野结衣亚洲一区| 在线网站18禁| 亚洲六月丁香六月婷婷蜜芽| 中文一级毛片| 99热这里都是国产精品| 国产亚洲精品97在线观看| 久久99国产综合精品1| 在线国产综合一区二区三区 | 欧美日韩免费在线视频| 久久久久亚洲精品无码网站| 五月天在线网站| 亚洲无线视频| 亚洲国产高清精品线久久| 日韩av高清无码一区二区三区| 国产精品手机在线播放| 国产精品久久久久鬼色| 亚洲开心婷婷中文字幕| 99视频在线免费| 国产亚洲精| 日本精品αv中文字幕| 无码aⅴ精品一区二区三区| 国产区福利小视频在线观看尤物| 99re热精品视频国产免费| 欧美日本在线一区二区三区| 老熟妇喷水一区二区三区| 亚洲视频无码| 国产在线日本| 亚洲欧美国产高清va在线播放| 婷婷成人综合| 国产91透明丝袜美腿在线| 久久精品国产91久久综合麻豆自制|