1、基于 eBPF 的云原生可观测性深度实践向阳,研发 VP 云杉网络:eBPF 之上的颠覆性创新,实现高度自动化的可观测性关于清华大学博士,毕业后加入云杉网络,现负责云原生可观测性产品 DeepFlow。2016 年我们发布了企业版第一个 Release,2022 年开源了 DeepFlow 核心(Apache 2.0),同年 7 月发布了社区版第一个 Release。DeepFlow 致力于让云原生开发者实现高度自动化的可观测性,让观测更自动,让开发者更自由!向阳向阳研发研发 VP VP 云杉云杉目录分布式追踪:回顾十四年历史,剖析云原生时代的新痛点AutoTracing:DeepFlow 基
2、于 eBPF 之上的颠覆性创新让追踪无盲点:全栈、全链路,基于创新技术的产品方案展望未来:开源共建,开启高度自动化的可观测性新时代目录分布式追踪分布式追踪:回顾十四年历史回顾十四年历史,剖析云原生时代的新痛点剖析云原生时代的新痛点AutoTracing:DeepFlow 基于 eBPF 之上的颠覆性创新让追踪无盲点:全栈、全链路,基于创新技术的产品方案展望未来:开源共建,开启高度自动化的可观测性新时代分布式追踪/Distributed Tracing分布式追踪的十四年20082022更标准化更自动化覆盖更全云原生时代的痛:插码插不全微服务拆分、大型团队协作,有那么几个语言/框架永远也覆盖不全没
3、有了 Java 字节码增强技术的加持,每一次 SDK 的升级,感觉永远也部署不完云原生时代的痛:链路追不全业务代码 框架/库调用 系统调用 服务网格 sidecar 容器网络 iptables/ipvs 虚机网络 ovs/linuxbr 网关、数据库快速迭代的软件相对稳定的硬件软件定义一切高速迭代的软件追踪盲点目录分布式追踪:回顾十四年历史,剖析云原生时代的新痛点AutoTracing:DeepFlow 基于基于 eBPF 之上的颠覆性创新之上的颠覆性创新让追踪无盲点:全栈、全链路,基于创新技术的产品方案展望未来:开源共建,开启高度自动化的可观测性新时代这会是一项创新吗?Istio Booki
4、nfo 零插码追踪 DemoJaeger 追踪的怎样单击此处添加文本DeepFlow AutoTracing:零插码、全栈感受 DeepFlow 的 AutoTracing1.零插码:且无需向 HTTP 头注入 TraceID 或 SpanID2.全链路:4 个调用、38 个 Span,分为 24 eBPF Span+14 BPF Span3.多语言:Java、Python、Ruby、Node.js 及 C/C+(curl/envoy)4.全栈:追踪两个微服务之间的网络路径,从 Pod 到 Node 到 KVM,IPIP、VXLAN、5.全栈:追踪微服务内从 Envoy Ingress 服务
5、DNS Envoy Egress 全过程案例:某互联网客户,使用 DeepFlow 5 分钟内定位客户端慢服务端不慢的经典扯皮问题。业务开发团队服务网格团队容器运维团队云运维团队Curl(C)Envoy(C+)ProductPage(Python)Details(Ruby)Reviews(Java)Ratings(Node.js)Ingress Envoy(Recv)Ingress Envoy(Send)应用进程(Recv)应用进程(Send)Egress Envoy(Recv)Egress Envoy(Send)IPIP/VXLAN无需插码快速定界DNS LookupEnvoy(C+)Env
6、oy(C+)客户端应用进程客户端 Pod 网卡客户端 Node 网卡服务端 Node 网卡服务端 Pod 网卡服务端应用进程=云网络消耗AutoTracing 背后的关键洞察KernelThreadingKernel Thread:User Thread=1:1使用 Thread ID 关联同一个 Trace 在一个服务实例上的多个请求HybridThreadingCoroutine(Erlang,Golang)Service ASVC BSVC CClient相同相同Thread ID理想情况Service A(线程#1)SVC BSVC CClientClientSVC BSVC Ctim