2016-11-29 17 views
2

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

我们很想知道,如果最好在每个环境中使用更多的“功能应用程序”,并将它们的功能扩展到整个环境中?

这样做是否有任何实际好处,因为我们在这种印象之下,性能将由动态服务计划缩放?

回答

7

约旦,

的问题的答案真的取决于你与你的函数处理工作负载的类型。

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

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

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

随着中说,如果你现在还没有遇到资源消耗问题与您的工作负载上面提到的问题并不是一个问题,正如你所指出的,在一个功能应用程序中运行多个功能显着简化了管理,所以如果不需要这样做,我不会改变这种方法。

我希望这有助于!