設計部署管線
在此單元中,您會設計 CI/CD 管線來支持專案的需求。 您希望 Contoso Video 網站在每次成功推送至標記為發行至生產環境的主要分支之後,於 Azure Kubernetes Service (AKS) 中發佈。 標記設計可讓您輕鬆地檢查進入生產環境的每個部署版本。
您也想要將網站部署到預備環境,以在每次推送至主要分支之後進行測試,不論推送是否已標記發行至生產環境。 當您將標籤推送至 Azure Container Registry 時,可以使用標籤來路由傳送不同的容器映像。
設計管線
若要設計管線,請考慮工作和觸發程式。
發射鍵
您的管線必須在兩個不同的事件上觸發:
- 標記推送至主要分支。
- 未標記的推送至主要分支。
您可以將這兩個事件分割成兩個不同的觸發程式,因為已標記推送的動作與非標記推送的動作不同。 標記的推送會部署到生產環境,而未標記的推送則會部署到預備環境。 下圖顯示管線的兩個觸發程式:
定義觸發程序之後,請規劃管線流程本身。
步驟 1:複製存放庫
第一個步驟是 建置步驟,您可以在其中準備設定並建置映射,再將它推送至 AKS 叢集。 在建置步驟中,您會設定部署步驟所需的所有資訊。 在此情況下,接收觸發程式訊號之後的第一個建置步驟是兩個觸發程式的相同,以複製存放庫。
步驟 2:建置映像
下一個邏輯步驟是建置映像。 若要在 AKS 環境中執行,網站必須是 Docker 映像。 您必須使用存放庫根目錄中的 Dockerfile 來建置新的映像。 以下是您考慮不同觸發程式的位置。
針對標記的認可管線,您可以建置映像,然後使用與推送相同的標籤標記映射。 例如,如果認可是以 v1.0.0
標記,您會將映射建置為 contoso/website:v1.0.0
。 如果您在main分支中有未 標記的認可 ,請使用標記來建置映像 latest
。
步驟 3:將映像推送至容器登錄
建置映射之後,您會將其推送至 Contoso 容器登錄,並設定 AKS 叢集以存取登錄。 叢集會從 Container Registry 下載映像並加以執行。
此時,管線會聚集成單一步驟。 您的 Container Registry 實例沒有內部分割,因此您會將這兩個映像推送至相同的位置。
步驟 4:部署應用程式
最後 一個部署步驟 會將網站部署至正確的位置。 如果標記的認可觸發管線,您可以將網站 production
部署到 AKS 叢集的命名空間。 如果管線是以未標記的認可觸發,您會推送至 staging
相同叢集的命名空間。
既然您已設計工作流程管線,請繼續進行下列單元來設定項目環境,並建立 GitHub Actions 以複製、建置、推送和部署在 AKS 叢集上。