功能较少的多功能应用程序或具有多种功能的功能应用程序很少?

Jor*_*dan 7 azure azure-functions

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

我们确实想知道,如果最好在每个环境中拥有更多"功能应用程序"并在其中传播我们的功能吗?

这样做是否有任何实际好处,因为我们的印象表现将由动态服务计划扩展?

Fab*_*nte 12

约旦,

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

虽然缩放控制器将处理扩展以满足需求,但功能应用程序内的功能确实在每个实例上共享资源,而资源密集型(内存或CPU)可能会影响同一应用程序中的其他功能.

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

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

话虽如此,如果您没有遇到工作负载的资源消耗问题,并且上述问题不是问题,正如您所指出的那样,在单个功能应用程序中运行多个功能可以显着简化管理,因此我不会更改如果没有必要这样做的话.

我希望这有帮助!