基于 eBPF 的 Serverless 多语言应用监控能力建设

本文涉及的产品
云原生网关 MSE Higress,422元/月
容器镜像服务 ACR,镜像仓库100个 不限时长
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: 面向未来,云计算将会全面 Serverless 化,多语言,全生态的支持将会是 Serverless 产品发力的重点,SAE 应用监控能力同样会持续不断的演进和增强,目前已经全面上线了无入侵,多维度,高性能的应用核心指标监控和告警能力,欢迎大家使用。

作者:竞霄


监控能力作为基础运维能力和核心稳定性措施,开发运维人员可以通过监控系统有效进行故障定位,预防潜在风险,分析长期趋势进行容量规划和性能调优,是软件开发生命周期中必不可少的一环。与此同时,Serverless 作为云计算的最佳实践和未来演进趋势,其全托管免运维的使用体验和按量付费的成本优势,使得其在云原生时代备受推崇,在下一个十年将成为云厂商提供的核心能力。随着 Serverless 的心智普及度越来越高,场景覆盖度越来越广,更多使用 PHP, Python,C/C++, Node.Js, Golang 等语言的用户开始进行 Serverless 架构升级。


1.png


对于这部分用户来说,传统的应用监控方案存在以下痛点:


  • 建设成本高需部署一整套监控系统,包括数据采集,指标传输,持久化存储,可视化展示,告警等模块,增加了额外的资源成本和人力成本。
  • 埋点强入侵需评估各语言,各框架,各接口的监控指标诉求,引入三方依赖进行繁琐地手动埋点。虽然对于 PHP, Python 等语言,已经有借助对象(模块)替换增强的技术实现无需修改的指标采集,但其能力成熟度,框架兼容性,运行稳定性等方面都还有进一步提升的空间。
  • 运维复杂用户需要确保整个监控链路的低延时,高可用和指标准确性,需要对比分析引入监控埋点后对原有应用性能上的影响并持续优化。


Serverless 产品需要提供一种统一的,开箱即用的,无入侵零改造的方式来实现任意语言的应用监控能力,使得多语言用户可以充分享受 Serverless 带来的普惠技术红利。下面我们首先对其背后使用的 eBPF(Extended Berkeley Packet Filter) 技术进行介绍。


何为 eBPF?


eBPF 全称为 Extended Berkeley Packet Filter,始于 Linux 3.18,是一项革命性的 Linux 内核技术。eBPF 提供了基于系统或程序事件的高效,安全,无入侵执行特定代码的通用能力。在 eBPF 诞生之前,由于用户态与系统态相互隔离,应用程序无法直接处理内核数据,而如果直接修改内核又具备相当的复杂性,每次开发或调试都需要重新编译,效率十分低下,安全性也无法保证。


eBPF 作为一个运行在内核中的虚拟机,允许开发人员直接提交 eBPF 程序,在不修改内核代码的情况下运行特定的功能。eBPF 程序基于事件驱动模型,当内核运行到特定 hook 点时会触发执行,预定义的 hook 点包括系统调用、函数进入/退出、内核 tracepoints、网络事件等。对于不存在的 hook 点也可以通过 KProbe,UProbe 进行动态埋点,提供内核态和用户态函数的追踪能力。借助丰富的 hook 点,eBPF 技术可被广泛应用于包括网络监控、安全过滤和性能分析等诸多场景。


2.png


eBPF 的工作流程如下图所示,首先通过在用户空间内使用 LLVM 或者 GCC 将编写好的 eBPF 程序编译成为字节码,然后借助系统调用 bpf 将其加载至内核中。eBPF 虚拟机将使用验证器对字节码进行安全性校验,如只能使用受限的 helper 辅助函数,有限的循环次数和执行时间,DAG 判断是否存在不可达代码等,避免其造成内核崩溃。


安全校验后 eBPF 字节码将通过即时编译器(JIT,Just-In-Time Compiler)编译成为原生机器码,提供近乎内核本地代码的执行效率,并挂载到具体的 hook 点上。用户态程序与 eBPF 程序间通过常驻内存的 eBPF Map 结构进行双向通信,每当特定的事件发生时,eBPF 程序可以将采集的统计信息通过 Map 结构传递给上层用户态的应用程序,进行进一步数据处理与分析。


3.png


SAE 应用监控


SAE(Serverless 应用引擎)作为业界首款面向应用的 Serverless PaaS 平台,全托管免运维,实现了单体 Web 应用,微服务应用以及定时任务的 Serverless 化。其核心优势之一在于用户可以低心智负担,零改成成本的将其应用/任务直接部署至 SAE 中。目前在 JAVA 生态中,无论是代码包部署,监控调用链的集成,还是分布式调度框架的迁移,都可以让用户无需改动任何业务逻辑和版本依赖的情况下使用。


4.png


基于 eBPF 技术,SAE 应用监控支持了针对任意语言,任意框架的无入侵指标采集与监控告警能力,提供包括应用/实例维度的黄金三指标 RED(请求数,错误数,响应时间)和 HTTP 状态码统计,以及提供服务与依赖服务的接口级别调用信息。借助内置可视化大盘,开发运维人员可以及时评估当前应用对外服务状态,有效识别用户体验、服务中断、业务异常等问题。


SAE 应用监控能力具备以下核心优势:


  • 免运维开箱即用,部署即生效,用户无需额外运行维护监控告警组件。
  • 代码无侵入无需任何代码埋点,无需任何依赖修改即可获取到丰富的监控数据。
  • 语言无关通过内核层进行网络协议解析,支持任意语言,任意框架。
  • 多协议覆盖支持对 HTTP,MySQL,Redis,Kafka,DNS 等网络协议,进行指标和链路的监控。
  • 高性能
    通过减少数据在内核态和用户态之间的拷贝,以极低的性能消耗获取指标数据。


5.png


技术实现上,SAE 通过将 eBPF 探针以 sidecar 的形式与用户业务程序部署在同一安全容器中,实现了多租隔离。


eBPF 程序将会监听 accept/close/read/write/sendto/recvfrom 等系统调用,获取本地及远端地址,线程上下文,文件描述符 fd 等信息,同时关联当前容器实例信息产出原始事件。


然后将原始事件的内容发送至用户态程序。用户态程序进行应用层协议识别,解析出协议的关键字段,匹配单条链路的请求和响应,同时经过事件过滤,维度收敛,元信息关联,预聚合等步骤进行数据加工,生成最终指标。最后周期性将采集指标上报至 Arms Promethues 中进行持久化存储。


6.png


总结


面向未来,云计算将会全面 Serverless 化,多语言,全生态的支持将会是 Serverless 产品发力的重点,SAE 应用监控能力同样会持续不断的演进和增强,目前已经全面上线了无入侵,多维度,高性能的应用核心指标监控和告警能力,欢迎大家使用。同时在后续的 RoadMap 中,SAE 将会推出全局调用拓扑,服务上下游依赖,调用链路详情等进阶功能,打造更加完善的 Serverless 多语言可观测体系。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
6天前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
|
1月前
|
存储 人工智能 Serverless
7分钟玩转 AI 应用,函数计算一键部署 AI 生图大模型
人工智能生成图像(AI 生图)的领域中,Stable Diffusion WebUI 以其强大的算法和稳定的输出质量而闻名。它能够快速地从文本描述中生成高质量的图像,为用户提供了一个直观且高效的创作平台。而 ComfyUI 则以其用户友好的界面和高度定制化的选项所受到欢迎。ComfyUI 的灵活性和直观性使得即使是没有技术背景的用户也能轻松上手。本次技术解决方案通过函数计算一键部署热门 AI 生图大模型,凭借其按量付费、卓越弹性、快速交付能力的特点,完美实现低成本,免运维。
|
2月前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
96 12
|
4月前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
204 13
|
3月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
122 1
|
3月前
|
运维 监控 Serverless
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
54 1
|
5月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
251 13
|
6月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

相关产品

  • 函数计算