導航:首頁 > 源碼編譯 > 持續集成加速編譯

持續集成加速編譯

發布時間:2022-12-19 00:20:08

① 什麼是持續集成

持續集成(Continuous Integration,簡稱CI)是一種軟體開發實踐,即團隊開發成員經常集成他們的工作, 通常每個成員每天至少集成一次,也就意味著每天可能會發生多次集成。
在軟體測試的工作中也經常會用到持續集成的技術來做介面測試、UI自動化測試等等。
黑馬程序員的軟體測試課程里詳細的講解了持續集成的相關技術。
基礎知識點,黑馬程序員官網都有免費視頻可以學,還歸納總結過。

② 淺談持續集成在軟體項目管理中的作用

淺談持續集成在軟體項目管理中的作用

【摘要】:持續集成是極限編程12個基本原則之一,正在被越來越多的團隊所採用。軟體項目管理涉及到九大知識領域,貫穿於軟體過程的始終,目的是為了讓軟體項目的整個軟體生命周期(從分析、設計、編碼到測試、維護全過程)都能在管理者的控制之下,以預定成本按期,按質的完成軟體交付用戶使用。持續集成這種軟體開發實踐,對於軟體項目管理的各個領域的管理有著積極的作用。

【關鍵詞】:持續集成軟體項目管理統一的代碼庫構建

一、引言

軟體項目經理不但要用管理知識管理整個項目.還要為他們的團隊選擇更好的技術實踐在軟體開發的眾多技術實踐中持續集成已經被越來越多的團隊所採用持續集成對於軟體項目管理的各個領域的管理有著積極的作用,持續集成的使用會給開發尉隊的管理帶來很多的好處.做為管理者的項目經理以及團隊成員都可以從中受益。

二、持續集成與軟體項目管理

1、什麼是持續集成

“持續集成”起源於極限編程開發.是它的12個基本原則之一”持續集成”是一種軟體開發實踐.它要求開發小組的每個成員頻繁的集成他們的工作成果.這個頻度通常是至少每天一次有時甚至每天多次開發團隊的成員頻繁的整合他們之問的工作.這種整合不是簡單的組裝軟體每次的集成通過一個包含測試的構建去盡快的探測潛在的錯誤.保證軟體現有的功能不被破壞,自動分析現有代碼的狀態f有無重復邏輯.代碼的復雜度等)並發布相關的報告。通過快速反饋,開發人員可以了解軟體集成的情況.對不成功的集成進行快速的修改.從而提高軟體開發的效率和質量

2、什麼是軟體項目管理

軟體項目管理是為了使軟體項目能夠按照預定的成本、進度、質量順利完成,而對人員(People)、產品(ProdU(2t)、過程(Protess)和項目fProject)進行分析和管理的活動。

為使軟體項目開發獲得成功.關鍵問題是必須對軟體項目的工作范圍、可能風險、需要資源(人、硬體/軟體)、要實現的.任務、經歷的里程碑、花費工作量(成本)、進度安排等做到心中有數.掌握整個軟體的開發進程。

三、持續集成對軟體項目管理的作用

l、對項目目標管理的作用

軟體項目的目標是開發出可運行的、客戶滿意的軟體系統持續集成有統一的代碼庫。要求開發人員定期地、不斷地向代碼庫提交代碼。新近提交的代碼會經過編譯與測試.與代碼庫中舊有的代碼相整合,形成安全穩定運行的代碼庫.既軟體系統。這樣。能夠在最快、最短的時問內形成結果代碼.逐步實現項目目標。這樣的代碼提交形式對軟體項目的目標管理有利.項目經理能夠最快速度地得到項目的最新代碼庫.並且新提交代碼的問題也會及早地暴露出來,在最短的時間內得到解決。持續集成已經被證明對於小到中型規模的項目目標的實現是有價值的,對於大的項目,仍然是有用的。

2、對項目時間管理的作用

生產力的發展過程是不斷採用物化勞動取代人自身的勞動的過程,是不斷自動化的過程。開發的構建過程中如果大量的採取手動過程不僅降低了團隊的生產率.更嚴重的是它將許多不確定的因素引入到產品的構建過程.這使得發現以及解決問題變得異常困難。這樣會更加地降低了團隊的開發效率。持續集成的構建都是使用構建工具自動化地進行的通過使用持續集成工具將構建過程自動化.便於分析並找出問題。大大提高了團隊的開發效率。

穩定而高效的開發效率保證了開發團隊在一個輕松愉快的環境中工作.同時團隊成員可以有更多的時問和精力學習新技術並將其應用在軟體開發中.自動化測試.集成將開發人員從簡單、繁瑣的低級腦力勞動中解放出來,從而進行更高層次的思考持續集成的自動構建過程,極大的提高了軟體的開發效率,對項目經理的項目時間管理有利。

3、對項目質量管理的作用

持續集成過程要求編程人員事先編寫好很多的測試用例.在代碼的提交過程中就對代碼進行測試.這樣的及早測試能夠最快速地發現軟體代碼中的錯誤和缺陷.及時修改,從而提高軟體的質量。

持續集成的測試包括:單元測試、功能測試、集成測試,進行部署等等持續集成要求有一個全面的單元測試驗證集.使持續集成能夠獲得短集成周期。在一般的項目中,編寫測試代碼都至少會額外增加30%的工作量初看.在時間和資金上這也許是很大的開銷,然而,在持續集成過程中,編寫測試代碼是必要的,而且這樣也省去了人工測試的時間.確保了軟體產品的質量.對軟體項目的質量管理有利。

4、對項目風險管理的作用

持續集成過程通常在開發人員提交代碼後開始.伺服器自動更新代碼.編譯,運行單元測試、功能測試、集成測試,進行部署這個持續集成的過程可以幫助開發人員快速發現並解決問題(編譯失敗,測試失敗等)。與開發人員的機器相比,持續集成伺服器運行在相對穩定、干凈的環境中f減小跟蹤調試的難度),持續集成過程的失敗通常意味著最近一次更新破壞了軟體現有功能或引入了新的缺陷。在持續集成過程結束後.除了構建結果(War,Jar等),通常會生成代碼分析報告(測試覆蓋率等),幫助項目管理人員更好的了解並改善項目。

這種快速反饋集成結果.並進行快速修改的工作方式.在第一時間消除了代碼中的Bug.極大地減小了系統發生錯誤、不能在用戶環境中運行、系統集成時涌現大量問題的風險。這樣使整個的項目進度完全掌握在項目經理手中.減少了項目的風險.有利於項目經理的風險管理。

5、對項目人力資源管理的作用

軟體開發過程最終表現為人與人之間各種形式的合作。安全感與信心是合作最基礎也是最重要的部分通過使用持續集成工具.開發人員可以了解到新的代碼是否引人了缺陷。管理人員可以通過使用各種形式的報告對項目進行評估。不斷發布的構建結果.使測試人員得以自始至終的參與到整個開發過程中。而不是在軟體開發的最後階段才加入團隊

持續集成所做的一切加強了團隊成員的溝通.項目中的所有人都知道系統現在的狀態.目前已經做了那些變動。溝通中最重要的一件事是主線的構建狀態。使用持續集成伺服器。這上面有個構建.它會告訴你構建的狀態和上次主線構建的狀態。將構建的結果反饋的形式很多.比如構建成功則綠燈亮.失敗就出現紅燈。還可以使用網站發布構建結果.這樣那些不在一起工作的人也能看到目前項目的狀態這樣的工作方式使團隊成員及時了解項目情況。得到及時、准確的溝通,可以增強團隊成員的安全感和信心,使團隊在一個好的氛圍中工作。這樣利於項目經理管理項目團隊中的成員。

③ 如何理解持續集成、持續交付、持續部署

我們經常聽到持續集成,持續交付,持續部署,它們是什麼,聯系和區別是什麼?讓我告訴你我的想法。


是什麼

集成指軟體作為軟體的一部分的部分交付,以盡早發現個體開發部分的問題;

部署是能夠盡早交付到運行的開發/測試部分的代碼,以便盡早進行測試;

交付是指研究和開發盡快交付給客戶,以便盡早發現生產環境中的問題。


我個人認為持續的集成,持續的交付,持續的部署是值得傳播的。在開發過程中,對集成的最大恐懼導致返工,而持續集成、持續交付和持續部署可以及早發現並及早解決,從而避免了這個問題。


④ 什麼是持續集成及相關工具

目前市場上主流的持續集成工具很多
例如 CruiseControL,hudson ,jenkins,還有apache的Continuum 等 開源的持續集成工具,
CruiseControl :簡稱 CC ,持續集成工具,主要提供了基於版本管理工具 ( 如 CVS、VSS、SVN) 感知變化或每天定時的持續集成,並提供持續集成報告、 Email 、 Jabber 等等方式通知相關負責人,其要求是需要進行日構建的項目已編寫好全自動的項目編譯腳本 ( 可基於 Maven 或 Ant) 。由於該工具配置以及部署很麻煩 且版本很久沒有更新
hudson 但是由於被oracle收購 很多以前開源的東西 以後很可能被ORACLE私有化
Hudson是Jenkins的前身,是基於Java開發的一種持續集成工具,用於監控程序重復的工作,包括:
1、持續的軟體版本發布/測試項目。
2、監控外部調用執行的工作。

⑤ 如何做到持續集成

        首先需要理解持續集成是什麼樣子的一個概念。我曾經體會過如下圖的應用開發測試部署流程,基本每天都在做同樣的幾件事情:

1、打包,等待maven編譯打包

2、發布測試環境,手動重啟服務

3、通知測試組測試(郵件、用嘴巴喊等等方式...) 

4、一頓grep查Exception,修復BUG,然後重復1、2、3、4

5、到達特殊的日子時,配合運維部署團隊到測試環境手動最新版WAR包到生產環境,23點的一瞬間執行一個腳本,時刻盯住腳本運行結果,最後驗證 

我們可以發現很多問題:

▫️ 編譯打包的過程浪費開發資源,一次測試部署正常10到20分鍾,那出現問題的情況... 

▫️ 測試長時間怠工,資源利用不充分,處於一人幹活多人旁觀低績效狀態 

▫️ 研發與測試的溝通方式高成本低效率 

▫️ BUG反饋方式低效                                                                                          

▫️ 生產環境得不到有效的管控以及安全保障,人工浪費

如果產品或者銷售想要給客戶演示測試環境,得到的結果可能是測試暫時不可用或者稍微等15到20分鍾,是否能計算出他們的心理陰影面積?

DevOps的中心思想在於提高產品各個階段的產出效率減少或者避開團隊間的溝通障礙,推動產品的快速迭代,「快速失敗」,從而實現持續交付、持續部署。而持續集成只是DevOps中的一個環節,下圖清晰描述了CI各個周期活動。

我們可以發現較多優點:                                                                                                

1、流程全自動化,減少重復性的手工操作                                                                      

2、持續發布測試,時刻保持可發布的產品                                                                      

3、團隊、高層對項目、產品的進展清晰可見,把控風險                                           

4、資源效率有效利用,流動效率更快

因此,我們要做到持續集成,我們需要:                                                                       

1、一套持續集成工具,大體可分為雲集成與本地化集成系統,雲集成比如Travis CI、cloudbees的雲集成等,本地化集成主要是開源Jenkins的搭建,如果需要大規模部署Jenkins且有預算可使用Jenkins商業版                                                                        

2、自動化測試工具、良好的測試用例編寫                                                                      

3、版本控制系統,git、gerrit推薦                                                                                 

4、構建、測試失敗反饋機制,郵件、自動化運維(AI...)、日誌收集分析系統                

5、一套需求、產品、開發、測試、部署、運維共同使用的敏捷研發管理系統,市場上有阿里雲效、騰訊的TAPD等                                                                                            

6、...

閱讀全文

與持續集成加速編譯相關的資料

熱點內容
量子加密銀行 瀏覽:193
命令方塊獲得指令手機 瀏覽:499
學習結束感言簡短程序員 瀏覽:398
android關機鬧鍾實現 瀏覽:968
滑鼠一鍵打開文件夾設置 瀏覽:161
程序員看過來我想靜靜搞笑視頻 瀏覽:370
curlphp爬蟲 瀏覽:874
python按日期循環 瀏覽:110
php三個等號 瀏覽:760
培訓班出來的程序員解決問題很差 瀏覽:963
程序員那麼可愛25集 瀏覽:753
伺服器地址和ip地址一樣不 瀏覽:664
php中括弧定義數組 瀏覽:602
php列印堆棧 瀏覽:516
華為adb命令行刷機 瀏覽:965
人像攝影pdf 瀏覽:761
解壓文件密碼怎樣重新設置手機 瀏覽:1002
高考指南pdf 瀏覽:695
爬蟲python數據存儲 瀏覽:240
u盤怎麼取消加密 瀏覽:431