部署到 App Service

已完成

每個開發小組都有獨特需求,可能會讓在任何雲端服務上實作有效率部署管線變得困難。 App Service 支援自動化和手動部署。

自動化部署

自動化部署或持續部署是一種程序,可在對終端使用者影響最小的情況下,以快速且重複的模式推出新功能與 Bug 修正。

Azure App Service 支援從數個原始檔控制系統進行自動化部署,作為持續整合和部署 (CI/CD) 管線的一部分。 下列是可用的選項:

  • Azure DevOps Services:您可以將程式碼推送至 Azure DevOps Services、在雲端中建置程式碼、執行測試、從程式碼產生版本,最後將程式碼推送至 Azure Web 應用程式。
  • GitHub:Azure 支援直接從 GitHub 進行自動化部署。 當您將 GitHub 存放庫連線到 Azure 以進行自動化部署時,您推送至 GitHub 生產分支的任何變更都將自動為您部署。
  • Bitbucket:支援 Bitbucket,不過 GitHub 和 Azure DevOps 更常用且整合較佳。

手動部署

有一些選項可讓您以手動方式將程式碼推送至 Azure:

  • Git:App Service Web 應用程式具備 Git URL,可讓您新增為遠端存放庫。 推送至遠端存放庫會部署您的應用程式。
  • CLI:這是 az webapp up 命令列介面的 az 一項功能,可封裝您的應用程式並部署它。 不同於其他部署方法,az webapp up 可以為您建立新的 App Service Web 應用程式。
  • Zip deploy:使用 curl 或類似的 HTTP 公用程式,將應用程式檔案的 ZIP 傳送至 App Service。
  • FTP/S:FTP 或 FTPS 是將程式碼推送至任何裝載環境 (含 App Service) 的傳統方式。

備註

App Service 會使用 Kudu 進行 Git 和 zip 型部署。 Kudu 處理檔案同步和部署觸發器。

使用部署位置

盡可能在部署新生產環境組建時,使用部署位置。 使用標準 App Service 方案層或更好的方案層時,您可以將應用程式部署至預備環境,然後交換預備和生產位置。 交換作業會準備必要的背景工作角色執行個體,以符合您的生產規模,進而消除停機時間。

連續部署程式碼

如果您的專案指定用於測試、QA 和預備的分支,則每個分支都應該持續部署到預備位置。 這可讓您的利害關係人輕鬆存取和測試已部署的分支。

持續部署容器

針對來自 Azure Container Registry 或其他容器登錄的自訂容器,請將映像部署到預備位置,並交換至生產環境,以避免停機。 自動化比程式碼部署更為複雜,因為您必須將映像推送至容器登錄,並在 Web 應用程式上更新映像標籤。

  • 建置並標記映像:在建置管線的過程中,使用 Git 認可識別碼、時間戳記或其他可識別資訊來標記映像。 最好不要使用預設的「最新」標籤。 否則,很難回溯目前部署的程式碼,這會使偵錯更為困難。
  • 推送標記的映像:建置並標記映像之後,管線會將映像推送至您的容器登錄。 在下一個步驟中,部署位置會從容器登錄提取已標記的映像。
  • 使用新的映射卷標更新部署位置:更新此屬性時,月臺會自動重新啟動並提取新的容器映像。

Sidecar 容器

在 Azure App Service 中,您可以為每個已啟用側車的自定義容器應用程式新增最多 9 個 Sidecar 容器。 以 Linux 為基礎的自訂容器應用程式支援 Sidecar 容器,並允許部署額外的服務和功能,而無需將它們與主要應用程式容器緊密結合。 例如,您可以將監視、記錄、設定和網路服務新增為側車容器。

您可以在應用程式的管理頁面中,透過 部署中心 新增 Sidecar 容器。