IaaS 的 Azure Pipelines 架構
重要
IaaS 應用程式的 CI/CD 是 使用 Azure DevOps 設計 CI/CD 管線的變體。 本文著重于將 Web 應用程式部署至 Azure 虛擬機器的詳細資料。
當您想要彈性且細微地管理計算時,Azure 虛擬機器是裝載自訂應用程式的選項。 虛擬機器 (VM) 應受限於與平臺即服務 (PaaS) 供應專案相同的工程層級。 例如,實作自動化建置和發行管線,以將變更推送至 VM。
本文說明使用 Azure Pipelines 將應用程式變更部署至 VM 的高階 DevOps 工作流程 (CI) 和持續部署 (CD) 做法。
架構
下載這個架構的 Visio 檔案 。
資料流程
本節假設您已閱讀Azure Pipelines 基準架構,並只著重于將工作負載部署至 Azure 虛擬機器的詳細資料。
PR 管線 - 與基準相同
CI 管線 - 與基準相同,不同之處在于為將 Web 應用程式部署至 IaaS 而建立的組建成品是 Web Deploy 套件
CD 管線觸發程式 - 與基準相同
CD 發行至預備 - 與基準相同,但有 2 個例外狀況:1) 下載的組建成品是 Web Deploy 套件,而 2) 套件部署至預備 Azure 虛擬機器。
CD 發行至生產環境 - 與基準相同,但有 2 個例外狀況:
a. 發行至生產環境是藉由更新 Azure 流量管理員來交換預備和生產環境來完成。 此策略可以透過具有兩個端點的流量管理員設定檔來完成,其中已啟用生產並停用預備環境。 若要交換預備和生產環境,請停用生產環境並啟用預備環境。
b. 復原可以藉由更新 Azure 流量管理員來交換生產環境與預備備份來完成。監測 - 與基準相同
單元
本節假設您已閱讀Azure Pipelines 基準架構元件一節,並只著重于將工作負載部署至 Azure 虛擬機器的詳細資料。
Azure 虛擬機器會使用 Windows 或 Linux 伺服器提供隨選、高度可調整、安全且虛擬化的基礎結構。 此架構中使用虛擬機器來裝載工作負載。
虛擬機器擴展集可讓您建立和管理一組相同的負載平衡 VM。 VM 執行個體的數目可以自動增加或減少,以因應需求或已定義的排程。 擴展集也可用來裝載工作負載。
Azure 流量管理員 是以 DNS 為基礎的流量負載平衡器,可用來將流量散發至已設定的端點。 在此架構中,流量管理員是用戶端的單一進入點,並已設定多個端點,代表生產虛擬機器和預備虛擬機器。 生產虛擬機器端點已啟用,並停用預備。
替代方案
本文著重于使用 Azure 流量管理員作為負載平衡器。 Azure 提供各種您可以考慮的 負載平衡選項 。
考量
本節假設您已閱讀Azure Pipelines 基準架構中的考慮一節,並只著重于將工作負載部署至 Azure 虛擬機器的特定考慮。
卓越營運
由於流量管理員是以 DNS 為基礎,因此 IP 位址的用戶端快取會導致延遲。 即使您可能會在流量管理員中啟用一個端點並停用另一個端點,用戶端仍會繼續使用其快取的 IP 位址,直到 DNS 存留時間 (TTL) 到期為止。 請考慮在第 4 層或第 7 層運作的 負載平衡選項 。
請考慮實作環境,而不只是預備和生產環境,以啟用復原、手動接受度測試和效能測試等專案。 使用預備環境做為復原環境的動作,讓您無法將該環境用於其他用途。