利用时序平台深入了解AWS支出
作者:Chris Churilo / 用例,产品,开发者
2019年11月15日
导航至
“以前,没有这样的洞察力了解您的支出在哪里,它就像一个黑盒,”罗伯特·艾伦说。他是位于波士顿的霍顿·米夫林·哈court(HMH)工程总监,也是公司Bedrock平台技术服务团队的一员。
霍顿·米夫林·哈court(HMH)是一家近200年的出版公司,其内容通过多种媒体提供。作为全球学习公司,HMH专注于学前到12年级的教育内容、服务以及为当今不断变化的环境提供的尖端技术解决方案。
HMH团队希望获得实时可见性、价值实现时间和控制力,以更好地将业绩与基础设施运营的受托责任相一致。他们面临的三个业务挑战是
- 实时查看其AWS支出,这涵盖了多个业务单元和许多开发团队的多个账户。公司需要对其众多账户进行实时成本可见性分析,每个账户都管理着自己的服务。
- 优化其DevOps监控(以优化每个产品的基础设施成本)。工程师的动机只是让基础设施工作,而并没有真正关注成本。他们缺乏对基础设施决策成本的真实反馈闭环。
- 收集和跟踪KPI以衡量公司在线教育业务的性能。HMH团队一直使用Elasticsearch收集大部分KPI信息,以非常机械的方式使用日志解析。他们需要一个更动态和自动化的方式来跟踪这些指标。
这三个挑战有一个共同点:它们都涉及到时序数据。鉴于时序工作负载的独特属性——涉及更多的数据点、更多的数据源、更多的监控和更多的控制——HMH意识到他们需要一个为时间戳数据专门构建的企业级时序平台。
一个时序平台解决多个问题
HMH选择了InfluxDB Enterprise,这是开源核心TICK堆栈的加固版本。他们充分利用了InfluxDB Enterprise的独特功能集——如高可用性、水平扩展性和LDAP和OAuth支持。
他们目前有大约25个功能团队正在解决公司内部特定产品或平台服务的问题。每个团队都能使用InfluxDB维护自己的数据库和保留策略。
HMH还部署了InfluxData的开源度量收集代理Telegraf,以优化支出和性能并指导决策。Telegraf证明非常适合他们的基于容器的环境,因为它可以适应收集指标的特殊方式,可以在容器中运行并与给定进程一起本地监控。
由于Telegraf可以
- 消耗基础设施所有方面的指标
- 轻松开发用于指标捕获的自定义插件和应用程序
- 一次捕获,由多个服务摄取
- 在一对多指标源上操作
他们还使用了InfluxData的Kapacitor,该平台的原生数据处理引擎。Kapacitor可以处理来自InfluxDB的流式和批量数据,并通过其编程语言TICKscript在实时中对数据进行处理。Kapacitor强大的功能帮助解决了HMH的重复性数据挑战
- 团队维护自己的工作流程
- 各种工作流程的模板化
- 编写用户自定义函数(可以与Kapacitor通信以处理数据的函数)的能力。
- 针对PagerDuty、Slack、Webhooks等的警报
- 高级降采样和转换工作流程(使他们能够保留最重要的数据,以便仍然可以查看数据的整体趋势)
霍顿·米夫林·哈考特的DevOps监控和实时分析解决方案
HMH的DevOps监控和实时分析解决方案还使用InfluxDB来监控AWS计费。AWS程序性计费提供了非常详细的数据(一种在大量CSV文件中提供的多计费形式)。从本质上讲,这些数据每小时汇总一次。用户可以使用自定义标签或其他形式的报告文件在其维度上进行详细或广泛的描述。
HMH发现,当启用时间序列索引(TSI)时,InfluxDB Enterprise在处理高基数数据方面表现得非常好。基数是数据库存储的唯一时间序列的数量,TSI使得系列的数量不受服务器硬件内存量的限制。
每个月,HMH从AWS中处理约2300万个行项目(AWS成本和用量报告包含AWS账户使用的每个唯一组合的AWS产品、使用类型和操作的行项目)。每个行项目都转换为点,并以每小时粒度,因此每个行项目代表一小时的计费。
使用InfluxDB灵活的内置保留策略功能,HMH定制了数据存储时长以符合其需求。他们为两种不同的数据类型设置了两个保留策略:一个为期5周的保留策略(存储未开票数据,用于日常监控和调查目的)和一个无限保留策略(存储所有已开票数据,永不过期)。
为了在应用程序/阶段级别详细进行成本分析报告,他们使用自定义标签(用户或AWS分配给AWS资源的标签)。成本分配标签激活后,AWS使用它们在成本分配报告中组织资源成本,以方便分类和跟踪AWS成本。
至于捕获遥测KPI数据,他们使用Telegraf。KPI数据存储在InfluxDB中作为事件、计数器和指标。由于HMH团队现在具有高基数的灵活性,他们能够收集这些指标并使用时间序列数据进行汇总。
将实时可见性转化为商业价值
凭借InfluxDB Enterprise提供的实时可见性、价值实现时间和控制能力,霍顿·米夫林·哈考特的Bedrock平台技术服务团队能够现在
- 执行数据钻取以发现公司的产品如何消耗AWS服务
- 查看成本变化以识别预期与已知之间的偏差
- 查看按产品、每小时成本划分的费用,并按某些产品细分其运行速率。
- 使数百名工程师能够共存并开发,而不会对同事的工作产生不利影响
- 对收集哪些指标以及如何收集它们有更多的控制权
InfluxDB时间序列数据库的通用性使霍顿·米夫林·哈考特能够将其用于各种应用程序,以监控计费指标、DevOps指标和KPI。
通过阅读完整的案例研究,了解更多关于InfluxData的使用情况。