發表文章

目前顯示的是 7月, 2022的文章

Azure DevOps in Action - 使用Deployment Group進行地端大量部署

圖片
使用Azure DevOps Services,部署到雲端相對容易,部署到地端環境,得考慮的事情就多了。主要的原因是,Azure DevOps Services在雲端,無法(也不應該)直接跳過防火牆存取地端環境上的伺服器。 另外,如果不管是雲端或地端伺服器,若是HA(高可用性)架構,做了負載平衡(Load Balance)或是Failover,部署站台時,需要把同樣的artfact一次部署到多台伺服器,在pipeline的設計上也有一定的難度。 上面提到的這些事情,解決方案就是『Deployment Group』。 功能說明 Deployment Group可以讓你把特定artifact一次部署到多台伺服器,同時,也可以突破防火牆的限制,從雲端部署到地端。其中的關鍵就在於,你必須在伺服器端安裝一個代理程式。 我們來看一下底下這個準備好的情境,我們準備了兩台Windows Server 2019 VM,名稱分別是testdpvm1與testdpvm2。並且,在這兩台伺服器上開啟了IIS,也運行了基本的網頁如下: 同時,我們也建立了一個Azure DevOps Team Project,其中的repo很簡單,只有一個html檔案: 並且,我們為這個repo的部署建立了一個CI Pipeline: 這個CI Pipeline的功能也超單純,只是打包這個 .html頁面成為 .zip檔案,然後放入(publish)到drop資料夾,準備給CD Pipeline使用。 建立Deployment Group 接著重點來了,我們待會要將drop資料夾中的artifact透過CD Pipeline如同『穿越防火牆』一般地『同時』發佈到那兩台剛才建好的VM上,為此,我們來建立Deployment Group。請在Pipeline功能中,找到Deployment Group,並且建立新的Deployment Group: 接著,為Deployment Group命名,一般採用的是你的環境名稱,例如Dev、QA、Production…等。 然後,請複製出現的PowerShell Script (別忘了要勾選Use a personal access token in the script for authentication): 運行代理程式 接著