【问题标题】:Programatically scaling rackspacecloud servers up and down through API通过 API 以编程方式向上和向下扩展机架空间云服务器
【发布时间】:2010-08-05 20:01:25
【问题描述】:

我今天与 Rackspace 技术支持人员交谈,正在寻找一种简单的解决方案来根据负载向上/向下扩展我的服务器,他说这可以通过他们的 API 以编程方式完成。

之前有没有人真的这样做过,或者对如何最好地解决这个问题有任何建议?在我从头开始重写之前,我很想知道是否有人有一些大纲代码或注释。

谢谢! 沃克

【问题讨论】:

  • 您是在问如何使用他们的 REST 服务(如果您之前处理过 REST,这很简单),或者如何准确衡量服务器上的负载?
  • 一直在考虑这个问题...我能想到的一个问题是重建服务器需要花费很多时间,因此您可能需要部署一个负载均衡器和2个应用程序服务器,其中一个处理负载,而另一个正在调整大小,反之亦然。

标签: php api codeigniter rackspace-cloud


【解决方案1】:

Walker,我建议您提前准备好服务器,然后使用监控解决方案触发的脚本启动和停止它们。一旦您能够以自动化方式始终如一地部署质量认可的服务器,您仍然需要大约 15 到 20 分钟来创建服务器。因此,无论哪种方式,您都需要在需要时准备好资源。

一旦您准备好您的服务器库,就可以准备您的监控解决方案了。 Nagios 可以很好地完成这项任务。任何可以使用触发器等响应事件的监控解决方案都可以使用。

有几种方法可以扩展,了解如何管理利用率。

利用率

这对我们来说是该项目独有的,它是系统负载/每秒请求数 + IO 的聚合度量。至少考虑平均负载。在我们的场景中,我们想了解是什么让我们的系统更加繁忙,并制定了我们自己的利用率措施。我们将其插入自定义监控解决方案。衡量我们应该扩大或扩大规模的利用率。

扩大规模

涉及扩展到更大的服务器来处理请求,它的字面意思是为了处理请求,您必须迁移到更大的服务器。或者另一种思考方式是,如果在更大的服务器上提供请求,请求的成本将会降低。

根据我的经验,短期内扩大规模的需求会减少。如果 您始终需要最低规格的服务器来处理负载 那么您应该会看到平均利用率水平在增长。一旦 利用率水平始终保持在 60% 左右,是时候开始了 扩大规模。

扩展可能代价高昂,因此如果您的负载达到峰值,您最好将另一台服务器添加到池中,这就是 扩展 的工作原理。

向外扩展

对于大多数项目而言,横向扩展在短期内更为常见,该过程涉及向环境中添加更多主机并使用负载平衡器分发请求。当利用率水平达到 60% 或更高时,监控解决方案中的触发器会触发启动主机的请求。当负载返回到中值时,监控解决方案会关闭服务器。它应该是自动的,并且在关闭服务器时,利用率水平应该会提高。我们尝试将利用率保持在 40% 作为环境的中位数。

复杂性在于自动配置负载平衡器以查看新主机。我知道有人只是预先配置平衡器以使用健康措施,即使在服务器关闭后也是如此。负载均衡器不会向死主机提供流量。当服务器启动时,负载平衡器应该会再次看到它并开始自动向服务器提供请求。

最终解决方案

部署一个最小可行环境并设置监控以监控您自己的利用率水平。创建在您选择的环境中启动服务器的触发器。触发器应该执行一个触发对 Rackspace 的调用并启动服务器的请求。这是一个好的开始。

希望这对您有所帮助,并且您继续构建成功的环境。

【讨论】:

  • 很好的答案,虽然我很想听听更多关于设置的信息。你会推荐任何工具来暴露服务器的负载吗?您使用了哪种负载均衡器? Rackspace 的负载平衡解决方案还是商业/OSS 产品?
  • 使用您熟悉的负载均衡器或反向代理。这并不重要。但它可能更容易与 Rackspace 负载均衡器交互,因为它们有一个 api。我们主要使用 Rackspace 负载均衡器,有时在应用服务器上使用 OSS 产品来进行更精细的请求路由。 Nginx 和 HAproxy 是我们使用过的一些 OSS 产品示例。
猜你喜欢
  • 1970-01-01
  • 2022-08-22
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
  • 2020-09-01
  • 2019-03-02
相关资源
最近更新 更多