2016-11-29 60 views
2

我們目前正在Azure中爲每個環境/每個區域部署一個功能應用程序。這些功能應用程序包含很多功能。將服務計劃設置爲消耗並因此是動態的,我們對此非常滿意,因爲它可以降低ARM模板中的操作複雜性。功能較少的多功能應用程序或具有很多功能的功能較少的應用程序?

我們很想知道,如果最好在每個環境中使用更多的「功能應用程序」,並將它們的功能擴展到整個環境中?

這樣做是否有任何實際好處,因爲我們在這種印象之下,性能將由動態服務計劃縮放?

回答

7

約旦,

的問題的答案真的取決於你與你的函數處理工作負載的類型。

儘管秤控制器將處理縮放以滿足需求,但函數應用程序內的函數確實在每個實例上共享資源,並且資源密集型(內存或CPU)可能會影響同一應用程序中的其他函數。

同一個Function App中的函數之間也沒有進程間隔離。它們都運行在相同的過程中(除了Python,批處理等一些腳本語言之外)以及同一個應用程序域中。因此,如果隔離是一個因素(由於安全性,依賴性管理,共享狀態等原因),您可能需要考慮將功能分成不同的應用程序。

版本和部署是另一個因素值得考慮,因爲部署的單位是一個功能應用程序(而不是單個功能)

隨着中說,如果你現在還沒有遇到資源消耗問題與您的工作負載上面提到的問題並不是一個問題,正如你所指出的,在一個功能應用程序中運行多個功能顯着簡化了管理,所以如果不需要這樣做,我不會改變這種方法。

我希望這有助於!