【问题标题】:Multiple Function Apps with fewer Functions or few Function Apps with lots of Functions?功能较少的多功能应用程序或功能较多的功能应用程序很少?
【发布时间】:2016-11-29 22:50:11
【问题描述】:

我们目前正在 Azure 中为每个环境/每个区域部署一个 Function App。这些功能应用程序内部包含许多功能。将服务计划设置为消耗型并因此是动态的,我们对此非常满意,因为它降低了 ARM 模板中的操作复杂性。

不过,我们确实想知道,是否最好在每个环境中拥有更多“功能应用程序”并将我们的功能分布在它们之间?

这样做有什么真正的好处吗?因为我们认为动态服务计划会影响性能?

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    约旦,

    问题的答案实际上取决于您使用函数处理的工作负载类型。

    虽然缩放控制器会处理缩放以满足需求,但函数应用中的函数确实会在每个实例上共享资源,并且资源密集型(内存或 CPU)可能会影响同一应用中的其他函数。

    同一个Function App中的函数之间也没有进程隔离。它们都在同一个进程中运行(除了一些脚本语言,如 Python、Batch 等)和同一个应用程序域。因此,如果隔离是一个因素(出于安全、依赖管理、共享状态等原因),您可能需要考虑将功能拆分到不同的应用程序中。

    版本控制和部署是另一个值得考虑的因素,因为部署单元是一个函数应用程序(而不是单个函数)

    话虽如此,如果您的工作负载没有遇到资源消耗问题并且上述问题不是问题,正如您所指出的,在单个函数应用程序中运行多个函数可以显着简化管理,所以我不会如果没有必要,不要改变这种方法。

    我希望这会有所帮助!

    【讨论】:

    • 所以澄清一下,应用程序将扩展以适应整个应用程序的需求,而不是查看功能级别的需求?在消费计划中,您是针对规模增加收费还是始终在执行时收费?
    【解决方案2】:

    法比奥已经指出了我的主要担忧。您的所有功能都在同一进程中运行。因此,如果其中一个功能运行超时,则主机将被关闭(当然包括重新启动)。这也会影响您的其他功能。 我通过调用存储过程遇到了服务总线触发器的问题,该过程有时会达到超时阈值。我的函数应用重新启动大约需要 7 分钟,实时数据不再是真正的实时 ;-)

    【讨论】:

      猜你喜欢
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 2015-01-05
      • 2011-03-30
      • 2011-10-01
      • 2015-01-24
      相关资源
      最近更新 更多