使用Azurestream量pipe理器立即增加容量

我在Azure上有一个RESTnetworking服务,负载非常高但可变,所有的设置都是使用Paraleap进行自动调整的,这样它可以处理高峰期,但是在更安静的时候降低成本。

我从来没有能够find一种方法,使用任何指标来预测服务器何时会实际上最大化之前开始最大化! 所以我现在的解决scheme是一个单独的程序,不断检查服务器是否启动,是否开始返回错误,然后告诉服务器开始向一定比例的用户返回错误消息,返回一个简单的错误占用较less的服务器资源,允许大多数用户仍然有服务,然后它告诉Paraleap增加实例的数量。增加实例通常需要10-15分钟,所以在这段时间事情并不是很好有些用户会得到错误,但最终还是会有新的实例join,恢复正常的服务。

我希望Azurestream量pipe理器是我的解决scheme,我的希望是我可以使用故障转移模式,当我的主要Web服务检测到故障时,我可以将x%的请求转移到备份,这将返回主 – 服务到一个工作状态..同时,我会独立地告诉主要的networking服务规模,当它完成后,交通pipe理员将把一切都转移回主要的networking服务。 换句话说,当我启动新的实例时,我会立即增加容量来填补空白。

不幸的是,我似乎无法find办法做到这一点! 它看起来像stream量pipe理器,在检测到故障时,将100%的stream量转移到备份。 所以我需要超过我的服务器容量的两倍以上的时间,即有主要的Web服务的X实例,X + 1在备份等待,主要故障潜水员100%请求备份这将有更多的容量,那么我会推出更多的主要实例,最终stream量pipe理器会发送所有的请求到那里,然后我需要添加更多的实例备份,让它坐等待。 这将是巨大的矫枉过正,将花费我一笔财富!

有没有人对我如何更好地pipe理这个问题有任何build议?

谢谢!

史蒂文 – 听起来像你需要花一点时间看你的设置,也需要考虑成本与可用性。

Azure虚拟机通过部署到其中的Cloud Service支持自动扩展,并使用Cloud Service Autoscalefunction来驱动新实例(必须能够自动configuration自己)。 在Azure文档网站上可以find一个很好的概述。

如果您发现在扩展之前返回了错误,则需要为缩放触发器设置一个较低的阈值(例如较低的CPU阈值),或者运行N + 1configuration,其中N是您的最小空闲数量的虚拟机使用场景。 这是为了减less您的API的TTSO 。

如果你没有一个已经运行的单位可用,你永远不会达到瞬间的规模。

最后,只有在使用最less延迟路由的情况下,stream量pipe理器才能帮助传播负载,这意味着在不同的Azure地理位置运行API的不同实例。 如果这不是你需要的,那么stream量pipe理器不是解决方法。

完全披露:我是Elastisys AB的软件架构师Lars Larsson。

您所描述的正是Elastisys云平台可以帮助您做的事情:收集监控数据,并可以预测性地扩展以满足需求,而不仅仅是在您的服务已经受到影响时才作出反应。 这些algorithm基于瑞典于默奥大学(UmeåUniversity)分布式系统(Distributed Systems)团队的实地研究。

但是,不支持与Azure接口(支持AWS,OpenStack和CityCloud在我们的GitHub页面上 )。

如果您愿意作为我们的用例,请联系Elastisys ,因为我们在将来的软件版本中构buildAzure支持。