設計部署管線

已完成

在此單元中,您會設計 CI/CD 管線來支持專案的需求。 您希望 Contoso Video 網站在每次成功推送至標記為發行至生產環境的主要分支之後,於 Azure Kubernetes Service (AKS) 中發佈。 標記設計可讓您輕鬆地檢查進入生產環境的每個部署版本。

您也想要將網站部署到預備環境,以在每次推送至主要分支之後進行測試,不論推送是否已標記發行至生產環境。 當您將標籤推送至 Azure Container Registry 時,可以使用標籤來路由傳送不同的容器映像。

設計管線

若要設計管線,請考慮工作和觸發程式。

發射鍵

您的管線必須在兩個不同的事件上觸發:

  • 標記推送至主要分支。
  • 未標記的推送至主要分支。

您可以將這兩個事件分割成兩個不同的觸發程式,因為已標記推送的動作與非標記推送的動作不同。 標記的推送會部署到生產環境,而未標記的推送則會部署到預備環境。 下圖顯示管線的兩個觸發程式:

Diagram that shows two types of pipeline triggers.

定義觸發程序之後,請規劃管線流程本身。

步驟 1:複製存放庫

第一個步驟是 建置步驟,您可以在其中準備設定並建置映射,再將它推送至 AKS 叢集。 在建置步驟中,您會設定部署步驟所需的所有資訊。 在此情況下,接收觸發程式訊號之後的第一個建置步驟是兩個觸發程式的相同,以複製存放庫。

Diagram that shows the procession from triggers to the first build step in a pipeline.

步驟 2:建置映像

下一個邏輯步驟是建置映像。 若要在 AKS 環境中執行,網站必須是 Docker 映像。 您必須使用存放庫根目錄中的 Dockerfile 來建置新的映像。 以下是您考慮不同觸發程式的位置。

針對標記的認可管線,您可以建置映像,然後使用與推送相同的標籤標記映射。 例如,如果認可是以 v1.0.0標記,您會將映射建置為 contoso/website:v1.0.0。 如果您在main分支中有未 標記的認可 ,請使用標記來建置映像 latest

Diagram that shows the procession from triggers to the first and second build steps in a pipeline.

步驟 3:將映像推送至容器登錄

建置映射之後,您會將其推送至 Contoso 容器登錄,並設定 AKS 叢集以存取登錄。 叢集會從 Container Registry 下載映像並加以執行。

此時,管線會聚集成單一步驟。 您的 Container Registry 實例沒有內部分割,因此您會將這兩個映像推送至相同的位置。

Diagram that shows the procession from triggers to the first, second, and third build steps in the pipeline.

步驟 4:部署應用程式

最後 一個部署步驟 會將網站部署至正確的位置。 如果標記的認可觸發管線,您可以將網站 production 部署到 AKS 叢集的命名空間。 如果管線是以未標記的認可觸發,您會推送至 staging 相同叢集的命名空間。

Diagram that shows the procession from triggers, through three build steps, to the deploy steps in a pipeline.

既然您已設計工作流程管線,請繼續進行下列單元來設定項目環境,並建立 GitHub Actions 以複製、建置、推送和部署在 AKS 叢集上。