行业资讯

立即注册 咨询客服

当前位置:首页 > 行业资讯> 为什么现在公有云服务商要认真对待eBPF变革

为什么现在公有云服务商要认真对待eBPF变革

发布时间:2022年11月29日 10:51:26    来源: A5互联

云计算的世界正在酝酿一场深刻的变革,可以概括为一个四个字母的词:eBPF。

事实上,eBPF是一种可以在Linux内核中运行超高效程序的开源技术,它具有颠覆客户体验公有云服务方式的巨大潜力。

但不幸的是,公有云服务商对eBPF变革反应比较迟钝。尽管将eBPF和基于eBPF的工具与公有云工作负载结合使用并非不可能,但它比想象的更难。

需要确保eBPF不会绕过公有云,并剥夺他们的客户从eBPF中获得的大量可观察性、安全性和其他好处。

让我们先来看看eBPF的含义,看看为什么它对公有云平台如此重要,以及公有云应该从现在开始做什么以充分利用eBPF。

什么是eBPF?

eBPF是一种支持在Linux内核中执行沙盒程序的技术。

换句话说,eBPF使得直接在Linux内核中运行低级软件成为可能,而不是在“用户空间”(Linux程序通常运行的空间)中。

这很重要,因为在内核空间中运行的程序与传统程序相比具有一些非常重要的优势:

如果设计得当,它们可以“看到”内核可以看到的一切,这意味着它们可以收集系统性能、安全性和其他不可能或很难从用户空间收集的数据。

它们在运行时消耗的资源非常少,这使得它们比传统软件更高效。

它们可以动态加载,这意味着用户可以随时编写和运行他们选择的eBPF程序。他们不必将代码编译到内核中或依赖内核模块。

因为eBPF程序相互之间以及与其他内核资源是沙箱化的,所以它们非常安全。

这些eBPF的好处加起来形成了一种技术,可以以更安全、更灵活的方式从Linux服务器收集更多信息,同时消耗更少的资源。

eBPF和公有云计算

eBPF可以在运行现代Linux内核的任何服务器上运行。无论服务器是在本地运行还是在公有云、私有云或混合云中运行并不重要。

然而,当应用于基于公有云的服务器时,eBPF提供了非常大的潜力。主要原因是eBPF可以解决长期以来公有云基础设施的最大缺点之一:缺乏对运行基于云的工作负载的云服务器的可见性。

传统上,想要使用云的企业对其使用的云基础设施状态的可见性非常有限。他们只能收集云服务商选择公开的任何日志和指标数据。

然而,eBPF可以通过允许云客户编写eBPF程序来从主机服务器收集他们想要的任何数据来改变这一点。因为这些程序是完全可定制的,所以客户不会受限于通用的可观察性或安全指标。而且由于eBPF程序是高度安全的,它们造成安全漏洞的风险相对较低。

此外,对于不想编写自己的eBPF程序的云用户来说,强大的eBPF支持可以更轻松地利用第三方监控和可观察性平台,利用eBPF来帮助收集可观察性数据。

公有云中eBPF的状态

当前在公有云上利用eBPF并非不可能。一些公有云服务,尤其是像Kubernetes服务,可以通过eBPF收集可观察性数据的第三方插件;也可以使用自定义内核在基于云的VM实例上启用eBPF。

然而,公有云提供商尚未将eBPF视为一等公民。例如,AWS迄今为止拒绝提供默认支持eBPF的AMI图像的请求。微软已经宣布了一个将类似eBPF的技术引入Windows的项目,但没有过多说明它可能如何在Azure中使用eBPF。谷歌为其托管Kubernetes服务GKE投资了eBPF集成,但没有迹象表明它正在考虑如何让客户轻松访问基于eBPF的工具或跨其他类型云服务的集成。

大多数公有云服务缺乏对eBPF的原生支持,这给客户带来了问题,因为一旦工作负载运行,eBPF就无法打开。它需要在服务器启动时承载工作负载的内核中启用。默认情况下不提供eBPF,如果客户想利用该技术,云服务商会强制客户构建和配置自定义内核。

以上所有内容意味着,如果您想利用eBPF来帮助监控、观察或保护当今在公有云中运行的工作负载,您很可能不必进行大量自定义设置。或者,您可能会决定将工作负载保留在本地,这样更容易启用eBPF,因为您可以完全控制基础架构及其上运行的内容。云提供商根本没有做太多事情来让他们的客户更容易地使用eBPF。

我们希望这种变化很快就会发生变化,因为eBPF准备好改变IT企业管理工作负载的方式越来越明显。云服务商参与eBPF变革的时间越晚,可能就会被别的参与eBPF拉开差距的风险越来越大。