开发者学堂课程【服务网格技术最佳实践:使用服务网格可观测性为应用服务保驾护航(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/292/detail/3436
使用服务网格可观测性为应用服务保驾护航(一)
内容介绍
一.什么是服务网格
二.为什么要使用服务网格
三.ASM 链路追踪解决方案
四.实践 ASM 链路追踪
五.应用需要进行的改造
六.常见问题
一.什么是服务网格
服务网格简介
1. 分布式应用之间的通信层,服务网格是应用之间的通信层,把应用之间的流量都接管,把一些能力抽象出来放在了通信层之间.
为了适应现在日新月异的架构发展,服务团队经常需要去集成很多与业务无关的代码,像我们刚才提到的服务发现,路由管理。
2. 抽象了通信层的通信能力,例如路由管理,限流,链路追踪等等第三方的东西,或者与业务能力无关的来实现这些能力。
出现的时候一定程度解决了我们说到的这些问题的一部分,服务网格是将上面的问题都抽象出来,来解决掉这些问题,服务网格除了能够解决这些问题,甚至还能解决一些精细的管理,比如说某个用户的请求的版本,一些精细的用途都可以做到。
二.为什么要使用服务网格
可观测性
流量管理的能力也是服务网格当中非常直观的,在复杂的微服务系统中,有很多复杂的路径,在传统的开发当中,我们经常会对一些复杂的系统进行观测,会进行一些追踪.
是为了观测复杂的系统是如何运行的,有了这些信息我们可以更好的排查故障,分析弱点,可以提升开发运用人员对问题的理解以及响应的速度,可观测的速度。
可观测性也是非常重要的能力,分为三个方面。
1.监控,服务延迟,流量状况,报错状况,负载状况。
2.链路追踪,展示服务调用链路,单次调用信息,帮助运维人员梳理调用关系,帮助开发者更深入地理解自己的服务。能把整个树形关系展示出来。
3.日志,网格内的所有 workload 的请求均会被日志记录,日志包含调用的源,目标以及元信息,使用户可以从 workload 维度审视服务行为。
三.ASM 链路追踪解决方案
链路追踪的传统解决方案
1.应用修改代码,集成链路追踪 SDK,增加上报逻辑,这样做法效率很低,每个应用都要投入人力,对应用入侵投入大。
2.多语言集成困难,有的语言甚至还不全,人力成本高。
3.需要自行搭建,维护链路追踪系统。
链路追踪的现代解决方法
1.对应用代码侵入极低,应用需要做的就是进入和出请求当中传递一下信息就完成了。
2.不需要考虑多语言问题
3.配合阿里云 Xtrace,不需要搭建追踪系统,开箱即用。如果你希望去搭建一个系统,也是可以的,在文档里面也有介绍怎么去搭建。
我们用户的集群,用户的应用,是主网格的三叉,帮助用户去接管流量,当下我们说中间层去接管消息和流量,上报给追踪系统,代理把所有电路追踪上报给 service ,后面默认选择用阿里云的系统,同时也可以自己去搭建系统,其实建构就是非常直观。