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
電氣工程及其自動化問題與對策
我國機械設計制造及其自動化的現狀及發展趨勢
淺論節能設計理念在機械制造與自動化中的應用
簡析火力發電廠熱工自動化儀表應用及故障排除方法
配網自動化實用化模式建設及系統運行
主站蜘蛛池模板: 成人午夜免费观看| 99视频精品全国免费品| 一区二区三区四区在线| 美女被操黄色视频网站| 国产又色又刺激高潮免费看| 日本伊人色综合网| 国产超碰一区二区三区| 真人高潮娇喘嗯啊在线观看| 激情综合婷婷丁香五月尤物| 国产又爽又黄无遮挡免费观看| 欧美自慰一级看片免费| 最新日本中文字幕| 日本欧美午夜| 国产性爱网站| 少妇精品久久久一区二区三区| 久久男人资源站| 伦精品一区二区三区视频| 九色91在线视频| 99热最新网址| 91精品视频网站| 国内精品九九久久久精品| 国产精品成人不卡在线观看| 中国黄色一级视频| 99精品久久精品| 天天综合色天天综合网| 免费Aⅴ片在线观看蜜芽Tⅴ| 日韩色图在线观看| 99热这里只有精品2| 日韩精品免费一线在线观看| 中文字幕欧美成人免费| 欧美日韩在线第一页| 欧美区日韩区| 日本午夜三级| jizz国产视频| 欧美a在线看| 欧美视频免费一区二区三区| 无码免费的亚洲视频| 国产日韩精品欧美一区喷| 日韩无码真实干出血视频| 国产精品久久久久久久伊一| 91av成人日本不卡三区| 久久先锋资源| 26uuu国产精品视频| 亚洲日韩高清无码| 國產尤物AV尤物在線觀看| 久久婷婷色综合老司机| 亚洲精品天堂自在久久77| 永久免费无码日韩视频| AV无码无在线观看免费| 五月激激激综合网色播免费| 久久99国产视频| 国产99视频在线| 精品欧美视频| 欧美日韩精品一区二区在线线| 成人福利一区二区视频在线| 中文字幕免费视频| 黄色三级毛片网站| 国产高清精品在线91| 乱码国产乱码精品精在线播放| 精品三级网站| 国产乱子精品一区二区在线观看| 国产精品对白刺激| 四虎影视无码永久免费观看| 天天操天天噜| 亚洲国产日韩欧美在线| 色综合日本| www.91中文字幕| 伊人久久精品亚洲午夜| 婷婷综合在线观看丁香| 亚洲人成网7777777国产| 亚洲午夜福利精品无码不卡| 97国产成人无码精品久久久| 热久久这里是精品6免费观看| 欧美日韩亚洲综合在线观看| 国产亚洲欧美在线专区| 国产手机在线小视频免费观看 | 美女潮喷出白浆在线观看视频| 免费人欧美成又黄又爽的视频| 成人午夜免费观看| 国产av一码二码三码无码| 国产视频一二三区| 色婷婷国产精品视频|