新 Azure Pipelines 使用者的重要概念
Azure DevOps Services
了解組成 Azure Pipelines 的重要概念和元件。 瞭解管線的基本詞彙和部分,可協助您更有效地建置、測試及部署程序代碼。
重要概念概觀
- 觸發程式會指示管線執行。
- 管線是由一或多個階段所組成。 管線可以部署至一或多個環境。
- 階段是一種在管線中組織作業的方式,而且每個階段可以有一或多個作業。
- 每個 作業 都會在一個 代理程式上執行。 作業也可以是無代理程式。
- 每個 代理程式 都會執行包含一或多個 步驟的作業。
- 步驟可以是工作或腳本,而且是管線最小的建置組塊。
- 工作是預先封裝的腳本,可執行動作,例如叫用 REST API 或發佈組建成品。
- 成品是執行所發行的檔案或套件集合。
Azure Pipelines 詞彙
專員
在組建或部署執行時,系統會開始一或多個工作。 代理程式 (agent) 是安裝了代理軟體 (一次執行一項作業) 的運算基礎結構。 例如,您的作業可在 Microsoft 裝載的 Ubuntu 代理程式上執行。
如需不同類型的代理程式及其使用方式的詳細資訊,請參閱 Azure Pipelines 代理程式。
核准
核准 定義部署執行之前所需的一組驗證。 手動核准是用來控制生產環境部署的常見檢查。 在環境上設定檢查時,管線執行會暫停,直到所有檢查都成功完成為止。
成品
成品是經由執行所發佈的檔案或封裝集合。 成品 (artifact) 可供後續的工作 (例如散發或部署) 使用。 如需詳細資訊,請參閱 Azure Pipelines 中的成品。
持續傳遞
持續傳遞 (CD) 是程式碼建置、測試及部署至一或多個測試和生產階段的程式。 在多個階段中部署及測試有助於提升品質。 持續整合系統會產生可部署的成品,其中包括基礎結構和應用程式。 自動化發行管線會使用這些成品來發行新版本,並修正為現有的系統。 監視和警示系統會持續執行,以推動整個CD程式的可見度。 此程序可確保經常且早期攔截錯誤。
持續整合
持續整合 (CI) 是開發小組用來簡化測試及建置程式碼的做法。 CI 有助於在開發週期早期攔截 Bug 或問題,讓它們更容易且更快速地修正。 自動化的測試和組建會在 CI 程序中執行。 每當推送程式碼 (或兩者) 時,程序都可以在設定排程上執行。 稱為成品的專案是從 CI 系統產生。 持續傳遞發行管線會使用這些管線來驅動自動部署。
部署
傳統管線部署是針對一個階段執行工作的動作。 部署可以包含執行自動化測試、部署組建成品,以及針對該階段指定的任何其他動作。
針對 YAML 管線,部署是指 部署作業。 部署作業 (deployment job) 是一個針對環境循序執行的步驟集合。 您可以使用策略 (例如執行一次、滾動和 Canary) 來執行部署作業。
部署群組
部署群組 (deployment group) 是一組安裝了代理程式的部署目標機器。 部署群組只是另一 組代理程式,例如代理程式集區。 您可以使用部署群組在管線中為作業設定部署目標。 深入瞭解如何布建 部署群組的代理程式。
Environment
環境是您部署應用程式的資源集合。 一個環境可以包含一或多個虛擬機、容器、Web 應用程式或任何服務。 建置完成後,管線會部署到一或多個環境,並執行測試。
工作 (Job)
階段包含一或多個 作業。 每個作業都會在代理程式上執行。 作業代表一組步驟的執行界限。 所有的步驟都會在相同的代理程式上一起執行。 當您想要在不同的環境中執行一系列的步驟時,作業是最有用的。 例如,您可能想要建置兩種組態:x86 和 x64。 在此情況下,您會有一個階段和兩個作業。 其中一個作業會用於 x86,而另一個作業則會用於 x64。
無代理程序作業會在 Azure DevOps 和 Azure DevOps Server 中執行,而不需使用代理程式。 有限的工作數目支援無代理程序作業。
管線
管線會定義應用程式的持續整合及部署程序。 它是由一或多個階段所組成。 它可被視為是一個工作流程,其中定義了如何執行您的測試、組建和部署步驟。
對於傳統管線,管線也可以稱為定義。
版本
針對傳統管線, 發行 是管線中指定的已建立版本化成品集。 此版本包含執行發行管線中所有工作和動作所需之所有資訊的快照集,例如階段、工作、觸發程式和核准者等原則,以及部署選項。 您可以使用部署觸發程式或 REST API 手動建立發行。
針對 YAML 管線,組建和發行階段位於一個 多階段管線中。
執行
執行 (run) 代表管線的一個執行作業。 其會收集與執行步驟和執行測試結果相關聯的記錄。 在執行期間,Azure Pipelines 會先處理管線,然後將執行傳送至一或多個代理程式。 每個代理程式都會執行作業。 深入瞭解 管線執行順序。
對於傳統管線,組建代表管線的一個執行。
指令碼
指令碼會在您的管線中使用命令列、PowerShell 或 Bash 作為一個步驟來執行程式碼。 您可以撰寫 macOS、Linux和 Windows 的跨平台腳本 。 不同於工作,腳本是管線專屬的自定義程序代碼。
階段
階段是管線中的邏輯界限。 它可用來標記關注事項 (例如,組建、QA 和生產) 的分離。 每個階段都包含了一或多個作業。 當您在管線中定義多個階段時,預設情況下,它們會一個接一個地執行。 您可以指定階段執行時的條件。 當您考慮是否需要階段時,請問問自己:
- 個別的小組是否會管理此管線的各個部分? 例如,您可以有一個測試管理員來管理與測試相關的作業,以及有一個不同的管理員來管理與生產部署相關的作業。 在這種情況下,有個別的測試和生產階段是合理的。
- 是否有一組 已連線到特定作業或一組作業的核准 ? 如果是,您可以使用階段來將您的作業分成需要核准的邏輯群組。
- 是否有需要長時間執行的作業? 如果管線中的作業有很長的運行時間,就很合理地將該作業置於自己的階段。
步驟
步驟是管線最小的建置區塊。 例如,一個管線可能包含數個組建和測試步驟。 一個步驟可以是一個指令碼或一個工作。 工作只是預先建立的腳本,提供方便您。 若要檢視可用的工作,請參閱 建置和發行工作 參考。 如需建立自定義工作的資訊,請參閱 建立自定義工作。
Task
工作是定義管線中自動化的建置組塊。 工作是一個已透過一組輸入來進行抽象化的封裝指令碼或程序。
觸發程序
觸發程序是設定為通知管線何時要執行的內容。 您可以將管線設定為在推送到存放庫、在排程時間或在完成另一個組建時執行。 所有這些動作都稱為觸發程序。 如需詳細資訊,請參閱組建觸發程式和發行觸發程式。
程式庫
連結 庫 包含 安全檔案 和 變數群組。 安全檔案 是儲存盤案,並跨管線共用檔案的方式。 例如,您可能想要針對不同的管線參考相同的檔案。 在此情況下,您可以在 Library 中儲存盤案,並在需要時使用它。 變數群組 會儲存您可能想要傳遞至 YAML 管線的值和秘密,或跨多個管線提供。
關於作者
- Dave Jarvis 為重要概念概觀圖形做出了貢獻。