教學課程:將具有 CI/CD 的容器應用程式部署到 Service Fabric 叢集

本教學課程是系列中的第二部分,說明如何使用 Visual Studio 和 Azure DevOps 設定 Azure Service Fabric 容器應用程式的持續整合和部署。 需要現有的 Service Fabric 應用程式,在將 Windows 容器中的 .NET 應用程式部署到 Azure Service Fabric 中建立的應用程式會作為範例。

在本系列的第二部分中,您將瞭解如何:

  • 將原始檔控制新增至專案
  • 在 Visual Studio Team Explorer 中建立組建定義
  • 在 Visual Studio Team Explorer 中建立發行定義
  • 自動部署和升級應用程式

必要條件

開始進行本教學課程之前:

下載發行設定檔

您現在已經部署容器應用程式,接下來可以設定持續整合。 首先,在應用程式中準備部署程序使用的發行設定檔 (於 Azure DevOps 內執行)。 發行設定檔應設定為以先前建立的叢集為目標。 啟動 Visual Studio,並開啟現有的 Service Fabric 應用程式專案。 在 [方案總管] 中,以滑鼠右鍵按一下應用程式並選取 [發佈...]

在您的應用程式專案內選擇要使用於持續整合工作流程 (例如雲端) 的目標設定檔。 指定叢集連線端點。 勾選升級應用程式核取方塊,讓您的應用程式對於 Azure DevOps 中的每個部署升級。 按一下 [儲存] 超連結,將設定儲存至發行設定檔,然後按一下 [取消] 關閉對話方塊。

Push profile

向新的 Azure DevOps Git 儲存機制共用 Visual Studio 解決方案

向 Azure DevOps 中的 Team 專案共用應用程式原始檔,以便產生組建。

在 Visual Studio 右上角的狀態列上選取 [新增至原始檔控制] ->[Git],以建立專案的新本機 Git 存放庫。

在 [Team Explorer] 的 [推送] 檢視中,選取 [推送至 Azure DevOps] 下的 [發佈 Git 儲存機制] 按鈕。

Screenshot of the Team Explorer - Synchronization window in Visual Studio. Under Push to Azure DevOps, the Publish to Git Repo button is highlighted.

確認電子郵件,並在 [帳戶] 下拉式清單中選取組織。 如果您還沒有組織,請先設定一個。 輸入您的儲存機制名稱,並選取 [發佈儲存機制]

Screenshot of the Push to Azure DevOps window. The settings for Email, Account, Repository name, and the Publish Repository button are highlighted.

發佈存放庫將在帳戶中建立與本機存放庫名稱相同的新 Team 專案。 若要在現有的 Team 專案中建立存放庫,請按一下存放庫名稱旁邊的 [進階],並選取 Team 專案。 您可以選取在網路上檢視,在網路上檢視您的程式碼。

設定 Azure Pipelines 的持續傳遞

Azure DevOps 組建定義描述由一組循序執行的組建步驟所組成的工作流程。 建立產生 Service Fabric 應用程式封裝的組建定義,以及其他構件,以便部署到 Service Fabric 叢集。 深入了解 Azure DevOps 組建定義

Azure DevOps 發行定義描述將應用程式封裝部署到叢集的工作流程。 一起使用時,組建定義和發行定義可以執行整個工作流程,從來源檔案開始,並以叢集中的執行中應用程式結束。 深入了解 Azure DevOps 發行定義

建立組建定義

在網頁瀏覽器中瀏覽至 https://dev.azure.com 並選取您的組織,然後選取新增專案以開啟新的 Team 專案。

選取左窗格中的 [管線] 選項,然後按一下 [新增管線]

注意

如果您未看到組建定義範本,請確定 [新的 YAML 管線建立體驗] 功能已關閉。 這項功能設定於 DevOps 帳戶的 [預覽功能] 區段內。

New Pipeline

選取 [Azure Repos Git] 作為來源,然後依序選取 Team 專案名稱、專案存放庫、主要預設分支或手動和排程組建。 然後按一下 [繼續]

在 [選取範本] 中,選取 [含 Docker 支援的 Azure Service Fabric 應用程式] 範本,然後按一下 [套用]

Choose build template

在 [工作] 中,選取 [Hosted VS2017] 作為 [代理程式集區]

Select tasks

按一下 [標記映像]

在 [容器登錄類型] 中,選取 [Azure Container Registry]。 選取 [Azure 訂用帳戶],然後按一下 [授權]。 選取 [Azure Container Registry]

Select Docker Tag images

按一下 [推送映像]

在 [容器登錄類型] 中,選取 [Azure Container Registry]。 選取 [Azure 訂用帳戶],然後按一下 [授權]。 選取 [Azure Container Registry]

Select Docker Push images

在 [觸發程序] 索引標籤下方,透過核取 [啟用持續整合] 來啟用持續整合。 在 [分支篩選] 內按一下 [+ 新增],[分支規格] 將會預設為 [主要]

在 [儲存組建管線和佇列] 對話方塊中,按一下 [儲存並加入佇列] 以手動啟動組建。

Select triggers

推送或簽入時也會觸發組建。 若要檢查組建進度,請切換到 [組建] 索引標籤。您確認組建執行成功,請定義將應用程式部署至叢集的發行定義。

建立發行定義

選取左窗格中的 [管線] 選項,然後依序選取 [發行] 和 [+ 新增管線]。 在 [選取範本] 中,從清單中選取 [Azure Service Fabric 部署] 範本,然後選取 [套用]

Choose release template

選取 [工作] 和 [環境 1],然後選取 [+ 新增] 來新增叢集連線。

Add cluster connection

在 [新增 Service Fabric 連線] 檢視中,選取 [憑證式] 或 [Microsoft Entra ID] 驗證。 指定連線名稱 "mysftestcluster" 和叢集端點 "tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000" (或您要部署的目標叢集端點)。

若是憑證式驗證,請新增伺服器憑證的伺服器憑證指紋 (用來建立叢集的伺服器憑證)。 在 [用戶端憑證] 中,新增 Base-64 編碼的用戶端憑證檔案。 請參閱該欄位的快顯說明,了解如何取得以 Base-64 編碼表示的憑證。 以及新增憑證的密碼。 如果您沒有個別的用戶端憑證,您可以使用叢集或伺服器憑證。

若是 Microsoft Entra 認證,請新增伺服器憑證的伺服器憑證指紋 (用來建立叢集的伺服器憑證),以及在 [使用者名稱] 和 [密碼] 欄位中新增要用來連線到叢集的認證。

按一下 [新增] 以儲存叢集連線。

在 [代理程式階段] 底下,按一下 [部署 Service Fabric 應用程式]。 按一下 [Docker 設定],然後按一下 [設定 Docker 設定]。 在 [登錄認證來源] 中,選取 [Azure Resource Manager 服務連線]。 然後選取 [Azure 訂用帳戶]

Release pipeline agent

接下來,將組建成品新增至管線,讓發行定義可以從組建中找到輸出。 選取 [管線] 和 [成品]->[+新增]。 在 [來源 (組建定義)] 中,選取您先前建立的組建定義。 按一下 [新增] 以儲存組建成品。

Add artifact

啟用持續部署觸發程序,以便在組建完成時自動建立發行。 按一下成品中的閃電圖示、啟用觸發程序,然後按一下 [儲存] 以儲存發行定義。

Enable trigger

選取 [+ 發行] ->[建立發行] ->[建立] 以手動建立發行。 您可以在 [發行] 索引標籤中監視發行進度。

確認部署成功,而且應用程式在叢集中執行。 開啟 web 瀏覽器並巡覽至 http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/。 請注意應用程式版本,在此範例中是「1.0.0.20170616.3」。

認可並推送變更,觸發發行程序

將某些程式碼變更簽入到 Azure DevOps,以確認持續整合管線正常運作。

您撰寫程式碼時,Visual Studio 會自動追蹤您的變更。 藉由從右下方的狀態列選取暫止變更圖示 (Pending changes icon shows a pencil and a number.),認可本機 Git 存放庫的變更。

在 Team Explorer 的變更檢視中,加入描述更新的訊息,並認可變更。

Commit all

選取未發行的變更狀態列圖示 (Unpublished changes) 或 Team Explorer 中的 [同步] 檢視。 選取 [推送] 更新 Azure DevOps 中的程式碼。

Push changes

自動將變更推送至 Azure DevOps 觸發組建。 組建定義成功完成時,發行就會自動建立,並開始升級叢集上的應用程式。

若要檢查組建進度,請切換到 Team Explorer Visual Studio 中的 [組建] 索引標籤。 您確認組建執行成功,請定義將應用程式部署至叢集的發行定義。

確認部署成功,而且應用程式在叢集中執行。 開啟 web 瀏覽器並巡覽至 http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/。 請注意應用程式版本,在此範例中是 "1.0.0.20170815.3"。

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the app version

更新應用程式

在應用程式中進行程式碼變更。 在先前的步驟儲存並認可變更。

應用程式的升級開始後,即可注意 Service Fabric Explorer 中的升級進度:

Screenshot of the Voting app in Service Fabric Explorer. An

應用程式升級可能需要幾分鐘的時間。 升級完成時,應用程式將執行下一個版本。 在此範例中為 "1.0.0.20170815.4"。

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the updated app version

下一步

在本教學課程中,您已了解如何:

  • 將原始檔控制新增至專案
  • 建立組建定義
  • 建立發行定義
  • 自動部署和升級應用程式

在本教學課程的下一個部分,了解如何設定監視您的容器