脈衝雲之持續整合(上篇) 持續整合解決了什麼問題

2021-12-30 01:42:08 字數 1962 閱讀 4544

持續整合解決了什麼問題?

1,提高軟體質量。

如何提高軟體質量已經不再是乙個純粹的技術問題,而是乙個工程問題。從計算機誕生以來,相應的軟體開發就存在,同時出現了很多提高產品質量的理論和方法,有的從技術角度出發,例如物件導向技術的產生和推廣,***語言的誕生等,有的從自動化工具入手,例如case工具,過程控制軟體,自動化管理平台等,有的從過程模型角度出發,例如迭代模型,螺旋模型,rup,ipd等。

每一種解決質量問題的方法都不是獨一無二的,軟體質量的提高應該是乙個綜合的因素,需要從每個方面進行改進,同時還需要兼顧成本和進度。

那什麼是質量?我們該如何衡量質量呢?質量具有三個維度:符合目標、符合需求、符合實際需求。目標是客戶定義的,符合目標即判斷我們是不是在做需要做的事情。實際需求包括使用者明確說明的和隱含的需求。符合使用者習慣,這其中包含了我們要引導使用者如何操作或者去適應使用者本身的操作習慣。

2,節約時間,縮短專案發布週期。

快速開發和上市乙個新產品,並快速取得預期的投資回報是每個企業孜孜以求的目標。那麼,如何在保證專案質量的前提下,盡可能的加快專案進度呢?

深入了解顧客需求,減少開發過程中的需求變更與返工。顧客需求是新產品開發的輸入,如果輸入不正確,不完整,就必然導致開發過程中大量的變更,這對開發進度影響極大。

對新產品專案進行開發優先順序排列和合理資源分配,確保重要的專案得到優先開發。在資源有限的情況下,同時開發過多專案的結果是所有專案都會延期。

建立技術平台和共用模組,縮短開發周期。如果企業能通過建立技術平台,使一些技術模組化,使一些模組標準化,在乙個平台產品的基礎上進行更多的同類產品開發,則能大大縮短新專案的開發周期。

採用有效的專案管理方法進行開發專案的管理。有效的專案管理方法是每個開發團隊成員都應該熟練掌握的,掌握了有效的專案管理方法能大大縮短每項任務、每個活動的完成時間,總體的開發周期就能相應縮短。

3,便捷部署

顯而易見,部署包需要包含應用程式的所有元件,不僅僅是你自己的二進位製包,通常這此包由整合構建產生,還應包含靜態內容、配置檔案等。實際上軟體包應包含軟體生命週期中所有的內容,也就是那些需要一起被部署、公升級和取消部署的內容。

確保軟體包是「完備的可部署單元」對於一次可靠的部署來說是到頭重要的。順暢和可靠的部署流程從簡單的第一步開始:以一種自動的、可檢查校驗的方法整合並發布乙個結構化的、完整的部署包,該部署包定義了特定版本的應用程式中所有的元件、配置和依賴關係。這能顯著減少因不合法或缺少定製值、元件或必需的服務而產生的錯誤。

持續整合可以讓你在任何時間發布可以部署的軟體。在外界看來,這是持續整合最明顯的好處,對客戶來說,可以部署的軟體產品是最實際的資產。利用持續整合,你可以經常對源**進行一些小改動,並將這些改動和其他**進行整合。

4,增強專案的可見性。

在傳統專案中,當乙個專案經理或一名開發者說自己已經完成了80%的任務,你必須保持謹慎的態度,因為剩下的20%可能還需要80%的時間,為什麼資料會有這麼大的差別?因為專案中唯一不變的就是變化,我們每個人都需要擁抱變化,而變化讓我們不知道將軟體做到什麼程度才算是做完全了。軟體開發專案,往往在專案進度和軟體質量方面缺少可見性,專案越缺少可見性,就越難控制,越有可能失敗。我們可以通過迭代開發、技術評審、持續整合來增強專案的可見性。

採用迭代的開發模型,將產品的將會過程分為多個階段,按照功能遞增式交付。技術評審是確保軟體質量的重要環節,技術評審包括**走審,會議評審和同行專家評審,也可以充分得用質量審查的工具軟體,這些都有助於提高**質量。持續整合是能夠把最終的一次大規模的整合除錯過程分散到專案開發時間表的每一周、每一天、甚至每個小時,讓專案中的各個人員都能夠隨時掌握當前的整體進度,並迅速發現整合過程**現的問題並進行解決。

5,建立團隊開發產品的信心

持續整合可以建立開發團隊對開發產品的信心,因為分們清楚地知道每一次構建的結果,他們知道他們對軟體的改動造成了哪些影響,影響的結果怎麼樣。

6,解決專案管理的困惑

持續整合在開發者和開發者之間,開發者和測試之間,開發者和配置管理之間,開發者和專案經理產品經理之間開成了一條「無縫焊接」之路。

那麼,脈衝雲是如何實現持續整合的呢,請看下篇。

持續整合之CruiseControl

持續整合用於定時檢測 構建專案。常用的持續整合工具有cruisecontrol,簡稱cc。那麼我們是如何部署專案到持續整合伺服器中的呢?首先我們可以將我們的專案copy到cc根目下的project目錄下,然後通過在cc根目錄下得config.xml檔案中進行專案配置,具體配置主要參照裡面的demo就...

持續整合之「Everything is code」

在前文 軟體自我識別 中,我們討論了如果使軟體做到自我識別,以促進自動化部署和版本檢測等工作。隨著網際網路的飛速發展,以及基礎設施的改進,越來越多的業務被放在了 雲 端。管理數千台伺服器和各種應用程式的不同版本已經是一種常規事務了。那麼如果 管理好這些機器和 嗎?本文將介紹一些最佳實踐,來幫助大家更...

持續整合(一)

一 提出 整合軟體 的過程不是新問題,如果專案開發的規模比較小,比如乙個人的專案,如果它對 外部系統 的依賴很小,那麼軟體整合不是問題,但是隨著軟體專案複雜度的增加 即使增加乙個人 就會對整合和確保 軟體元件 能夠在一起工作提出了更多的要求 要早整合,常整合 早整合,頻繁的整合幫助專案在早期發現專案...