幫助:什麼是持續交付

早些時候我們 告訴 關於持續整合(CI)。 讓我們繼續持續交付。 這是一套軟體開發方法。 它有助於確保您的程式碼已準備好部署。

幫助:什麼是持續交付
/Pixabay/ 藍鸚鵡 / PL

故事

持續交付一詞可以追溯到 敏捷宣言 從 2001 年開始就列出了基本原則:“首要任務是透過持續交付最新軟體來解決客戶問題。”

2010 年,Jez Humble 和 David Farley 發行 這本書 透過持續交付。 據作者稱,CD 補充了該方法 持續集成 並允許您簡化部署程式碼的準備工作。

該書出版後,這種方法開始流行,並在短短幾年內幾乎被普遍接受。 根據 民意調查600 年對 2014 多名開發人員和 IT 經理進行的調查顯示,97% 的技術經理和 84% 的程式設計師熟悉持續交付。

現在這種方法仍然是最受歡迎的方法之一。 根據 2018 年 IT 社群 DevOps 和 Jenkins 社群參與的研究, 用途 超過一千名受訪者中的一半。

持續交付如何運作?

CD 基礎是程式碼部署的準備。 為了完成此任務,使用了準備軟體發布流程的自動化。 它應該是跨不同開發環境的標準,這將有助於快速找到弱點並進行最佳化。 例如,加快測試速度。

持續交付流程的範例如下所示:

幫助:什麼是持續交付

如果持續整合方法負責前兩個階段的自動化,那麼持續交付則負責後兩個階段。 除此之外,透過系統確保製程穩定性 配置管理。 他們監視基礎設施、資料庫和依賴項的變更。 部署本身可以自動化或手動完成。

對該過程提出以下要求:

  • 有關準備進入生產環境和準備立即發布的信息的可用性(CD 工具測試代碼並可以評估發布中更改的效果)。
  • 對最終產品全面負責。 產品團隊 - 經理、開發人員、測試人員 - 考慮結果,而不僅僅是他們的職責範圍(結果是可供產品使用者使用的工作版本)。

在 CD 中通常使用 代碼審查,以及收集客戶意見-原則 黑暗發射。 一項新功能首先向一小部分用戶發布——他們與產品互動的體驗有助於發現內部測試期間沒有註意到的缺點和錯誤。

有什麼好處

持續交付有助於簡化程式碼部署,這對生產力產生積極影響並降低員工倦怠的可能性。 最終,這降低了整體開發成本。 例如,CD 幫助了 HP 團隊之一 減少 此類成本降低了40%。

此外,根據 2016 年的一項研究(第 28 頁) 該文件) - 實施 CD 的公司解決資訊安全問題的速度比未使用該方法的公司快 50%。 在某種程度上,這種差異可以透過流程自動化工具的表現來解釋。

另一個優點是發布速度加快。 芬蘭開發工作室的持續交付 幫助了 程式碼彙編速度提高 25%。

潛在的困難

第一個也是主要的問題是需要重建熟悉的流程。 為了展示新方法的好處,值得逐漸切換到 CD,而不是從勞動密集型應用程式開始。

第二個潛在問題是大量的程式碼分支。 「分支」的後果是衝突頻繁,進一步浪費大量時間。 可能的解決方案 - 方法 沒有分公司.

特別是,在一些公司中,主要的困難是測試 - 需要太多的時間。 測試結果通常必須手動分析,但可能的解決方案可能是在 CD 實施的早期階段並行化測試。

您還應該培訓員工使用新工具 - 初步教育計畫將節省開發人員的精力和時間。

幫助:什麼是持續交付
/flickr/ 格1969 / CC BY-SA

工具

以下是一些持續交付的開放工具:

  • 光碟 — 用於 Java 和 JRuby on Rails 持續交付的伺服器。 允許您控制整個應用程式交付過程:建置-測試-發布。 該工具根據 Apache 2.0 許可證分發。 你可以在官方網站上找到它 設定指南.
  • Capistrano的 — 用於建立腳本的框架,可自動部署 Ruby、Java 或 PHP 中的應用程式。 Capistrano 能夠透過 SSH 連接到遠端電腦來執行命令。 與其他持續整合和交付工具配合使用,例如 Integrity CI 伺服器。
  • 搖籃 是一個多平台工具,可以自動化整個應用程式開發週期。 Gradle 可與 Java、Python、C/C++、Scala 等配合使用。與 Eclipse、IntelliJ 和 Jenkins 整合。
  • 無人機 - Go語言的CD平台。 無人機可以部署在本地或雲端。 該工具建構在容器之上,並使用 YAML 檔案來管理它們。
  • 三角帆 — 多雲系統中持續代碼交付的平台。 該工具由 Netflix 開發,Google工程師在該工具的開發過程中發揮了重要作用。 安裝說明 在官方網站上找到它.

在我們的企業部落格上閱讀什麼:

來源: www.habr.com

添加評論