2016-03-02 66 views
3

Azure的文档的扩展研究后,我们还是很怀念的天青如何内置的云服务自动缩放作品的一些重要细节。我们的云服务是具有单一Web角色的简单ASP.NET应用程序。默认情况下,我们将部署到2个实例以获取SLA覆盖范围,并且每次只按一个实例按比例放大或缩小。我们使用启动任务来配置IIS并在csdef中定义它们。我们使用RoleEntryPoint来指定OnStart事件中的自定义热身逻辑。我们确信启动任务和OnStart不会因错误而失败。Azure云服务内置自动缩放如何工作?

以下问题从我的观察得到的,并打算如果这是预期的行为,以澄清。

  1. 当云服务按比例向上或向下当前会有取出负载平衡器的某个时间短量并不会服务器请求每个实例。这是真的吗?

  2. topologyChangeDiscovery在csdef =“闯天关”不改变这种行为,并在规模化经营情况仍然取出负载平衡器。这是真的吗?

  3. 如果在云服务N个实例,并将其扩展到N + 1将会有一些时候,只有N-1情况下的服务请求。这个时间等于N *(单实例配置更改所需的时间)。这是真的吗?

  4. 有没有办法设置自动缩放,以确保当前在云服务中规模化经营将成为没有中断请求的所有实例? (通过任何手段不仅使用Azure的内置自动缩放)

UPDATE:

我已经进行测试,以实际检查什么情况下是服务期间大规模事件的请求。简单的控制台应用程序轮询云服务并记录哪些实例响应请求。我已将Azure门户中所有更改的屏幕截图添加到日志文件中。

下面是结果:从2到3个实例 扩大: https://gist.github.com/samfromlv/8029ff0b3fdb3e6bd02a#file-scaleuplog_withscreens-txt

比例从3降到2实例: https://gist.github.com/samfromlv/8029ff0b3fdb3e6bd02a#file-scaledownlogs_with_screens-txt

控制台应用程序的源代码,并记录格式描述: https://gist.github.com/samfromlv/8029ff0b3fdb3e6bd02a

+0

你的问题很相似,[这个问题](http://stackoverflow.com/questions/22252802/azure-autoscale-restarts-running-instances),其中有一些讨论的答案行为。 –

+0

在我们的案例中没有角色回收(IIS进程未重新启动)。你特别提到的问题是关于什么导致回收的问题。 – samfromlv

回答

0

当你处理1个实例或1个实例时,你会遇到不愉快的结果,这是因为Azure需要exis将负载平衡器中的“良好”实例关闭。

假设你只处理2+情况下,从来没有缩减低于2分的情况下,这里是基于为天青

  1. 只有当运行CloudMonix/AzureWatch自动缩放服务的5yrs一些回应有如上所述仅剩1个监管

  2. 爆炸对负载平衡器应该没有什么影响。但是,如果在拓扑事件发生时所有实例都重新启动,请确保在Web/WorkerRole.cs中的拓扑更改事件期间不会意外返回'true'以重新启动。如果您有N个实例,其中N> = 2 ,它可以扩展到N + 1,大概需要10分钟才能到达N + 1。在这种情况下,你不应该有N-1个活跃的。微软有一个文档解释了它如何快速扩展到多个实例,但它与启动实例计数无关,而是与它启动的新实例的数量有关。我相信多达100个新实例可以保证在30或60分钟内完成。不要在此引用我的意思。

  3. 您可以使用第三方服务,例如我所隶属的一个,CloudMonix。但在所有情况下,标准缩放问题都适用于处理1个实例并试图缩小或缩小它。

HTH

+0

你好,谢谢你的回复。我们观察到内置Azure自动缩放的不同行为,以用于从2个实例缩放到3个实例的情况。请检查原始问题中的更新以获取详细的测试结果。这是预期的行为?在这种情况下,CloudMonix行为与Azure内置自动缩放不同吗? – samfromlv