使用单个azure应用程序服务托管多个应用程序/微服务有哪些限制/缺点?

使用单个azure应用程序服务托管多个应用程序/微服务有哪些限制/缺点?,azure,microservices,azure-storage,azure-web-app-service,azure-appservice,Azure,Microservices,Azure Storage,Azure Web App Service,Azure Appservice,有人能告诉我或解释一下在单个Azure AppService服务器上部署多个微服务(比如2-3)的限制/缺点是什么吗 为了实现以下目标,我们使用微服务 服务于单一目的或承担单一责任 有清晰的沟通界面 彼此之间的依赖性较小 可以独立部署,而不会影响生态系统的其余部分 可以独立扩展 可以独立失败 允许您的团队独立工作,而不依赖其他团队提供支持和服务 允许小的和频繁的变化 减少技术债务 更快地从故障中恢复 但是,当我们尝试部署一项微服务时,Azure应用程序服务是如何工作的呢?它会影响其他微卫星服

有人能告诉我或解释一下在单个Azure AppService服务器上部署多个微服务(比如2-3)的限制/缺点是什么吗

为了实现以下目标,我们使用微服务

  • 服务于单一目的或承担单一责任
  • 有清晰的沟通界面
  • 彼此之间的依赖性较小
  • 可以独立部署,而不会影响生态系统的其余部分
  • 可以独立扩展
  • 可以独立失败
  • 允许您的团队独立工作,而不依赖其他团队提供支持和服务
  • 允许小的和频繁的变化
  • 减少技术债务
  • 更快地从故障中恢复
但是,当我们尝试部署一项微服务时,Azure应用程序服务是如何工作的呢?它会影响其他微卫星服务吗?我们可以在生产环境中使用它吗


通过为windows和linux定义虚拟路径并添加azure存储,我在单个appservice上发现了一些托管多个应用的链接,但这是最好的做法吗?

不,不是。他们将争夺计算资源,如果硬件出现故障,他们所有人都将破产。

不,不是。它们将争夺计算资源,如果硬件出现故障,所有这些应用程序都将被淘汰。

听起来你指的是在共享应用程序服务计划中托管多个应用程序服务应用程序。这在概念上(和物理上)与在服务器上运行多个应用程序相同,我会考虑这些方面的利弊

您可以在同一计划中托管多个应用程序,只要该计划提供足够的内存/CPU/网络资源来满足这些应用程序的综合需求。对于一些小型应用程序,一个适度的计划大小应该不会在生产中遇到任何问题。组合的主要好处是节约成本,因为计划是收费单位,而不是应用程序

Microsoft将在单独的计划中隔离应用程序:

  • 该应用程序是资源密集型的
  • 您希望独立于现有计划中的其他应用扩展应用
  • 应用程序需要不同地理区域的资源
根据我的经验,我想补充一些考虑:

  • 部署和重新启动应用程序可能会导致计划(即服务器)的CPU峰值。如果您的应用程序对性能非常敏感,并且经常部署,那么您可能需要更多的分离
  • Azure维护要求服务器至少每月重新启动一次或更多。如果您的所有应用程序都在共享计划中,则修补程序重新启动可能意味着整个系统关闭,并且所有应用程序在同时启动时都会争夺资源
  • 我通常使用单独的计划作为环境边界,因此生产计划与测试计划是分开的。“测试”应用程序按测试计划运行,“生产”应用程序以防止测试影响用户
  • 可能更适合托管许多微服务

听起来你指的是在共享应用服务计划中托管多个应用服务应用。这在概念上(和物理上)与在服务器上运行多个应用程序相同,我会考虑这些方面的利弊

您可以在同一计划中托管多个应用程序,只要该计划提供足够的内存/CPU/网络资源来满足这些应用程序的综合需求。对于一些小型应用程序,一个适度的计划大小应该不会在生产中遇到任何问题。组合的主要好处是节约成本,因为计划是收费单位,而不是应用程序

Microsoft将在单独的计划中隔离应用程序:

  • 该应用程序是资源密集型的
  • 您希望独立于现有计划中的其他应用扩展应用
  • 应用程序需要不同地理区域的资源
根据我的经验,我想补充一些考虑:

  • 部署和重新启动应用程序可能会导致计划(即服务器)的CPU峰值。如果您的应用程序对性能非常敏感,并且经常部署,那么您可能需要更多的分离
  • Azure维护要求服务器至少每月重新启动一次或更多。如果您的所有应用程序都在共享计划中,则修补程序重新启动可能意味着整个系统关闭,并且所有应用程序在同时启动时都会争夺资源
  • 我通常使用单独的计划作为环境边界,因此生产计划与测试计划是分开的。“测试”应用程序按测试计划运行,“生产”应用程序以防止测试影响用户
  • 可能更适合托管许多微服务