我们目前正在 Azure 中的每个环境/每个区域部署一个 Function App。这些功能应用程序内部包含许多功能。将服务计划设置为消耗并因此动态后,我们对此相当满意,因为它降低了 ARM 模板中的操作复杂性。
但我们确实想知道,是否最好为每个环境提供更多“功能应用程序”并将我们的功能分散到它们之间?
这样做有什么真正的好处吗?因为我们认为动态服务计划会提高性能?
最佳答案
乔丹,
这个问题的答案实际上取决于您使用函数处理的工作负载类型。
虽然缩放 Controller 将处理缩放以满足需求,但函数应用程序中的函数确实在每个实例上共享资源,并且资源密集型(内存或 CPU)可能会影响同一应用程序中的其他函数。
同一 Function App 中的函数之间也没有进程隔离。它们都在同一个进程中运行(除了一些脚本语言,如 Python、Batch 等)和同一个应用程序域中。因此,如果隔离是一个因素(出于安全性、依赖管理、共享状态等原因),您可能需要考虑将功能拆分到不同的应用程序中。
版本控制和部署是另一个值得考虑的因素,因为部署单元是函数应用程序(而不是单个函数)
话虽如此,如果您的工作负载没有遇到资源消耗问题,并且上述问题也不是问题,正如您所指出的,在单个功能应用程序中运行多个功能可以显着简化管理,所以我不会如果没有必要,就不要改变这种方法。
希望这会有所帮助!
关于azure - 功能较少的多功能应用程序或功能较多但功能较少的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40877236/