Apache SkyWalking创始人吴晟:首次披露v9版的十大Layer功能

2022年6月2日 289点热度 0人点赞 0条评论
图片
嘉宾 | 吴晟   整理 | 段帅星

出品 | CSDN云原生

Apache SkyWalking是一个针对分布式系统的应用性能监控APM和可观测性分析平台,经过一年的更新,完成了从v8至v9的迭代。

2022年5月10日,在CSDN云原生系列在线峰会第4期“Apache SkyWalking峰会”上,Tetrate创始工程师、Apache基金会首位中国董事吴晟深入解析了SkyWalking v9的新功能。

戳?观看吴晟分享视频

CSDN

,赞 10

图片

Full Stack APM概念

SkyWalking v9可以称得上全栈APM,因为它涉及APM、最终用户、手机端以及基础性平台的基础设施(比如Linux、Kubernetes)。

图片

如上图所示,左侧是浏览器、语言、主流的Service Mesh、Kubernetes以及操作系统。右侧是v9的菜单,按照层级划分,从普通的General Service到自监控。总体架构是除了基础设施从上到下的维度之外,通过数据源分成了Tracing、Metrics、Logging和Event 4个入口,不同于传统意义Tracing、Metrics、Logging 3个核心的概念,现在是4个核心的概念。因为Event是触发变更的基础,所以在这个过程中间起到了很大的作用。v9版本真正完成了这样的一张构想图,从最开始的浏览器到下面的操作系统,实现全栈多种数据源集成。

v9到底更新了什么?其实从SkyWalking社区、核心团队的角度来看,只是新增了一种概念,叫做Layer,可以称之为“层”或者应用软件基础设施的抽象分类。Layer代表的是一个抽象的框架,在整个计算机科学领域里面可能是操作系统、Kubernetes,也可能是Agent安装的一个服务,或者是Service Mesh,比如Istio、Istiod、Envoy。所有收到的数据都可以归属为一个“层”,并且具有共通性。也可以简单地映射到菜单上面,不同服务可能有不同的归属。这样分是因为每一层的Metrics、Tracing或者一些核心的功能都会有些区别。

图片

比如Service Mesh里面的可观测性可以直接出拓扑图,Tracing的情况下也可以完全无缝地出拓扑图,但如果上Agent,那么Tracing就需要和拓扑图一起出,这是比较典型的区别;另外一个典型例子是操作系统上面的一些指标更涉及本地,而Kubernetes更多的是从Pod、Service、Scaling等角度去看每个服务,等到了Agent、SDK的Tracing级别可能更关心的是线程池、分布式追踪、无侵入的探针以及基于Agent的剖析。

关于eBPF的剖析,可能是针对Linux或者基于Kubernetes上面的某些服务直接进行剖析而不需要依赖SDK能力。

 图片

全新的Layer

下面介绍SkyWalking官方首次在v9版本里面开放的Layer。

1. General Service

General Service可以理解为SkyWalking从1.0、2.0、3.0版本就有的语言探针,探针抓Tracing分析服务间的拓扑、各个线和点之间的指标、Trace、Log以及每个服务的整体运行情况。

图片

如上图所示,下半部分表格提供了基于Service预览的指标的全局视图,这也是在9.0会贯穿始终要展示的Service的模式。右侧有Load、Success Rate、Latency,这些都是在有Agent时比较典型的Metric。只有针对Layer才会有的指标。

2. Service Mesh

Service Mesh里分成三类:

  • 针对整个服务,也就是Meshed Services

  • Istio的性能,比如XDS的推送,或者Istiod的运行情况和消耗

  • Envoy的内存,以及Envoy的Access Log正文采集到的像触发HTTPS SSL拒绝的日志

图片

Serverless这些年有一些越来越热的趋势,有人可能认为FaaS和Serverless是竞争关系。但从整个行业来看他们不存在很大的竞争关系。Open Function或者Function编程擅长解决的问题是特有的,不像Service Mesh是解决一个通用性的、已经存在了服务的管理路由等一系列问题。

3. FaaS - Open Function

SkyWalking和OpenFunction在内核级别做了非常好的集成。用OpenFunction去写任何函数式的程序时都不用管Tracing,只需按照OpenFunction的要求写,在OpenFunction上激活,所有的Tracing、指标、拓扑图都可以开箱即用。这是云原生平台在底层进行整合的,对应用开发者来说完全透明的模式。

图片

不管是OpenFunction、Istio还是Enovy,都是在Kubernetes上运行。

4. Kubernetes-Cluster and ServiceHealth/Status

Kubernetes作为云原生最重要甚至最核心的一个基础设施,它的健康以及服务的状态也是重点监控的内容。Pod的数量、节点的数量、部署的数量以及CPU各方面的消耗这些视图可以帮助大家看到整个Service Mesh、Open Function或者是Helm operator部署在Kubernetes里面的运行情况。

Kubernetes、Service Mesh以前在Dashboard里面也有相关的Layer去控制,以前会纠结Service应该看哪个视图,现在只需先选到需要的视图,它就会展示跟这个视图有关的所有的Service。比如Kubernetes有Cluster或者Kubernetes Service两种角度的视图,从Cluster的角度看预览,或者通过Service角度看部署以及通过这两个不同的角度去看整个集群、Node、Service的整个健康情况。

图片

5. Linux-Infra

Linux作为一个非常典型的基础设施,是所有的VM或者云上动态计算单元都非常关心的。SkyWalking提供了基于Linux的监控,但SkyWalking并不是一个封闭的实体,比如在Linux会和Prometheus或者Zabbix的成熟Agent直接进行集成。SkyWalking有自己独有的Agent,需要通过Agent得到一个效率极高的拓扑图的分析。在和Service Mesh集成时是和Istio、Envoy、Metric Service直接进行集成。在Linux上面也一样,通过基础设施平台最成熟的Metric的集成,直接拿到 Linux的指标。

图片

6. Browser App

社区一直都非常关注Browser相关的监控,因为不管Vue、Angular JS以及各种各样的前端框架,Browser的Layer其实上充当了两种角色。

第一个是Trace,作为所有应用Trace的起点,它可以从用户端一直追踪到服务端进行多次调用的跳转,需要在Browser端运行。

第二个是浏览器里面的各种个性化的指标,比如TLL等对应用来说非常重要的指标。评估每一个页面是否运行流畅,这些指标都起到非常重要的作用。

v8作为浏览器性能是一个服务,生成Trace是另一个服务,原因是受制于v8的内核限制。v9因为Layer的引入,可以存在于不同的Layer,还可以有分布式的Trace。

图片

7. Virtual Database

SkyWalking目前没有专注于监控物理的数据库,比如和MySQL、PostgreSQL直接集成。在虚拟数据库方面,实际是在应用探针里面探查到的数据,比如用Java、.NET、Golang Go2sky做探针时,会在里面做一些数据库的调用。在客户端角度看这些数据库调用的性能,称作Virtual Service。

图片

8. So11y-Self Observability

So11y是自监控,比如当应用程序很复杂时,构建一个像SkyWalking监控系统,就会面临一个挑战,SkyWalking应该由谁来监管?如果用另外一套工具监控SkyWalking实际上是一个非常困难的事情,所以直接把Ceph提上来了。只需探一下SkyWalking的 Server然后再把数据回送到 SkyWalking内部。

有人会问SkyWalking为什么没有Tracing?因为SkyWalking的Server本质上是一个轻量化的流计算平台,如果去Tracing每一条记录,那么所带来的负担是非常重的,并且没有价值。所以So11y提供的全部是Metrics相关的,这些Metrics都是经过精心挑选并且在SkyWalking的内核里面直接做了集成,不是通过探针技术或者某种很隐晦复杂的方式。SkyWalking和Prometheus、Grafana是可以互相切换的过程,但Prometheus因为数据量承载能力限制,所以SkyWalking并没有把所有数据都导给Prometheus。

图片

9. So11y-Satellite

Satellite的作用是负载均衡,那么怎么做负载均衡?Nginx、Enovy这些标准的负载均衡主要是基于连接的,但Agent一般是保持连接的。保持连接会出现连接均衡数据不均衡的问题,Satellite可以实现基于数据流量的负载均衡,能够完全识别SkyWalking所有原生的数据格式。

图片

10. Dashboard Management

Dashboard Management实际上是在Layer概念出来之后才有的。SkyWalking提供了所有的Dashboard定制的能力,依然会原生提供大量的配置方便开箱即用,也可以根据Layer修改布局。

图片

前文提到将近10种Layer,Layer实际上并不是一个非常严格的定义。如果大家想监控MySQL Server,也可以加一种Layer,用监控的技术栈把新的Server监控起来,把刚才提到的全栈的概念做得更丰富、更完善一些。

图片

END

限时活动,数量有限? 

邀请好友助力免费领图书

图片扫描图片二维码立即参加

— 推荐阅读 —

Tetrate高洪涛:解密SkyWalking的APM专用数据库BanyanDB

听云研发总监杨金全:以Tracing为核心的可观测性体系

云原生应用交付的前世今生与一线实践

☞2个维度5大方法,让你的微服务在K8s上跑起来

☞透彻解析云原生在数字化转型中的应用实践,PaaS功不可没

点这里↓↓↓记得关注标星哦


一键三连 「分享」「点赞」「在看」

成就一亿技术人

图片

45800Apache SkyWalking创始人吴晟:首次披露v9版的十大Layer功能

这个人很懒,什么都没留下

文章评论