組織持續部署的 3 個熱門工具(Continously Deployment)

組織持續部署的 3 個熱門工具(Continously Deployment)

持續部署是軟體開發中的一種特殊方法,用於快速、安全、高效地實現軟體中的各種功能。

主要想法是創建一個可靠的自動化流程,使開發人員能夠快速將成品交付給使用者。 同時,生產也不斷改變──這就是所謂的持續交付管道(CD Pipeline)。

技能箱推薦: 實踐課程 “移動開發者專業版”.

提醒: 對於“Habr”的所有讀者 - 使用“Habr”促銷代碼註冊任何 Skillbox 課程可享受 10 盧布的折扣。

組織持續部署的 3 個熱門工具(Continously Deployment)

為了控制流量,您可以使用多種工具,包括付費工具和完全免費的工具。 本文介紹了開發人員中最受歡迎的三種解決方案,對每個程式設計師都有用。

詹金斯

完全獨立的開源自動化伺服器。 它值得用來自動化與建置、測試、運輸或部署軟體相關的各種任務。

最低PC要求:

  • 256 MB RAM,1 GB 檔案空間。

最佳的:

  • 1 GB 內存,50 GB 硬碟。

要工作,您還需要其他軟體 - Java 執行環境 (JRE) 版本 8。

架構(分散式運算)如下圖所示:
組織持續部署的 3 個熱門工具(Continously Deployment)

Jenkins Server 是一個負責 GUI 託管以及組織和執行整個建置的安裝。

Jenkins 節點/從屬/建置伺服器 - 可以設定為代表主節點(主節點)執行建置工作的裝置。

Linux 安裝

首先需要將 Jenkins 儲存庫新增至系統:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable 二進位/' | sudo tee -a /etc/apt/sources.list.d/je

更新包存儲庫:

sudo apt update

安裝詹金斯:

sudo apt安裝詹金斯

此後,Jenkins 將透過預設連接埠 8080 在系統中可用。

要檢查功能,您需要在瀏覽器中開啟該位址 本地:8080。 然後系統會提示您輸入root使用者的初始密碼。 此密碼位於檔案 /var/lib/jenkins/secrets/initialAdminPassword 中。

現在一切準備就緒,您可以開始建立 CI/CD 流程。 工作台的圖形介面如下所示:

組織持續部署的 3 個熱門工具(Continously Deployment)

組織持續部署的 3 個熱門工具(Continously Deployment)

詹金斯的優勢:

  • 主/從架構提供的可擴展性;
  • REST XML/JSON API 的可用性;
  • 透過插件能夠連接大量擴充功能;
  • 活躍且不斷發展的社區。

缺點:

  • 沒有分析塊;
  • 使用者介面不是很友善。

團隊城市

JetBrains 的商業開發。 這台伺服器很好,設定簡單,介面出色。 預設配置具有大量功能,並且可用插件的數量不斷增加。

需要 Java 執行時期環境 (JRE) 版本 8。

伺服器硬體需求並不重要:

  • 記憶體 - 3,2 GB;
  • 處理器 - 雙核心,3,2 GHz;
  • 容量為 1 Gb/s 的通訊頻道。

伺服器可以讓您實現高效能:

  • 60 個項目,300 種建置配置;
  • 2 MB 分配給建置日誌;
  • 50 個建置代理程式;
  • 能夠在 Web 版本中與 50 個使用者一起工作,在 IDE 中與 30 個使用者一起工作;
  • 100 個外部 VCS 連接,通常是 Perforce 和 Subversion。 平均變化時間為120秒;
  • 每天超過150次修改;
  • 在一台伺服器上使用資料庫;
  • JVM伺服器進程設定:-Xmx1100m -XX:MaxPermSize=120m。

代理要求基於正在運行的程序集。 伺服器的主要任務是監視所有連接的代理,並根據相容性要求將排隊的程序集分發給這些代理,並報告結果。 代理程式有多種平台和作業系統,以及預先配置的環境。

有關建構結果的所有資訊都儲存在資料庫中。 主要是歷史記錄和其他類似資料、VCS 變更、代理程式、建置佇列、使用者帳戶和權限。 該資料庫不僅僅包括建置日誌和工件。

組織持續部署的 3 個熱門工具(Continously Deployment)

Linux 安裝

若要使用 Tomcat servlet 容器手動安裝 TeamCity,您應該使用 TeamCity 檔案:TeamCity .tar.gz。 下載 你可以從這裡得到它.

tar -xfz TeamCity.tar.gz

/bin/runAll。 sh [開始|停止]

首次啟動時,您需要選擇儲存組裝資料的資料庫類型。

組織持續部署的 3 個熱門工具(Continously Deployment)

預設配置運行於 本地:8111/ 在同一台 PC 上執行一個已註冊的建置代理程式。

TeamCity 的優勢:

  • 設置簡單;
  • 用戶友好的界面;
  • 大量內建功能;
  • 支援服務;
  • 有一個 RESTful API;
  • 良好的文件;
  • 安全性好。

缺點:

  • 有限的整合;
  • 這是一個付費工具;
  • 一個小社區(但是,它正在成長)。

光碟

一個開源項目,需要 Java 運行時環境 (JRE) 版本 8 才能安裝和運行。

系統要求:

  • RAM - 最低 1 GB,越大越好;
  • 處理器-雙核心,核心頻率2GHz;
  • 硬碟 - 至少 1 GB 可用空間。

代理人:

  • RAM - 至少 128 MB,越大越好;
  • 處理器 - 至少 2 GHz。

伺服器保證代理的運行,並提供使用者方便的介面:

組織持續部署的 3 個熱門工具(Continously Deployment)

階段/工作/任務:

組織持續部署的 3 個熱門工具(Continously Deployment)

Linux 安裝

迴聲“ deb 下載.gocd.org /”| sudo tee /etc/apt/sources.list.d/gocd.list

捲曲 download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key 添加 -
新增 apt-儲存庫 ppa:openjdk-r/ppa

APT-get的更新

apt-get install -y openjdk-8-jre

apt-get 安裝 go-server

apt-get 安裝 go-agent

/etc/init.d/go-server [啟動|停止|狀態|重新啟動]

/etc/init.d/go-agent [啟動|停止|狀態|重新啟動]

預設情況下,GoCd 運行於 本地:8153。

GoCd的優勢:

  • 開源;
  • 易於安裝和配置;
  • 良好的文件;

  • 出色的使用者介面:

組織持續部署的 3 個熱門工具(Continously Deployment)

  • 能夠在一個檢視中顯示逐步的 GoCD 部署路徑:

組織持續部署的 3 個熱門工具(Continously Deployment)

  • 優秀的管道結構展示:

組織持續部署的 3 個熱門工具(Continously Deployment)

  • GoCD 優化了最受歡迎的雲端環境(包括 Docker、AWS)中的 CD 工作流程;
  • 該工具可以糾正管道中的問題,即時追蹤從提交到部署的每個變更。

缺點:

  • 至少需要一名代理人;
  • 沒有控制台顯示所有已完成的任務;
  • 執行每條命令,需要為管道配置建立一個任務;
  • 要安裝插件,您需要將 .jar 檔案移到/plugins/external 並重新啟動伺服器;
  • 相對較小的社區。

作為結論

這只是三個工具,實際上還有更多。 選擇起來很困難,因此您肯定需要注意其他方面。

該工具的開源程式碼使人們可以了解它是什麼,並且可以更快地添加新功能。 但如果有些事情不起作用,那麼你就只能依靠自己和社群的幫助。 付費工具提供的支援有時可能是至關重要的。

如果安全性是您的首要任務,那麼值得使用本地工具。 如果沒有,那麼選擇 SaaS 解決方案是一個不錯的選擇。

最後,為了確保真正有效的持續部署流程,您需要建立標準,其具體細節將允許您縮小可用工具的範圍。

技能箱推薦:

來源: www.habr.com

添加評論