我们应该使用部署插槽还是新的Web应用程序在Azure Web应用程序中部署同一应用程序的不同版本

问题描述 投票:0回答:2

我对部署槽有疑问,因为我试图弄清楚我是否愿意使用部署槽。在我们的团队中,我们倾向于为大多数Web应用程序提供3种环境:

  • DEV-最新的dev代码
  • 质量检查-质量检查人员正在积极测试的代码
  • BC-最后是一个单独的环境,供质量检查人员进行向后兼容性测试

当前,我们仅获得一个Web应用程序资源。由于我们想维护在上述3个环境中部署的3个版本的应用程序代码,我想知道是否可以利用3个单独的部署插槽,还是要创建3个单独的Web应用程序呢?

[从文档中我知道部署插槽是用于快速测试,然后将其交换到生产中的,但是由于我们当前仅限于Web应用程序的单个实例,因此我正在考虑利用部署插槽。

我想知道您对此的想法,以及在这种情况下是否应该使用新的Web应用程序或插槽。

azure azure-web-app-service
2个回答
1
投票

从技术上讲,我相信可以按照您的建议进行操作,因为每个部署插槽都托管应用程序的完整功能版本,您可以使用this routing method访问特定的插槽。您只需将每个环境部署到其自己的插槽中,就不会交换它们。

但是,没有理由这样做。您可以免费创建其他Web应用程序。您只需支付App Service计划的费用,就可以根据需要在该计划上运行任意数量的Web应用程序,因此最好为每个环境创建一个单独的App Service,因为它们都不是产品,您可以安全地在同一App Service计划中运行它们。


0
投票

只需添加将它们分离出来,便会更加灵活并且可能更安全。如前所述,没有成本差异。但是,我想指出的是,如果Web应用程序确实是3种不同的环境,那么它们应该是3种不同的应用程序服务。这将使您能够在每个环境后都有一个数据库,为每个环境分配一个Identity,为每个环境分配Application registration并可能有不同的access restrictions规则。

实际上,将它们分隔开可能会节省成本,因为DEV中的应用程序服务可能比PROD中的应用程序更小。或可以在不使用DEV时将其删除,并在进行处理时通过ARM重新部署。

当然,缺点是可能会增加一些开销和管理。如果单独的应用程序服务可能会分开DNS记​​录,网络规则,SSL证书等。

© www.soinside.com 2019 - 2024. All rights reserved.