CI:
持續集成(CONTINUOUS INTEGRATION)
在持續集成環境中,開發人員將會頻繁的提交代碼到主幹。這些新提交在最終合併到主線以前,都須要經過編譯和自動化測試流進行驗證。這樣作是基於以前持續集成過程當中很重視自動化測試驗證結果,以保障全部的提交在合併主線以後的質量問題,對可能出現的一些問題進行預警。安全
持續集成(CI)是一種軟件開發實踐,開發人員常常在其中進行代碼更改並將其添加到中央存儲庫中,而後再運行自動化測試。CI是軟件發佈過程的集成階段,它取決於自動化和持續集成。主要目標是發現錯誤並迅速解決問題,以提升軟件質量並縮短產品上市時間。服務器
在持續集成中,開發人員一天要專一於較小的提交。開發人員將代碼從存儲庫中拉出,而後再將其推送到構建服務器,構建服務器將在其中運行各類測試以驗證代碼提交。session
CD:(1)
持續交付(CONTINUOUS DELIVERY)
持續交付就是講咱們的應用發佈出去的過程。這個過程能夠確保咱們儘量快的實現交付。這就意味着除了自動化測試,咱們還須要有自動化的發佈流,以及經過一個按鍵就能夠隨時隨地實現應用的部署上線。
經過持續交付,您能夠決定天天,每週,每兩週發佈一次,這徹底能夠根據本身的業務進行設置。
可是,若是您真的但願體驗持續交付的優點,就須要先進行小批量發佈,儘快部署到生產線,以便在出現問題時方便進行故障排除。
持續交付是一種軟件開發實踐,可確保更快,更穩定地發佈代碼更改。這樣,更改將自動生成,測試併爲生產發佈作好準備。構建階段完成後,將代碼更改部署到測試環境或生產環境。當實現連續交付時,開發人員始終具備已經過標準測試過程的可部署的構建工件。在連續開發中,代碼會自動對生產環境進行修訂,從而能夠在開發週期的早期提供連續的反饋循環。架構
CD:(2)
持續部署(CONTINUOUS DEPLOYMENT)
若是咱們想更加深刻一步的話,就是持續部署了。經過這個方式,任何修改經過了全部已有的工做流就會直接和客戶見面。沒有人爲干預(沒有一鍵部署按鈕),只有當一個修改在工做流中構建失敗才能阻止它部署到產品線。
持續部署是一個很優秀的方式,能夠加速與客戶的反饋循環,可是會給團隊帶來壓力,由於再也不有「發佈日」了。開發人員能夠專一於構建軟件,他們看到他們的修改在他們完成工做後幾分鐘就上線了。基本上,當開發人員在主分支中合併一個提交時,這個分支將被構建、測試,若是一切順利,則部署到生產環境中。
連續部署有點相似於連續交付,但又朝着過程自動化邁進了一步。貫穿全部生產階段的變動將直接發佈給客戶,而無需任何人工干預。持續部署會加速反饋循環,由於只有失敗的測試才能阻止更改部署到生產中。ide
CI/CD的好處
一、提升開發人員生產力
CI / CD實踐使開發人員從手動任務中解脫出來,處理複雜的依賴項,並將精力集中在提供新功能上,從而提升了團隊的生產力。開發人員能夠將精力集中在提供所需功能的編碼邏輯上,而沒必要將其代碼與業務的其餘部分集成並花費時間在如何將此代碼部署到平臺上。 測試
二、自動化軟件發佈流程
連續交付爲您的團隊提供了一種方法,用於檢入已自動構建,測試併爲發佈到生產環境而準備的代碼,從而使軟件交付高效,有彈性,快速且安全。 ui
三、提升代碼質量
CD能夠幫助您在交付過程當中儘早發現並解決錯誤,而後再將它們變成更大的問題。您的團隊能夠輕鬆執行其餘類型的代碼測試,由於整個過程已經自動化。經過更頻繁地進行更多測試的原則,團隊能夠更快地迭代,並當即得到有關變動影響的反饋。這使團隊可以以高度的穩定性和安全性來驅動質量代碼。開發人員將經過即時反饋瞭解新代碼是否有效以及是否引入了任何重大更改或錯誤。在開發過程當中儘早發現的錯誤最容易解決。 編碼
四、更快地提供更新
CD可幫助您的團隊快速,頻繁地向客戶提供更新。當實施CI / CD時,整個團隊的速度,包括髮布功能和錯誤修復的速度都會提升。企業能夠更快地響應市場變化,安全挑戰,客戶需求和成本壓力。例如,若是須要新的安全功能,您的團隊能夠實施CI / CD並進行自動測試,以高度自信地將修復程序快速可靠地引入生產系統。過去須要花費數週甚至數月的時間,如今能夠在幾天甚至幾小時內完成。.net
持續集成和持續交付是組織的應用程序開發團隊的理想解決方案。開發人員只須要將代碼推送到存儲庫便可。該代碼將被集成,測試,部署,再次測試,與基礎架構合併,通過安全和質量審查,並準備以極高的信心進行部署。一個CI / CD管道有助於提升代碼質量和軟件更新快速傳遞。
參考連接:http://www.javashuo.com/article/p-hjaxkkrj-cd.html
DevOps持續集成code