写点什么

亚马逊发布分布式跟踪服务“AWS X-Ray”的预览版本

2016 年 12 月 13 日

在美国拉斯维加斯举行的 AWS re:Invent 2016 大会上,亚马逊发布了一款名为 AWS X-Ray 的分布式跟踪服务,它目前处于预览版本,能够在 AWS 的 12 个公开 Region 中使用。AWS X-Ray 类似于 Google 的 Dapper Twitter 的 Zipkin 以及 OpenTracing API ,它能够帮助开发人员分析和调试分布式应用,比如使用微服务架构风格所构建的应用。它提供了一个基于 Web 的 UI,能够展现拓扑化的“服务地图”、图形化格式的分布式跟踪以及所有跟踪记录的可查询列表。

正如 Jeff Barr 在 AWS 博客上所讨论的那样,在过去的几年间,软件应用的设计和部署发生了一些变化,转向了创建复杂的分布式“基于服务”的系统。因此,软件应用的调试行为也随之发生了变化,当我们要查看应用扩展的行为模式时更是如此。

通过组合使用云计算、微服务以及基于通知的异步架构,系统会被拆分为成百上千的组成部分,而且这些组成部分还会处于不断的变化之中。在这样复杂的系统中,识别和解决性能问题会变得更加具有挑战性,同时面临的挑战的还要将单个服务级别的监测结果合成为有意义的高层级结果。

这些分布式系统都是基于云的,系统的执行过程会遍历应用服务、容器、计算实例、数据库即服务(database-as-a-service)和消息即服务(messaging-as-a-service),因此对于构建人员和运维人员来说最主要的挑战在于“跟踪线程(following-the-thread)”。

当请求在部署于 AWS 环境中的整个系统中遍历时,AWS X-Ray 会对请求进行跟踪。应用会由多个服务和资源组成,AWS X-Ray 会将单个服务和资源生成的数据集合起来,从而提供“系统如何运行的端到端视图”。AWS X-Ray 的跟踪特性能够跟踪任意的请求路径,从而定位系统中的哪一部分出现了性能问题。AWS X-Ray 还提供了注解,能够在跟踪上附加元数据,从而能够为跟踪数据添加标签并对其进行过滤。

根据发布 AWS X-Ray 的 AWS 博客文章描述,AWS X-Ray 能够与 Amazon EC2、Amazon EC2 Container Service (Amazon ECS)、AWS Elastic Beanstalk 和 Amazon API Gateway 协同工作。 AWS X-Ray SDK 可以用于 Java、Node.js 和.NET 所编写的应用中,应用需要基于上述的服务进行部署,这样的话,就能跟踪针对应用所发起的请求,应用可能会跨多个 AWS 账号、AWS Regions 和 Availability Zones。针对 AWS Lambda 的支持很快也会发布。

AWS X-Ray 在实现“跟踪线程”时,如果请求上没有特定的 HTTP 头信息(包含一个唯一 ID)的话,就会增加一个这样的头信息,然后将这个头信息传递到请求处理的其他层中。在每个点收集到的数据称为 segment(类似于 OpenTracing API 规范中的 Span ),会存储为一段 JSON 数据。segment 代表了一个工作单元,其中包含了请求和响应的计时,另外还会有子 segment 来代表更小的工作单元。 OpenTracing 倡议是由 CNCF 支持的, Adrian Cole 是该项目的核心提交者,他在 Twitter 上称 AWS X-Ray segment 数据格式具有“很小巧的结构”。

据 AWS X-Ray 的文档所述,具有“统计意义”的 segment 样本会传送到 X-Ray 上。AWS X-Ray SDK 不会将跟踪数据直接发送到服务上,而是将跟踪数据发送到一个 AWS X-Ray daemon 上,daemon 必须运行在相关的 EC2 实例或者位于每个 ECS 容器中。daemon 会收集多个请求的 segment 并采用批处理的方式进行上传。所收集到的跟踪数据可以在 AWS X-Ray 基于 Web 的 UI 中进行查看,也可以通过 AWS X-Ray API AWS CLI 进行访问。

关于 AWS X-Ray 的更多信息,可以参考 AWS 博客上名为“AWS X-Ray——洞悉分布式应用”的文章、 AWS X-Ray 产品页面以及 AWS X-Ray 的文档。关于 AWS re:Invent 宣布的其他信息和产品发布消息可以参考 InfoQ 上名为“AWS re:Invent Recap”的文章。

查看英文原文 Microsoft Open-Sources P Language for Safe Async Event-Driven Programming

2016 年 12 月 13 日 18:001197

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

架构师训练营第三周学习心得

路人

极客大学架构师训练营

Week 03 作业

鱼_XueTr

组合模式

week3作业

张健

设计模式

wei

架构师训练营第三周命题作业

sljoai

架构师训练营学习总结(第三周)

战峰

Week 03 学习总结

Jeremy

【架构师训练营 - 作业 -3】单例和组合

Andy

关于设计模式学习的简短总结

林昱榕

总结 极客大学架构师训练营

week3 总结-面向对象的设计模式

a晖

week03-作业

seki

架构师训练营 第三周 作业

CR

极客大学架构师训练营

用设计模式重构那些烂代码

鸠摩智

第三周-作业-设计模式,单例模式与组合模式

JI

第3周总结

娄江国

第三周命题作业

Geek_a327d3

作业

设计模式-单例模式和组合模式

阿飞

架构 极客大学架构师训练营

Week 03 总结

鱼_XueTr

设计模式 OOD

2020-06-20-第三周学习总结

路易斯李李李

深入学习单例模式和组合模式

拈香(曾德政)

单例模式 极客大学架构师训练营 组合模式

【架构师训练营 -Week-3】总结

Andy

Week03-总结

张磊

面试官:你们公司用什么框架写UT

java金融

Java 单元测试 powermock

设计模式--组合模式demo

破晓_dawn

架构师训练营 -week03 作业

GunShotPanda

架构师训练营 week3 - 学习总结

devfan

第三周作业

慵秋

极客大学架构师训练营

第三周学习总结

潜默闻雨

架构师训练营第 0 期第3周作业

upupup

极客大学架构师训练营

单例模式手写

破晓_dawn

架构师训练营 第三周 学习心得

LiJun

极客大学架构师训练营

「中国技术开放日·长沙站」现场直播

「中国技术开放日·长沙站」现场直播

亚马逊发布分布式跟踪服务“AWS X-Ray”的预览版本-InfoQ