博客/社区

使用Grafana Stack、OpenTelemetry和k6测试左移可观测性

2021年12月6日3分钟

开发不再是从a点到b点的线性旅程,随着越来越多的项目转向有机增长的状态,用户反馈和不断的实验越来越成为规范,如果不是工程的标准的话。

摩根大通平台工程执行董事Vinodh Ravi表示:“为了支持这种快速试验,我们开始采用新的工作方法和实践。”

但是有两个截然不同的认知循环必须相互联系:开发人员必须通过持续构建和部署来创建应用程序的方法与devops工程师必须维护应用程序并使代码更可靠和更有弹性的方法不同。

Ravi说:“我们现在的系统有很多不断变化的活动部件。”这就是为什么他认为,在开发过程中,实验观察和开发人员的叙述可以作为有效的叙事来预测产品。

这些预测可以用来建立可靠的系统来检测和测量缺陷,使用负载测试服务,例如k6再加上混沌工程这样的平台小鬼帮助代码进化并创建更好的反馈循环。

在他的ObservabilityCON 2021会话题为“摩根大通的可观察性驱动开发”Ravi强调了可观察性对于这种增量学习过程也是至关重要的,他强调了“从转向左侧弹性实践中获得的好处,以及如何通过这样做,我们可以使我们的业务快速发展。”

为什么可观察性=基础设施创新

在增量式学习中,有大量的数据常常会分散团队的注意力,因为他们试图弄清楚什么对推动项目前进有益,什么只是噪音。

Ravi说:“为了放大和抑制来自这些反馈循环的信号,我们需要良好的可观测性工具。”“拥抱开源社区项目,比如洛基节奏k6是基础设施自动化和基础设施创新的前进之路。”

Ravi概述了他的可观察性驱动开发战略的三个关键组成部分:

  1. 利用开放标准,比如OpenTelemetry和开源库,如Sqlcommenter
  2. 结合开源工具,如Loki、Prometheus和Tempo
  3. 引入像Open Annotation这样的规范和像Hypothesis这样的项目,为团队提供一个平台,让他们进行有意义的对话,从中可以推导出上下文。

拉维随后演示了一个名为Climeat的假想项目的端到端演示,该项目的任务是劝阻人们吃肉,并有效减少气体排放。

Ravi模拟了一个三人团队,使用OpenTelemetry仪器在分布式系统上进行了实验,使用k6模拟负载,使用Gremlin运行混乱场景。然后,他利用Loki和Tempo的原生数据关联功能,自动从实验中收集见解。

结果呢?通过将数据与反馈和协作相结合,减少了检测时间。

Ravi说,通过对可观察性工具应用与关键代码软件相同的严格性,“我们接受了不断尝试处理复杂问题的复杂性。”“解决方案是我们开始以不同的方式思考,并在设计开发阶段的早期就建立这种类型的卫生。”

拉维对如何开始的建议?“开始信任开源社区,关注这里发生的所有精彩项目和贡献。”

要查看Ravi完整的端到端演示,并了解更多关于可观察性驱动开发的方法,观看他完整的ObservabilityCON演讲.我们所有的ObservabilityCON 2021年会议现在可以按需查看。