Azure是否按应用服务的数量收费

ia2d9nvy  于 2023-04-12  发布在  其他
关注(0)|答案(3)|浏览(120)

Azure是否仅对应用服务计划资源的利用率或我们在该应用服务计划下创建的应用服务的数量收费?在应用服务计划下创建的应用服务的数量是否会影响成本?
我正在开发一个微服务项目,我不确定是将每个微服务部署在一个专用的应用服务中,还是将所有微服务部署在一个应用服务中作为虚拟目录。成本是我们项目的一个问题。
谢谢。

quhf5bfb

quhf5bfb1#

Azure是否仅对应用程序服务计划资源的利用率或我们在该应用程序服务计划下创建的应用程序服务的数量收费?
忽略免费和共享层,您只需支付App Service Plan(每台选定计算机大小的成本x示例数量)。无论您在服务计划中有0个还是50个应用程序,您都将支付相同的费用(尽管这些应用程序消耗的任何其他I/O,存储等将是额外的)。
(而免费层最多允许10个应用程序,共享层允许100个应用程序)
理论上,您可以在每个应用服务计划中添加任意数量的应用服务(应用,例如Web应用、服务、功能应用等),但实际上,您将受到所选VM大小和计划的整体资源的限制(例如10GB Disk space on Basic,B1只有1.75GB RAM)。
根据Microsoft文档,建议如下:
在以下情况下,将您的应用隔离到新的应用服务计划中:

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

我还想补充一点意见:

  • 如果适用,请在应用程序服务计划级别隔离您的环境(开发人员、用户验收测试人员、生产人员),或考虑在资源组或订阅级别隔离。
  • 除非您的应用程序正在最大限度地使用CPU,否则在每个服务计划中安装尽可能多的应用程序是合乎逻辑的,但请在运行时监视VM示例上的性能和资源使用情况。
  • 在我的情况下,我通常发现RAM是瓶颈,所以我通常会尝试扩展到具有更多RAM的VM大小,以托管更多应用程序,然后再分离应用程序并添加更多服务计划。
  • 如果你使用的是.Net Core或其他不需要Windows的堆栈,我建议你看看Linux服务计划-它们比Windows示例便宜得多。一个警告-就目前而言,有一个奇怪的限制不允许在同一资源组中混合使用Windows和Linux服务计划自2021年1月起,您可以将Windows和Linux应用服务计划部署到同一资源组,但请注意,如果您通过发布进行部署,some VS versions可能仍然会错误地将其作为验证规则强制执行。
  • 每个应用程序在服务计划示例上逻辑上隔离得相当好,因此您可以添加、删除、重新启动和部署应用程序,而不会干扰其他应用程序。
  • 虽然Docker容器可以部署为App Service,但您可能会发现AKS更适合。
    更多详情

Azure托管应用服务计划的术语有些令人困惑,但需要澄清:

  • 应用服务计划(服务计划)可以具有1个或多个托管VM示例,例如,1个服务计划扩展到3个示例= 3个要支付的VM。
  • 忽略免费/共享层(在您为每个应用程序支付的共享层上),也忽略独立层,您将为每个示例支付固定的每月费用
  • 您可以向每个应用服务计划添加多个应用,例如Web应用、功能应用、其他控制台应用和Docker镜像。这些应用将部署到计划中的所有示例。
  • 在标准层及更高级别上,您可以在应用上配置Deployment Slots,从而提供冒烟测试的能力,并在部署期间提供持续的正常运行时间,特别是在生产环境中。与任何已部署的应用一样,部署到部署插槽将消耗cpu、内存和io资源。

FWIW应用服务计划(microsoft.web/serverfarms)约占我们每月Azure总成本的40%
这种成本可能会迅速增加,特别是如果您正在运行多个隔离环境(Dev、UAT、Prod等),并且由于冗余或扩展原因需要每个环境扩展到多个示例。
在撰写本文时,美国东部虚拟机示例的指示性成本约为

  • Dev B1 1.75GB RAM为约15 pm Linux /约50 pm Windows
  • 产品P1 V2 3.5 GB RAM在Linux上约为80美元/在Windows上约为150美元

因此,尝试通过将多个应用程序部署到单个VM来最大限度地降低成本是很自然的,特别是在细粒度微服务企业或系统中。

ekqde3dh

ekqde3dh2#

我想补充一点,如果你有一个内存密集型应用程序,我肯定会将其隔离到自己的应用程序服务计划中。由于使用限制是在计划级别,你不希望由于失控的应用程序或应用程序遇到更高的流量而导致关键使命应用程序出错。另一个好的提示是设置自动缩放,并根据您的需求定义规则,这将防止在经历比计划分配的业务量更高的业务量时的停机时间。
虽然是的,但通过将应用程序分组在同一计划中绝对可以节省资金。

qaxu7uf2

qaxu7uf23#

是的,您可以通过在一个应用程序服务计划中托管multiple apps来保存成本。您不需要为每个Web应用程序提供单独的Web应用程序计划。
通常,您支付的价格是应用服务计划而不是Web应用(共享计划除外),因此您的成本不会随着您向同一计划添加更多应用程序而增加。

相关问题