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