1

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

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

  • 服务于单一目的或承担单一责任
  • 有一个清晰的沟通界面
  • 相互依赖少
  • 可以独立部署而不影响生态系统的其余部分
  • 可以独立扩展
  • 可以独立失败
  • 让您的团队独立工作,无需依赖其他团队的支持和服务
  • 允许小而频繁的更改
  • 减少技术债务
  • 更快地从故障中恢复

但是,当我们尝试部署其中一项微服务时,Azure 应用服务是如何工作的呢?它会影响其他微服务吗?我们可以在生产环境中使用它吗?

通过添加 azure 存储为 windows 和 linux 定义虚拟路径,我遇到了几个在单个 appservice 上托管多个应用程序的链接,但这是最佳/好的做法吗?

4

2 回答 2

0

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

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

Microsoft记录了将应用程序隔离在单独计划中的一些原因:

  • 该应用程序是资源密集型的。
  • 您希望独立于现有计划中的其他应用程序扩展应用程序。
  • 该应用程序需要不同地理区域的资源。

根据我的经验,我会添加一些注意事项:

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

不,这不对。它们将争夺计算资源,如果出现硬件故障,它们都会停机。

于 2020-07-10T12:34:41.060 回答