解決方案構想
本文說明解決方案概念。 您的雲端架構師可以使用本指南,協助視覺化此架構的一般實作的主要元件。 以本文為起點,設計符合您工作負載具體要求的完善解決方案。
此解決方案會將現有的 Web 應用程式移轉至 App Service 中部署的容器,這可讓您專注於撰寫容器,而不必擔心管理容器協調流程。
架構
下載此架構的 Visio 檔案。
資料流程
- 開發人員會將現有的 Web 應用程式轉換成容器。
- 開發人員將容器映像發佈至:
- 私人登錄或 Docker Hub。
- 或者,Azure Container Registry。
- App Service 會使用:
- 如果使用私人登錄或 Docker Hub 的認證。
- 或者,使用 Microsoft Entra 安全性主體來存取 Azure Container Registry 的受控識別。
- 用來存取其他 Azure 資源的服務連接器。
- 開發人員會將新映射推送至容器登錄,這會在啟用持續部署時觸發App Service更新。
元件
適用於容器的 Web 應用程式:使用 App Service,您可以在 Windows 和 Linux 上部署和執行容器化 Web 應用程式。 適用於容器的 Web 應用程式提供一個輕鬆的斜坡,讓開發人員能夠充分利用完全受控的平臺,但也想要包含應用程式及其所有相依性的單一可部署成品。 另一個目標案例是開發人員想要使用自定義架構或版本,而此版本超出 Azure App 服務 平臺內建的預設值。 Azure App 服務 上的容器化 Web 應用程式可以視需要進行調整,並搭配 Docker Hub、Azure Container Registry 和 GitHub 使用簡化的 CI/CD 工作流程。
Azure Container Registry:D ocker 和 Open Container Initiative (OCI) 映射的登錄,支援所有 OCI 成品。 在 Azure 服務中使用容器映像,例如 App Service、機器學習 和 Batch。 例如,為 Web 應用程式設定 Web 應用程式的 Web 應用程式時,您可以從 Azure Container Registry 指定容器映像。
Azure Cosmos DB:完全受控的 NoSQL 資料庫服務,用於建置和現代化可調整且高效能的應用程式。 Azure Cosmos DB 與重要的 Azure 服務整合,包括 Azure Functions、IoT 中樞、AKS(Azure Kubernetes Service)、App Service 等等。 您可以選擇多個資料庫 API,包括適用於 NoSQL 的原生 Azure Cosmos DB、適用於 MongoDB 的 Azure Cosmos DB、適用於 Apache Cassandra 的 Azure Cosmos DB、適用於 Apache Gremlin 的 Azure Cosmos DB,以及適用於數據表的 Azure Cosmos DB。
Azure SQL 資料庫:具有內建智慧的完全受控關係資料庫。 Azure SQL 資料庫 可協助您在本機或雲端建置應用程式,並在熱門的平臺和架構上建置應用程式,並支援最常見的語言。 SQL 資料庫 可讓您使用原生支持簡化在 Azure App 服務 中執行之網站的開發。
Azure 儲存體:Azure 儲存體 提供持久、高可用性、可大幅調整的雲端記憶體解決方案,並包含物件、檔案、磁碟、佇列和數據表記憶體。 Azure 記憶體包含物件、區塊和檔案記憶體的服務,以滿足您的網站需求。 例如,網站可以輕鬆地針對相片和視訊等網站媒體使用 Azure Blob 儲存體,以進行可調整且安全的區塊儲存。
Azure 監視器:Application Insights,提供健康情況和效能監視,以及診斷。 Azure 監視器可與 Web App for Containers (App Service) 搭配使用,以監視網站計量,例如連線數目和要求計數,導致 HTTP 狀態代碼。
Azure 服務連接器:服務連接器可協助您將 Azure 計算服務連線到其他備份服務。 例如,在 Azure App 服務 與 適用於 MySQL 的 Azure 資料庫 或 PostgreSQL、Azure 儲存體 和 Azure 金鑰保存庫 之間使用服務連接器。 如需支援服務的完整清單,請參閱 Service Connector 中支援的服務。
案例詳細資料
輕鬆地將現有的 Web 應用程式移轉至容器,並在 Azure App 服務 的 Web App for Containers 中執行容器化 Web 應用程式。 適用於容器的 Web 應用程式可讓您專注於撰寫容器,而不必擔心管理和維護基礎容器協調器。 當您建置 Web 應用程式時,適用於容器的 Web 應用程式是使用容器採取第一個步驟的絕佳選項。 您的容器可以輕鬆地整合其他 Azure 資源,例如記憶體和資料庫服務。
在整合現有的 Web 應用程式與 Azure 資源時,您也可以利用 Azure 服務的無密碼連線。 無密碼連線是跨多個 Azure 服務的語言無關的功能。 當您使用無密碼連線時,Web 應用程式會連線到以 Azure 為基礎的服務,而不需要輪替密碼。 您只需要設定 - 不需要任何新的程式碼。
潛在使用案例
此解決方案構想非常適合將目前的 Web 應用程式移轉至在 Azure 上執行的容器。 套用下列專案時,此解決方案構想可用來建立網站:
使用現有的程式設計體驗,用來建立程式碼部署的網站,以建立容器部署的網站。 將現有的 Web 應用程式隨即轉移至 App Service 上的容器。
使用 Visual Studio、Visual Studio Code、Azure CLI 和 Azure Cloud Shell 等工具簡化開發和部署。
跨不同環境的可移植性,從開發到生產環境,以及不同的雲端。 您可以在與部署生產環境不同的平臺上,在本機測試。
App Service 中的延展性表示您可以相應放大所需的背景工作角色數目。
未來網站的模組化可在 App Service 或其他服務中運作,例如 Azure Container Apps 和 Azure Kubernetes Service。 適用於容器的 Web 應用程式是移至容器的良好第一步。
部署在適用於容器的 Web 應用程式中的容器已準備好進行持續整合和持續部署 (CI/CD)。 CI/CD 功能可讓您更快提供更新。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- Marc Gelormino |內容開發人員
若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。
下一步
- 使用 Azure 應用程式服務來部署及執行容器化 Web 應用程式
- 管理 Azure Container Registry 中的容器映像
- Linux 上適用於容器和 Azure App 服務的 Web 應用程式概觀
- 比較容器應用程式與其他 Azure 容器選項
- Azure 服務的無密碼連線
App Service 中容器的範例語言部署:
- 在 Azure App 服務 上部署容器化的 Python Web 應用程式
- 使用 Visual Studio Code 部署Express.js以 Azure App 服務
- 使用 Visual Studio 將 ASP.NET Core 容器部署至 Azure App 服務
相關資源
相關的架構指引: