整合 DevTest Labs 和 DevOps CI/CD 管線

DevOps是一種軟體開發方法,可將軟體開發 (Dev) 與系統作業 (Ops) 整合。 系統會提供符合商務目標的新軟體功能、更新和修正程式。

DevOps 方法也涵蓋:

  • 根據目標、使用模式和客戶意見反應來設計新功能。
  • 發生問題時修正、復原和強化系統。

DevOps 方法的一個元件是持續整合 (CI) 和持續傳遞 (CD) 管線。 CI/CD 管線會透過一系列的步驟從原始程式碼控制認可移動資訊、程式碼和資源,以產生系統。 步驟包括建置、測試和發行。

您可以在 CI/CD 管線中使用 Azure DevTest Labs。 本文討論在企業環境的 CI/CD 建置和發行管線中使用 DevTest Labs。

DevOps 工作流程中的 DevTest Labs 優點

實驗室應該著重於在功能區域中工作的小組。 這個常見的焦點允許更快速的變更,同時將任何負面影響限制為較小的群組。 實驗室環境中發生變更或問題,而不會影響任何其他項目。

常見的焦點可讓您共用區域特定資源,例如工具、指令碼和 Azure Resource Manager (ARM) 範本。 開發人員可以使用共用資源,透過其所需的所有程式碼、工具和組態來建立虛擬機器 (VM)。 ARM 範本會使用適當的 Azure 資源來建立實驗室 VM 和實驗室環境。 範本會動態建立資源,或使用自訂項目建立基礎映像。

例如,假設產品是安裝在客戶電腦上的獨立系統。 DevTest Labs 可以建立已安裝客戶軟體、成品和組態的實驗室 VM,以進行快速的內部迴圈程式碼測試。

以下是在 DevOps 工作流程中使用實驗室的一些優點:

  • 焦點存取:使用實驗室作為元件,將特定生態系統與有限的人員產生關聯。 通常,在一般區域或特定功能中工作的小組或群組已獲指派實驗室。

  • 雲端中的基礎結構複寫:開發人員可以快速設定開發生態系統,其中包含具有原始程式碼和工具的開發人員 VM。 開發人員也可以建立幾乎與生產組態完全相同的環境,以加快內部迴圈開發的速度。

  • 生產前環境:CI/CD 管線中的實驗室可以同時執行數個不同的生產前環境或電腦,以進行非同步測試。 您可以在實驗室中部署和管理不同的支援基礎結構和組建代理程式。

在 CI/CD 管線中使用實驗室

CI/CD 管線是重要的 DevOps 元件。 管線會將開發人員提取要求的程式碼與現有的程式碼整合,並將程式碼部署至生產生態系統。 針對 DevTest Labs 整合,並非所有資源都必須在實驗室中。 例如,您可以在實驗室外部設定 Jenkins 主機,以取得更持續性的資源。 以下是將實驗室整合到 CI/CD 管線的一些特定範例。

組建

建置管線會建立元件套件,以一起測試並遞交至發行。 動態建置基礎結構可讓您更充分地控制。 實驗室可以是建置管線的一部分,作為組建代理程式和其他支援資源的位置。 DevTest Labs 可以限制實驗室存取,這會增加組建代理程式的安全性,並減少意外損毀的可能性。

在實驗室中擁有多個環境的能力,每個組建都可以非同步方式執行。 組建識別碼是環境資訊的一部分,可唯一識別特定組建中的資源。

測試

CI/CD 管線可以自動化建立 DevTest Labs 資源,例如 VM 和環境,以進行自動化和手動測試。 管線會使用組建資訊成品或公式來建立具有不同自訂測試組態的 VM。

版本

發行程序可以在部署程式碼之前,使用 DevTest Labs 進行驗證。 此程序與測試很類似。 生產資源不應部署在 DevTest Labs 中。

自訂

Azure Pipelines 是 Azure DevOps Services 的元件,具有現有的工作可操作特定實驗室內的 VM 和環境。 Azure Pipelines 是管理 CI/CD 管線的一種方式。 您可以將實驗室整合到任何支援呼叫 REST API、執行 PowerShell 指令碼或使用 Azure CLI 的系統。

某些 CI/CD 管線管理員有現有的開放原始碼外掛程式,可管理 Azure 和 DevTest Labs 資源。 您可能需要使用自訂指令碼,以符合管線的需求。 執行工作時,請使用具有適當角色的服務主體 (通常是「參與者」),來存取實驗室。

下一步