iT邦幫忙

2021 iThome 鐵人賽

DAY 2
1
DevOps

DevOps 萌新的 TeamCity 極速上手寶典系列 第 2

第二天:什麼是 CI/CD?

雖然一講到敏捷開發、DevOps 時就很常聽到 CI/CD 這些詞彙,不過到底什麼是 CI?又什麼是 CD?當我們導入 CI/CD 後,又會有什麼樣的好處呢?就讓我們花一天的篇幅來科普一下。

什麼是持續整合(CI:Continuous Integration)

持續整合(英文原名 Continuous Integration,縮寫 CI,以下內文為求精簡皆會以縮寫呈現)是軟體開發的一種作法,它讓一個軟體專案裡的每一位開發者定期同步彼此對原始碼庫的變更,然後在每次更改後檢查程式碼是否仍能通過編譯與測試。CI 可以說是導入 DevOps 的第一步,也是建構和發佈軟體的重要關鍵,它可以促進協同合作、自動化並縮短回饋週期。

想要實踐 CI 的話,得從定期的將變更提交至版本控制系統(通常是 Git)開始,以便讓參與專案的每一個人都能在相同的條件下建置專案。每一次的提交都會觸發一次建置以及一系列的自動化測試,以驗證程式碼的行為是正確並確保更改沒有破壞任何內容。

什麼是持續部署(CD:Continuous Deployment)

持續部署(英文原名 Continuous Deployment,縮寫 CD,以下內文為求精簡皆會以縮寫呈現)則是將 DevOps 自動化建置、測試和部署步驟的實踐發揮到了極致。如果對程式碼的變更成功通過了流水線(Pipeline)的各階段,則該變更就會被部署到生產環境(Production Environment)中,無需任何人工介入。採用 CD 意味著您可以在維持相同軟體品質的前提下,快速地為使用者提供新功能。

CD 以成熟的、經過良好測試的 CI 為基礎。當一段程式碼變更提交至程式碼庫後,就會在測試環境底下觸發一系列的自動建置、測試等步驟。若是成功通過所有步驟且沒有發現問題,就會將其部署上線。若能建構出強大且可靠的 CD 流程,意味著每天都可以部署非常多次而不用擔心會發生意外。雖然不是每一個軟體專案都適合導入 CD,但我們仍然可以從 CD 的實踐精神中獲益。

導入 CI/CD 有什麼好處?

發佈軟體是一個辛苦且耗時的過程。若其中有很多步驟需要透過手動執行、人為介入的話,中間就會產生出很多的風險。在過去,有些專案為了降低這種人為手動的風險而選擇將提交與整合變更的時間拉長,但這樣的方式反而讓風險更高。導入 CI/CD 作法則是透過自動化工具來附低人為介入的比例,加上整合多種測試工具確保程式碼的品質,因此可以在不影響品質的前提下更頻繁地發佈軟體。若過程中有任何問題,CI/CD 伺服器也會立即發出警報,團隊可以在收到警報通知後再人為介入,大大的節省開發資源。除此之外,導入 CI/CD 還有這些明顯的好處:

  • 更快地將產品送至市場做驗證
  • 降低各種可能的風險
  • 相對較短的審閱時間
  • 更好的程式碼品質
  • 平順的軟體發佈路徑
  • 更快的找到錯誤並修正
  • 更有效率的架構
  • 可度量的進程
  • 更緊密的回饋週期
  • 良好的合作與溝通
  • 最大化創造力

參考資料


上一篇
第一天:為什麼 CI/CD 對軟體開發來說是重要的?
下一篇
第三天:以軟體包安裝 TeamCity
系列文
DevOps 萌新的 TeamCity 極速上手寶典31

尚未有邦友留言

立即登入留言