查看原文
其他

中国首个个人主导的Apache孵化项目SkyWalking成功毕业!

整理:根哥啊

文章首发,微信公众号“Java后端技术”

来自 Apache Skywalking 官方的消息,Apache 基金会宣布 Skywalking 结束孵化,成为基金会顶级项目。

Apache SkyWalking 是一款应用性能监控(APM)工具,对微服务、云原生和容器化应用提供自动化、高性能的监控方案。项目于2015年创建,并于2017年12月进入 Apache 孵化器。经过一年半时间,该项目目前已成为 Apache 基金会顶级项目。

“今天对于 SkyWalking 项目和 SkyWalking 社区是意义非凡的一天。我们要特别感谢 SkyWalking 的 Apache 孵化器导师,项目贡献者和 Apache 孵化器帮助我们成为顶级项目”,Apache SkyWalking 项目 VP 吴晟说,” SkyWalking 最初只是为了帮助新人理解分布式追踪,但随着项目社区的变大和变强,我们成功的加入 Apache 孵化器。通过遵循 Apache 的社区建立模式,现在我们有一个非常活跃并多元化的社区。有超过70家公司公开宣布在使用 SkyWalking,项目有来自于数十家公司的超过100位的源码贡献者。”

一、什么是SkyWalking 

SkyWalking 是观察性分析平台和应用性能管理系统。

SkyWalking 是一款国人主导开发的开源应用性能监控系统。SkyWalking是一个开源可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统、甚至是跨云环境中。它更像是现代化APM(Application Performance Manager),专为云原生、基于容器和分布式系统而设计的。

SkyWalking 包括指标监控,分布式追踪,分布式系统性能诊断。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

二、为什么要使用SkyWalking?

这里与其说为什么要使用SkyWalking ,倒不如说为什么要使用APM工具?相信还是有很多小小伙伴对APM工具不是很清楚的。下边我们简单的介绍一下!

随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响,所以会深深的感受到 “银弹” 这个词是不存在的,每种架构都有其优缺点 。

面对以上情况, 我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这时候 APM(应用性能管理)工具就该闪亮登场了。

三、SkyWalking 特性

包含以下特性:

  • 服务、服务实例和endpoint(如:单个HTTP URI)的性能指标分析

  • 根因分析

  • 服务拓扑图

  • 服务和Endpoint依赖分析

  • 慢服务和慢Endpoint探查

  • 性能优化

  • 分布式追踪和追踪上下文传播

  • 告警

四、SkyWalking的架构

SkyWalking在逻辑上分为四个部分:探针,平台后端,存储和UI

1、探针(Probes),基于不同的来源是不同的。它们收集数据并根据SkyWalking需求重新格式化。

2、平台后端(Platform backend),是一个后端服务,支持集群部署。它用于聚合,分析和驱动从探针到UI的流程。它还提供可插拔能力为不同的数据源(如Zipkin)、存储器实现和集群管理。您甚至可以使用观察分析语言自定义聚合和分析。

3、存储(Storage),是开放的。您可以选择现有的实现,例如ElasticSearch、H2或Sharding-Sphere管理的MySQL集群,也可以实现自己的。当然,非常感谢您为新的存储实现做出贡献。

4、UI,酷炫且非常强大,你也可以自己定制UI匹配后端。

小结:

SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 Elasticsearch、H2、MySQL、TiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent 、Zipkin v1/v2 、Istio 勘测、Envoy 度量等数据格式。

整体架构看似模块有点多,但在实际上还是比较清晰的,主要就是通过收集各种格式的数据进行存储,然后展示。所以搭建 Skywalking 服务我们需要关注的是 SkyWalking Collecter、SkyWalking UI 和 存储设备,SkyWalking Collecter、SkyWalking UI 官方下载安装包内已包含,最终我们只需考虑存储设备即可。

五、谁在使用 SkyWalking

各种各样的公司和组织使用SkyWalking进行研究,生产和商业产品。这是SkyWalking 的用户墙。

六、常见的其他APM产品

目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking。

  • Pinpoint(https://github.com/naver/pinpoint)

  • Zipkin(https://zipkin.io)

  • Cat(https://github.com/dianping/cat)

这里我们介绍的 SkyWalking ,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。SkyWalking提供了在许多不同场景下观察和监控分布式系统的解决方案。

说明:本次对比基于skywalking-6.0.0-GA和Pinpoint-1.8.2(截止2019-02-19最新版本)。另外,我们这次技术选型直接否定了Zipkin,其最大原因是它对代码有侵入性,CAT也是一样。这是我们所完全无法接受的。

SkyWalking 和Pinpoint应该是目前最优秀的两款开源APM产品了,而且两款产品都通过字节码注入的方式,实现了对代码完全无任何侵入,他们的对比信息如下:

说明:上述对比数据来源与2019-02-24,截止发稿的时候,SkyWalking 的GitHub Star数为7541。

参考文章:
http://skywalking.apache.org/zh/blog/2019-02-24-skywalking-pk-pinpoint.html

http://skywalking.apache.org

https://www.jianshu.com/p/2fd56627a3cf

热门内容:

1、一个计算机底层的面试题,瞬间就被干懵了!

2、自增主键用完了怎么办?

3、一线大厂的分布式唯一ID生成方案是什么样的?

4、Dubbo 3.0 !提升不止一点点!

5、Spring Boot中如何干掉过多的if else!

6、阿里P8无相告诉你:我们能从IDEA中学到什么?

7、Kafka竟然不支持读写分离!今天才知道!

8、Java 8中Stream API的这些奇技淫巧!你都Get到了吗?

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存