Azure 应用服务部署槽的用例 - 应用版本的变体
Use case for Azure App Service Deployment Slots - variation on versions of apps
我阅读了有关 Azure App Service 上的部署槽的信息,所有文档和文章都指出,这些槽可用于应用程序的 Prod 和 Stage 版本,将 Stage 交换为 Prod 以将其推广到测试后生产。
但这是唯一的用例吗?例如,我们有一个托管在 Azure App Service 上的 Web 应用程序。现在我们需要为特定目的制作该应用程序的变体。它永远不会与生产插槽交换。它基本上将作为两个独立的应用程序共存。
部署槽可以这样用吗?有什么缺点吗?在我看来,这是一种在应用服务中托管两个或多个 Web 应用程序而无需创建多个应用程序服务(因此成本更低)的方法。
从技术上讲,我相信可以按照您的建议进行操作,因为每个部署槽确实承载了您的应用程序的全功能版本,并且您可以使用 this routing method 访问特定槽。您只需将每个环境部署到其自己的插槽中,而不会交换它们。
您可以免费创建其他 Web 应用程序。您只需为应用服务计划付费,您可以根据需要在该计划中拥有任意数量的 Web 应用程序 运行,因此您最好为每个环境创建一个单独的应用程序服务,并且由于它们都是非生产的,您可以安全地 运行 它们都在同一个应用服务计划中。
您可以在 App Service Plan
下部署多个单独的 WebApps
。所有这些 WebApps (/websites) 都有自己单独的默认域 (FQDN),您还可以为每个 WebApps 设置自定义域。
App Service – 使您能够构建和托管 Web 应用程序、移动后端和 RESTful API 的服务。
应用程序– 您的个人应用程序 (WebApps),这些应用程序 运行 在应用程序服务计划中。
应用服务计划 - 应用服务计划 (ASP) 为 Web 应用定义了一组计算资源 运行。
由于您为应用服务计划分配的计算资源付费,因此您可以通过将多个应用程序放入一个应用服务计划来节省资金。只要计划有足够的资源来处理负载,您就可以继续向现有计划添加应用程序。但是,请记住,同一应用服务计划中的应用都共享相同的计算资源。
如果这些是单独的 WebApp,那么管理单独的 WebApp 会比通过虚拟 subdirectories/paths 或主机名或子域更容易。使用 App Service Plan 功能(在层下提供许多应用程序)以节省成本。
缺点:
- 根据您使用的计划层级,在应用服务计划中托管应用程序的数量存在限制,例如如果使用共享计划层级并且在免费套餐,您将按应用服务计划中的每个应用付费。有关更多详细信息,请参阅 this。
- Azure 维护要求服务器至少每月重启一次或更多次。如果您的所有应用程序都在共享计划中,则补丁重启可能意味着整个系统已关闭,并且所有应用程序在同时启动时都在争夺资源
- 应用程序的部署和重新启动可能会导致计划(即服务器)CPU 激增。如果您的应用程序对性能敏感并且您经常部署,您可能需要更多的分离。
注:
- 使用单独的计划作为环境边界,因此生产计划与测试计划分开。 “测试”应用程序继续测试计划,“生产”应用程序继续生产,以防止测试影响用户。
我阅读了有关 Azure App Service 上的部署槽的信息,所有文档和文章都指出,这些槽可用于应用程序的 Prod 和 Stage 版本,将 Stage 交换为 Prod 以将其推广到测试后生产。
但这是唯一的用例吗?例如,我们有一个托管在 Azure App Service 上的 Web 应用程序。现在我们需要为特定目的制作该应用程序的变体。它永远不会与生产插槽交换。它基本上将作为两个独立的应用程序共存。
部署槽可以这样用吗?有什么缺点吗?在我看来,这是一种在应用服务中托管两个或多个 Web 应用程序而无需创建多个应用程序服务(因此成本更低)的方法。
从技术上讲,我相信可以按照您的建议进行操作,因为每个部署槽确实承载了您的应用程序的全功能版本,并且您可以使用 this routing method 访问特定槽。您只需将每个环境部署到其自己的插槽中,而不会交换它们。
您可以免费创建其他 Web 应用程序。您只需为应用服务计划付费,您可以根据需要在该计划中拥有任意数量的 Web 应用程序 运行,因此您最好为每个环境创建一个单独的应用程序服务,并且由于它们都是非生产的,您可以安全地 运行 它们都在同一个应用服务计划中。
您可以在 App Service Plan
下部署多个单独的 WebApps
。所有这些 WebApps (/websites) 都有自己单独的默认域 (FQDN),您还可以为每个 WebApps 设置自定义域。
App Service – 使您能够构建和托管 Web 应用程序、移动后端和 RESTful API 的服务。
应用程序– 您的个人应用程序 (WebApps),这些应用程序 运行 在应用程序服务计划中。
应用服务计划 - 应用服务计划 (ASP) 为 Web 应用定义了一组计算资源 运行。
由于您为应用服务计划分配的计算资源付费,因此您可以通过将多个应用程序放入一个应用服务计划来节省资金。只要计划有足够的资源来处理负载,您就可以继续向现有计划添加应用程序。但是,请记住,同一应用服务计划中的应用都共享相同的计算资源。
如果这些是单独的 WebApp,那么管理单独的 WebApp 会比通过虚拟 subdirectories/paths 或主机名或子域更容易。使用 App Service Plan 功能(在层下提供许多应用程序)以节省成本。
缺点:
- 根据您使用的计划层级,在应用服务计划中托管应用程序的数量存在限制,例如如果使用共享计划层级并且在免费套餐,您将按应用服务计划中的每个应用付费。有关更多详细信息,请参阅 this。
- Azure 维护要求服务器至少每月重启一次或更多次。如果您的所有应用程序都在共享计划中,则补丁重启可能意味着整个系统已关闭,并且所有应用程序在同时启动时都在争夺资源
- 应用程序的部署和重新启动可能会导致计划(即服务器)CPU 激增。如果您的应用程序对性能敏感并且您经常部署,您可能需要更多的分离。
注:
- 使用单独的计划作为环境边界,因此生产计划与测试计划分开。 “测试”应用程序继续测试计划,“生产”应用程序继续生产,以防止测试影响用户。