前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ticketmaster每天使用Jaeger跟踪1亿笔交易

Ticketmaster每天使用Jaeger跟踪1亿笔交易

作者头像
CNCF
发布2019-12-04 11:21:16
6120
发布2019-12-04 11:21:16
举报
文章被收录于专栏:CNCF

作者:Orate.io

微服务和容器增加了Ticketmaster软件系统的复杂性。它的工程师用Jaeger解决了调试问题。Jaeger是Uber在CNCF孵化的一个开源追踪工具。

一目了然

Ticketmaster的软件系统:

  • 每天有数十亿的交易
  • 一些剩余的单体
  • 300多项微服务(及其他服务)
  • 1000人负责产品和工程

问题:

  • 使用微服务高效地调试关键任务、产生收入的系统
  • 对开发者进行培训,并快速使他们跟上系统架构的速度
  • 寻找用于调试的日志聚合的替代方法,因为对于每天生成TB级日志数据的并发系统来说,后者不会扩展

解决方案:

  • Jaeger跟踪

结果:

  • 对三个地点由7个团队运行的50个服务的完整可见性
  • 需要更少的团队成员找到问题的根本原因
  • 加快新员工的入职速度,特别是加入随叫随到的员工

介绍

Ticketmaster Entertainment, Inc.是一家总部位于加州贝弗利山庄的票务销售和分销公司,业务遍及全球。它成立于1976年。2010年,它与Live Nation合并成为Live Nation Entertainment。

Ticketmaster的分布式软件系统是每天处理数十亿笔交易的高速公路。它由300多个微服务,以及其他类型的服务和单体应用程序组成。顺利运营对其在线销售平台和电话呼叫路由系统至关重要。延迟或错误很容易影响公司的门票销售和收入。

挑战

Ticketmaster团队发现传统的日志记录不足以监视和调试他们日益复杂的软件系统。他们将单体服务分解成数百个微服务,将工作负载迁移到AWS云,并部署到Kubernetes平台进行容器编排。这个系统的发展规模使团队成员过去所处理的任何事情都相形见绌。他们应该如何让所有这些不同的系统都可见,并在合理的时间范围内修复问题?

与此相关的是为这个不断发展的系统充分培训员工的新挑战,特别是在入职和随叫随到方面。不断增长的业务在大举招聘,并发现很难在不出现问题的情况下快速集成新的开发者。它还需要一个系统的最新可视化图表,以帮助工程师了解系统的方位,并尽快开始编写代码。

当Ticketmaster Engineering决定采用Jaeger进行端到端分布式跟踪时,可以一石二鸟。

解决方案

以前,该公司利用自己的关联id,使用日志将系统中的点连接起来。然而,不断增加的并发性要求一些能够独立响应和扩展的集中式软件。Ticketmaster首席系统工程师Louis-Etienne Dorval记得,他意识到日志不再是一个可行的解决方案。

“在每天摄入TB级日志的情况下,有一个关键时刻,我们决定寻找替代方案。我过去常常查看一个20行长的日志查询,其中包含几十个正则表达式(regular expression)、连接和搜索,这样才可以用我们的关联id,以有序的方式聚合来自10个服务的日志。必须有更好的解决方案。”

Ticketmaster高级总监Kraig Amador着手寻找解决方案,帮助该公司将整个软件系统可视化,并将这些点连接起来。

在仔细研究了市场上的选项之后,Ticketmaster团队选择了Jaeger跟踪平台。

他们喜欢这个工具是开源的。这意味着他们可以准确地看到代码在做什么,并且可以根据需要贡献特性。此外,对于这样规模的组织,采用昂贵的专有软件可能是昂贵和费时的。在Jaeger的帮助下,他们可以在自己的基础设施基础上小规模起步,而无需预先作出重大承诺。

根据Amador:

“Jaeger的追踪帮助我们实现了跨平台不同版本的可观察性能力,以及它们如何相互集成,以及如何随着时间的推移而发展。”

Ticketmaster首先检测应用程序中的基础设施层,从而更快地实现跨服务的一致可见性。随之而来的还有一系列其他好处。

系统得到的好处

Jaeger旨在提供软件系统的宏观和微观视角。

Ticketmaster的工程师对Jaeger及其可视化整个系统的能力感到兴奋。现在,他们可以使用DAG视图和Gantt Chart查看请求流,Gantt Chart中注释了关于执行的SQL查询、延迟信息和跟踪差异的信息。Jaeger最近推出的Trace diffs在结构方面比较两条轨迹。它强调了执行树的差异,并在span图的顶部使用颜色编码系统。

抽样是一种只记录所有跟踪的子集的技术,以保持存储相关账单的可管理性。Jaeger的远程控制采样(Remotely Controlled Sampling)允许中央配置和管理采样策略。Ticketmaster依靠这个特性在运行时根据每个服务调整抽样,这样团队就不需要每次都重新部署来调整抽样。

Jaeger的自适应采样(Adaptive Sampling )是一种先进的远程控制采样。它具有常规采样所没有的两个独特特性。a)保证低使用低QPS(Queries Per Second,每秒查询次数)从服务端点收集最少的跟踪;b)允许对每个端点上的抽样策略进行细粒度控制,而不是基于服务级别或全局。

Jaeger集成了基于Kafka的摄取,因此用户可以构建数据挖掘工具。例如,他们可以使用Apache Flink流作业,在跟踪数据的基础上构建实时服务图,Ticketmaster已经对此进行了试验。这在过去是不可能的,因为没有其他技术可以复制由跟踪捕获的数据。

工作流得到的好处

Jaeger帮助Ticketmaster团队快速地显示正确的信息。UI中有一些特性,比如“自定义标记链接”(“Custom Tag Links”),可以更容易地进行搜索。当出现停机时,它们可以定位显示“产品代码”之类标记的跟踪。点击一个标签就可以显示该服务的信息,比如谁在呼叫该服务,使用哪个Slack频道,等等。这减少了问题出现时解决问题的时间。

由于Jaeger的帮助,Ticketmaster团队成员的入职、工作流和随叫随到流程现在运行得更加顺畅。它现在是工程师入职过程中不可或缺的一部分。它即时提供了系统和服务之间的依赖关系,帮助新员工理解系统体系结构。Jaeger正在成为一个不断更新的组织系统地图。

总结

Ticketmaster现在拥有超过50个测仪化服务和9组积极使用Jaeger的工程团队。因此,该公司显著改善了随叫随到的流程和结果。Louis-Étienne Dorval和整个团队对随叫随到的流程和工作流程的满意度迅速上升。

“在分布式系统中,常常存在一个相当复杂的服务调用链。使用Jaeger,随叫随到负责的工程师能够找到问题的可能根本原因,而不需要联系负责链上每个步骤的开发者。例如,如果问题是由服务调用层次结构中的第5个服务引起的,Jaeger会将其可视化,并且随叫随到的工程师不需要呼叫任何人,只需要呼叫负责该服务的人。”

Ticketmaster认为,其他使用分布式系统的企业肯定也能从Jaeger中看到类似的好处。该团队建议,考虑Jaeger的人,从总体上进行跟踪,从小处着手,测量进展,边走边学。对Dorval来说,文化是关键。

“首先建立文化。从小事做起,让人们参与进来,找出可能的传播者,一步一步地前进,展示结果,并尽可能利用所学到的经验教训。”

Amador建议从业者欢迎将跟踪作为在大规模运行软件系统时不可或缺的工具。对于今天复杂的分布式IT,跟踪、日志和度量构成了一个强大的监视和调试三重奏。

“就像使用日志和度量一样,我从来没有听说过不进行跟踪的好理由!”

感谢Yuri Shkuro。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档