[关闭]
@levinzhang 2016-12-11T20:08:33.000000Z 字数 2047 阅读 493

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

by Daniel Bryant on Dec 04, 2016

摘要:

在美国拉斯维加斯举行的AWS re:Invent 2016大会上,亚马逊发布了一款名为AWS X-Ray的分布式跟踪服务,它目前处于预览版本,能够在AWS的12个公开Region中使用。AWS X-Ray类似于Google的Dapper、Twitter的Zipkin以及OpenTracing API,它能够帮助开发人员分析和调试分布式应用,比如使用微服务架构风格所构建的应用。


在美国拉斯维加斯举行的AWS re:Invent 2016大会上,亚马逊发布了一款名为AWS X-Ray的分布式跟踪服务,它目前处于预览版本,能够在AWS的12个公开Region中使用。AWS X-Ray类似于Google的DapperTwitter的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 distributed tracing service

根据发布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 APIAWS 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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注