开题答辩(改)

发布时间:2023-11-30 | 杂志分类:其他
免费制作
更多内容

开题答辩(改)

请各位老师批评指正汇报人: 李成指导老师: 王纯专业: 计算机技术 [收起]
[展开]
开题答辩(改)
粉丝: {{bookData.followerCount}}
文本内容
第1页

汇报人: 李成

指导老师: 王纯

专业: 计算机技术

基于eBPF的云原生可观测系统

的设计与实现

第2页

目录 2

3

CONTENTS

1 选题背景及意义

问题与挑战

4 研究计划

研究方案

第3页

选题背景及意义

⚫ 近些年来,数字化转型已经深入各行各业,无论是行业巨头还是中小企业,都在不断应对

着数字化变革带来的机遇和挑战,企业“上云”的需求越来越大。

⚫ 云原生环境中的微服务、容器化和Kubernetes等技术使大规模分布式应用的交付变得越

来越容易,但同时也提升了在运维监控等环节的复杂性。

⚫ 由于应用规模增大、调用关系复杂,使得故障的定位变得越来越困难。例如,当出现超

时现象时,由于调用链路较长,难以快速定位导致超时的原因。

⚫ 因此,亟需在云原生场景下引入可观测性,通过其三大支柱(Metrics,Tracing和Logging)

解决云上运维困难的问题。

全球云计算市场规模及增速(亿美元)[1] 云原生在国内企业的渗透率[2]

[1]中国信通院《云计算白皮书(2023年)》2023年7月

[2]中关村云计算产业联盟《 2023年中国云生态蓝皮书》23、2023年7月

Netflix,X(Twitter),Amazon的微服务调用图

第4页

⚫ 现有观测手段具有侵入性:

目前常用的应用观测手段APM(Application Performance Management)具有强大的观

测能力,但较为主流的APM方案如Jaeger或Pinpoint等都具有侵入性,需要修改应用程序的

代码,通过代码插桩的方式来实现应用程序的可观测性。尤其对于Tracing数据的获取,只

能通过侵入的方式进行,根据应用程序使用的编程语言,进行对应的修改。由于现有观测手

段的侵入性,使其虽然具有强大的功能,但仍少见于成功的商业产品,而多见于活跃的开源

社区。

问题与挑战

Jaeger工作原理 Pinpoint工作原理

第5页

问题与挑战

⚫ 现有观测手段数据维度不够:

此外,目前主流的观测手段APM实现了对应用程序的性能管理和故障管理,常用于解决

代码层面的问题,但缺乏全栈可观测性,如果问题并不在应用程序本身,而是在于硬件或者

网络中,在这种场景下,仅仅使用APM将很难找到故障所在。此外,APM方案主要在应用

层进行数据采集,无法获取内核级别的数据,因此获取的数据非常有限,无法适应云原生中

容器网络虚拟化的场景。

美团Cat工作原理 Zipkin工作原理 Skywalking工作原理

第6页

问题与挑战

⚫ 现有观测手段性能不足

目前的观测手段性能无法满足以大规模分布式应用为主的云原生场景。如Strace在每次

调用系统调用时中断跟踪的进程,捕获调用,对其进行解码,然后恢复跟踪进程的执行。每

次执行都需要从用户态到内核态进行上下文切换,会显著降低系统的性能以Istio为代表的的

服务网格,使用代理劫持微服务间通信的数据包,这就会带来时延,对大规模的业务尤其明

显。从而带来额外的性能开销。

STrace工作原理 Istio工作原理

第7页

研究方案

具有侵入性

主流APM方案具有侵入性,需要修改应用

代码,使其落地困难,且不易于拓展。

eBPF程序通过注入到系统调用、内核跟

踪点、网络事件等位置,由其触发执行,

进行数据收集。如进程TCP状态发生改

变时,记录进程的相关信息。无需修改

应用程序的代码,也无需对现有应用进

行重新部署。解决了现有观测手段通过

侵入性的方式获取数据的问题。

第8页

研究方案

数据深度广度不足

APM主要关注应用代码本身的问题,

缺少全栈可观测性。

目前的观测手段仅从应用层采集数据,缺乏内核可见性。

eBPF程序在内核中运行,能够在

内核级别进行数据的收集 。使用

eBPF程序,可以跟踪一个请求从应

用程序出发,经过系统调用、网络传输、网关服务、安全服务,到达数据

库服务或对端微服务的全栈路径,快

速完成故障的定界。解决了现有观测

手段获取数据深度广度不足的问题。

第9页

研究方案

性能不足

云原生场景下应用规模增大,在容器技

术加持下调用栈复杂,传统的观测手段

性能无法满足云原生场景的需要。

eBPF采用JIT技术将程序字节码编译成本地

机器码,直接运行在CPU上,从而提高执行

效率。此外。eBPF程序以虚拟机的形式运

行在内核中,无需内核态与用户态的上下文

切换,也无需经过额外的网络代理,实现高

性能的数据收集和处理。解决了现有观测手

段性能不足的问题

第10页

Strace Prometheus Service Mesh APM

性能 差 好 一般 较好

是否具有侵入性 否 否 否 是

观测能力 较强 弱 强 强

使用难度 简单 简单 复杂 适中

获取数据方式的

主要特点

劫持系统调用

从exporter定期

抓取数据

劫持微服务间

数据包

在应用程序中

插入代码

首先使用eBPF通过由系统调用、网络事件等触发执行的特性,避免了对应用程序本身代码的侵入;采

用JIT技术将eBPF字节码编译成本地机器码,直接运行在CPU上,同时以虚拟机的形式运行在内核中,

避免了内核态与用户态的上下文切换,改善性能问题;在内核级别进行数据收集,数据的深度、广度得

到了极大的提升。

研究方案

第11页

研究方案

1 、 agent 在 各

个节点收集数据,

根据数据类型存

储到对应的数据

库中。 2、主程序汇总

各数据库中的数据,对数据进行

计算、汇总,生

成对集群的最终

观测结果。 3、用户通过前

端程序完成对程

序的配置,查询

集群观测信息。

第12页

以Daemonset形式部署在每

个节点上,通过eBPF程序监

控系统事件,收集集群及运

行在集群中的容器的信息,

并存储到对应的数据结构中。

agent负责可观测三大支柱数

据的采集,包括metrics数据,

Logging以及Tracing,并在

采集完成后进行预处理。

负责将主程序汇总计算出的

观测信息进行实时展示,方

便用户及时了解集群及应用

的状态,同时用户可以在此

对观测系统进行配置。

对agent采集到的原始的数据

进行处理、计算,整合不同

来源的数据信息,将相对孤

立的数据互相结合,以提供

更加全面有效的观测信息。

主程序除接收来自agent的数

据 外 , 还 接 收 来 自 kubestate-metrics 和 Pyroscope

server的数据。

研究方案

第13页

1. 在众多跟踪点、探针等中

如何进行选择,从里获取

数据以及获取哪些数据。

2. 如何设计和优化合理的数

据结构,对收集到的数据

进行高效的存储与查询。

3. 如何应对大量数据,对节点

的性能和资源消耗影响要

尽可能地小。

4. 处理错误和异常,如eBPF

程序的失败,以及集群和

容器的变化。

1、设计合适的交互逻辑,方

便用户对集群数据进行观测以

对应用程序进行配置。

2、如何设计用户界面,来清

晰地展示大量和复杂的观测信

息。

3、设计合适的图表、图形和

可视化工具,以展示集群和应

用的状态、趋势和关联关系。

4、优化程序的性能,提高用

户界面的响应速度。

1. 将离散、多来源的原始数

据进行整合,以描述一个

完整的事件,提供全链路

的观测信息。

2. 如何处理错误和异常,如

何处理数据的不一致性,

以及如何处理数据的丢失

和延迟。

3. 优化程序的性能,设计高

效的算法和数据结构,以

应对大规模数据的实时处

理,减少程序资源使用。

研究方案

第14页

研究计划

时间 研究内容 预期效果

2023.11-2023.12

调研目前云原生场景下常见的问题,以及现有

观测项目的不足,对相关相关文献进行收集与

整理

了解用户主要的需求,完成文献的收

集与整理

2024.01-2024.02

根据现有技术水平,对用户需求的可行性进行

评估,设计系统框架、功能模块,数据库系统

完成系统的总体设计

2024.03-2024.06

使用当前技术手段,设计非侵入式的基于

eBPF的云原生可观测方案并对其可行性进行

验证

完成设计基于eBPF的高性能非侵入

方案

2024.07-2024.12

根据系统设计进行开发,编写eBPF程序、设

计数据结构、完成agent、主程序、前端程序

的实现

完成系统的初步实现

2025.01-2025.05 总结和完善研究内容,测试并完善系统,撰写

毕业论文 完成硕士学位论文的撰写

第15页

参考文献(近三年)

第16页

参考文献(近三年)

第17页

请各位老师批评指正

汇报人: 李成

指导老师: 王纯

专业: 计算机技术

百万用户使用云展网进行翻书特效制作,只要您有文档,即可一键上传,自动生成链接和二维码(独立电子书),支持分享到微信和网站!
收藏
转发
下载
免费制作
其他案例
更多案例
免费制作
x
{{item.desc}}
下载
{{item.title}}
{{toast}}