什麼是 Azure Pipelines?
Microsoft Azure Pipelines 是雲端服務,可讓您用於自動建置、測試及部署您的程式碼專案。 您也可以將其提供給其他使用者使用,而且其幾乎適用於任何語言或專案類型。
Mara 對於複寫 Azure Pipelines 上小組的建置程序感到興奮。 測試人員 Amita 終於有空,並希望趕上進度。 Mara 認為現在是告訴她計劃的好時機:使用 Azure Pipelines 為 Space Game 網站設定自動化建置管線。
聽到 Mara 的計畫時,Amita 有點猶豫,但由於 Mara 的計畫是要複寫而非取代建置程序,因此她也感到很好奇。 她知道建置程序可以做出一些改良。
Amita:這個計劃聽起來很有趣,但您必須要證明 DevOps 的一個要點!
Mara:您真懂我!
Amita:您預期會看到哪些增強功能,特別是因為您要做的是我們已經在做的事?
Mara:我認為只要移至 Azure Pipelines 即會帶來許多好處。 記住,Azure Pipelines 是一項雲端服務。 我們可以用來自動建置及測試程式碼。 也可以提供給其他人員使用。 也適用於任何語言或專案類型。
我們的組建伺服器有問題,甚至難以保持最新狀態。 由於 Azure Pipelines 的組建伺服器由 Microsoft 裝載及維護,所以一律會有最新的修補程式和安全性更新。 我們不必擔心要維護組建伺服器。
此外,我們有各種由不同人員編寫的指令碼。 我們甚至不了解其中某些指令碼的運作方式。 Azure Pipelines 隨附工作目錄。 「工作」是透過一組輸入來抽象化的封裝指令碼或程序。 我將嘗試把組建指令碼所做的工作對應到這些工作。 至少我們可以將進行工作的方式標準化,並提升自動化程度。
而且,Azure Pipelines 適用於多種不同的語言和應用程式類型。 如果我們朝著這些方向拓展,就不必從頭學習了。
Amita:我知道這麼說有點自私,但我為什麼要在意這個? 其中一件困擾我的事,就是我永遠不知道何時可以開始測試組建。 雖然偶爾有人會記得更新試算表,但他們大多時候會忘記更新。 我似乎是最後一個知道的人。
Mara:沒錯,這個問題我們可以輕鬆解決。 我們可以設定管線,在組建準備就緒時,透過電子郵件或其他通知來自動通知。 您就不需要再等待別人通知您了。
Amita:好的,所以您現在的目標是建置應用程式,並在準備就緒的時候讓我知道,對嗎?
Mara:沒錯! 當然,我還有更大的計劃。 我知道你們一定都會喜歡第一個步驟,所以我要用來建立真正的持續整合。
Amita:請給我五分鐘來概述持續整合。
Mara:讓我畫張圖說明吧。
Mara 走到白板前,並畫了管線。
Mara:這是我的 CI 管線。 CI 是每當有小組成員將變更認可到版本控制時,將程式碼建置和測試自動化的程序。 我知道我們還沒有進行自動化測試,但以後會有機會的。
「管線」定義應用程式的持續整合程序。 由稱為「工作」的步驟所組成。 您可以將「工作」視為一個指令碼,會定義建置、測試及部署步驟的執行方式。 我要來試試看將我們的指令碼對應至工作。
您提交程式碼變更時,管線就會執行 。 我們可以將管線設定為自動執行,或您可手動執行管線。 將管線連線至來源存放庫,例如 GitHub、Bitbucket 或 Subversion。 我們的短期衝刺工作之一,就是開始使用 GitHub,因此這個專案將使用 GitHub。
「組建代理程式」 會組建或部署程式碼。 在組建或部署執行時,系統會開始一或多個工作。 代理程式是一次執行一個組建或部署工作的可安裝軟體。 因為我們使用 Azure Pipelines,所以我們可以使用 Microsoft 託管的代理程式。 使用 Microsoft 託管的代理程式,即無需自己維護及升級。 每次執行管線時,都會獲得新的虛擬機器。 有幾個虛擬機器映像可供選擇,包括 Ubuntu 22.04,我們就使用這一個。
管線的最終成果是「組建成品」。 可以將成品視為我們需要用來測試或部署應用程式的最小編譯單位。 例如,成品可以是:
- 封裝為 .jar 或 .zip 檔案的 Java 或 .NET 應用程式。
- C++ 或 JavaScript 程式庫。
- 虛擬機器、雲端或 Docker 映像。
就這麼簡單。 我知道我們能做到。
Amita:這聽起來很棒。 讓我們看看你需要做什麼才能使其運作,以及需要多長時間。 你可以提供示範給我們。
Mara:會的!
管理組建代理程式
現在您和小組已熟悉 Azure Pipelines,讓我們進一步討論組建代理程式。 組建代理程式是一種可安裝的軟體,可一次執行一個組建或部署工作。 若要建立您的程式碼或部署您的軟體,您需要至少一個代理程式。 當您新增更多程式碼和人員時,最終將需要一個以上的代理程式。 代理程式有兩個主要的類別。
Microsoft 裝載的代理程式是由 Microsoft 管理的代理程式,且會為您處理維護與升級。 每次執行管線時,您都會為管線中的每個作業取得新的代理程式。 在本課程模組中,當您選擇 [使用 Microsoft 裝載代理程式的本機開發環境] 時,您會在 Microsoft 裝載的代理程式上執行管線。 若要在 Microsoft 裝載的代理程式上執行管線,您的組織必須至少有一個 Microsoft 裝載的平行作業。 檢查 Microsoft 裝載的平行作業計數,以確保您至少有一個 Microsoft 裝載的平行作業。 如果您的 Microsoft 裝載平行作業計數為零 (新的 Azure DevOps 組織通常會有零個平行作業),則您可以要求免費授與。 免費授與的核准程序通常需要兩到三個工作天。
自我裝載式代理程式是您所管理的代理程式。 您可以藉由安裝代理程式軟體和所需的工具,以及向 Azure DevOps 註冊代理程式,來設定虛擬機器或容器。 在本課程模組中,當您選擇 [使用自我裝載式代理程式的 GitHub Codespaces 開發環境] 時,您會使用在 GitHub Codespaces 容器中執行的自我裝載式代理程式。 在 GitHub Codespaces 容器上自我裝載代理程式並不是典型的生產案例,但可提供完成此訓練課程模組的環境。