抛弃Telemetry,用Faythe连接OpenStack和Prometheus

当涉及到云时,自动缩放是一种必须的能力。OpenStack已经提供了多种方法来自动缩放虚拟机,包括Heat(Telemetry栈)。然而,Telemetry主栈涉及到评估过程中是否需要一个自动缩放,要么没什么用,要么出故障。在本文中,我们将介绍一个新的工具Faythe,一个我们自己构建的开源软件,作为云平台(OpenStack)和监控系统(Prometheus)之间的桥梁,被用来解决越南最大电信公司Viettel的自动缩放问题。

传统的Heat&Telemetry自动缩放方法

基本思想

自动缩放是三个步骤的组合:Metering、Alarming、Scaling。

Metering服务收集有关服务/实例/主机负载的数据。Alarming服务评估数据以确定是否需要添加scale out/scale in,这将触发Scaling服务上的scale out/scale in操作。这个想法很简单。

这种方法由两个主要组件组成,它们与OpenStack基础设施一起打包和分发。

Orchestration:提供自动缩放的核心组件是Orchestration(heat)。使用Orchestration来定义使用人类可读的YAML模板的规则。这些规则用于评估基于Telemetry数据的系统负载,以确定是否需要向堆栈中添加更多实例。当负载下降时,Orchestration可以再次自动删除未使用的实例。

Telemetry:Telemetry执行OpenStack环境性能监视,收集实例和物理主机的CPU、存储和内存利用率数据。

Telemetry还涉及三个较小的服务:

——Ceilometer–Monitoring Service:一种数据收集服务,提供跨所有OpenStack核心组件规范化和转换数据的能力。

——Gnocchi–Storage Service:提供时间序列资源索引、指标存储。

——Aodh–Alarming Service:根据定义的规则,对Celimeter收集并存储在Gnocchi中的样本或事件数据触发操作。

Telemetry的问题

Rocky版本中的Telemetry项目缺乏开源社区的贡献,这是决定开源项目寿命的因素之一。

到Queens版本时,Telemetry87项目已经失去了大多数开发人员。Aodh和Panko的开发已停止。

Gnocchi于2017年6月被移出OpenStack。Gnocchi不再被维护。

这三个项目是相互依赖的,而它们是分开开发的。这导致一个项目中的一个小变化可能会导致整个系统崩溃。此外,由于Gnocchi不再是OpenStack的一部分,因此它们之间的不同步开发问题是不可避免的。

根据我们的经验,由于Celimeter工作负载,RabbitMQ承受了很大的负载。如果Celimeter卡住了,它的队列就会溢出。

Telemetry仅收集有关虚拟机操作系统和OpenStack物理主机的信息。Telemetry不可能监视虚拟机上运行的服务和应用程序。此外,更改和实现Telemetry更多个功能并不是简单的任务。这包括编写代码、编译代码、打包、测试和部署到实际系统。

Telemetry不适合我们的生态系统。我们选择了Prometheus来监控整个基础设施系统和应用程序。在Prometheus旁边切换/设置其他系统(如Prometheus)并不理想。

用Faythe和Prometheus实现自动缩放

工作原理

实际上,这并不是一种全新的方法,它利用Orechestration来对新的Alarming Service(Faythe)和监控服务(Prometheus)进行缩放操作。如前所述,自动缩放是三个步骤的组合:Metering,Monitoring,Scaling。OpenStack Orchestration已经提供了极好的扩展服务Heat。新方法不再使用OpenStack Telemetry进行Metering和Alarming,而是引入了Faythe,这是我们自己构建的一个开源软件,它是云平台(OpenStack)与监控系统(Prometheus)之间的桥梁。

Faythe的好处

Faythe是我们创建的项目之一,它是在我们在Viettlet Network工作时设计、开发和实施的。它的出现填补了Prometheus和OpenStack之间的空白。

Faythe支持Prometheus收集指标和PromQL以评估并决定是否需要报警。

PromQL是一种非常好的查询语言。

广泛的exporter:这是Prometheus最有价值的一点。开源社区正在创造越来越多的exporter,这意味着Prometheus可以收集到新的指标。

灵活:除了CPU或内存使用等系统因素外,用户还可以评估任何exporter可以收集的任何指标,例如JVM指标、HTTP请求相关指标。例如,你可以根据Django HTTP请求的数量定义一个缩放规则。

Faythe很容易配置。

Faythe有自己的集群机制。

Faythe不仅提供了用户友好的UI,还提供了完整的API。

原文链接:

Auto-scaling in Viettel Networks Without OpenStack Telemetry - Superuser

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值