重新思考系统架构:使用eBPF实现分布式智能的崛起

将计算迁移到更靠近数据的位置是一个由来已久的话题; 新的变化是将系统智能迁移到更靠近数据的位置。

译自:Rethinking System Architecture: The Rise of Distributed Intelligence with eBPF

作者:Bill Mulligan

数据本地性,即将计算移动到更靠近数据所在的节点,以消除性能瓶颈并加速往返,对于现代分布式计算系统设计的发展至关重要。

它主要在大数据运动中普及,并在 MapReduce 和 Hadoop 的早期,以及更现代的 Apache Spark 和流数据时代,围绕数据处理优化进行了重新思考。应用程序需要并行处理大量实时数据流,这激发了对应用程序基础架构的新思考,推动了解决状态、并发、异步/背压等棘手问题的新方法进入编程语言原语和框架。数据本地性也已成为云原生时代的基础,其中最令人兴奋的用例已从广义上从“静态”数据演变为“动态”数据,从“批处理”演变为“实时处理”,以及从无状态工作负载演变为有状态工作负载。

这些变化使我们进入了一个新的复兴的早期阶段——这次是在系统智能层面。几十年来,随着我们的应用程序架构(从单体到微服务)和系统架构(从单台机器到集群)变得越来越分布式,不知何故,我们用于运营、保护和可观测性我们环境的智能系统仍然被困在集中式架构模型中。

系统架构中正在兴起一个新的“分布式智能”时代,旨在使智能更接近数据。让我们研究一下为什么会出现这种趋势,eBPF 在支持系统架构新思维方面发挥的核心作用,以及系统数据和智能之间更紧密的往返所带来的影响。

集中式智能模型的裂缝

在由集中式决策驱动的 IT 世界中,收集见解和应用智能通常遵循一种既定的——但又有限制的——模式。在该模型的核心,大量的遥测、可观测性和应用程序数据由“哑”数据收集器收集。为了进行分析,这些收集器收集信息并将其发送到集中式系统,例如数据库、安全信息和事件管理 (SIEM) 平台或数据仓库。

随着数据和基础设施复杂性的指数级增长,该模型中的裂缝现在开始显现。

这种方法最显着的缺点之一是数据传输开销。需要收集的数据越多,基础设施和网络上的压力就越大,因为信息必须从原点传输到做出决策的中心点。这也增加了数据生成和做出决策之间的时间延迟。在实时响应至关重要的场景中,例如安全中的威胁检测或网络中的性能调整,这种延迟会阻碍有效运营。

最初设计为可扩展系统的可扩展性也可能受到影响。随着基础设施的增长和变得更加分布式,生成的数据呈指数级增长。集中式智能系统必须在数据存储和计算容量方面进行扩展,以处理和分析这些信息,从而导致大量的基础设施成本,因为需要更强大的硬件、更大的数据库和更快的网络才能跟上。更多的数据也增加了“数据引力”——我们已经收集、存储了它,现在它太多了,很难移动。这种为满足不断扩展的基础设施需求而进行的基础设施扩展可能会很快变得不可持续,迫使组织在洞察力和成本之间做出选择。将原始数据传输到集中位置通常会导致不必要的处理和存储。与其在源头过滤或处理数据,不如传输和存储大量无关或冗余数据,从而浪费宝贵的资源。随着数据的增长,这种低效率只会加剧,从而导致过度设计的分析系统和增加的运营复杂性。

最后,即使基础设施成本不是问题,数据生成和处理之间的上下文脱节也会进一步降低集中式智能的优势。当数据被聚合和分析时,它通常缺乏能够做出更明智决策的即时上下文。关于系统状态、环境和工作负载条件的关键信息在传输过程中被稀释或丢失,导致对情况的感知不够准确。

网络、安全和可观测性系统的约束

集中式智能模型的失败——数据传输开销、延迟、可扩展性挑战以及上下文洞察力的丧失——对于平台团队的网络、可观测性和安全用例来说尤其明显。让我们看看这些挑战如何在集中控制的各个层面发挥作用。

网络

传统的 Linux 网络堆栈在分布式环境中表现不佳,因为其集中式的线性管道在处理高流量或动态工作负载时会引入延迟和效率低下。这种僵化的结构限制了对实时需求的适应性,例如负载平衡、连接跟踪和自定义协议。这些在 DDoS 缓解或边缘计算等场景中变得尤为明显,在这些场景中,必须精确而快速地处理大量流量。传统的解决方案通常依赖于在路由器、防火墙或负载均衡器等扼流点进行集中式流量处理。这些点成为瓶颈,因为它们难以分析和管理实时流量。例如,数据通常必须遍历整个网络堆栈,才能在到达用户空间应用程序或入侵检测平台等外部系统之前过滤恶意数据包。这会带来显著的延迟,并增加资源过载的可能性,尤其是在高吞吐量环境中。

此外,传统方法通常严重依赖于预定义的规则和静态配置,这使得它们在处理动态和分布式流量模式时缺乏灵活性。扩展这些系统需要在多个节点或区域复制集中式控制点,这增加了复杂性和基础设施成本。此外,需要导出数据以进行分析或在用户空间中应用安全逻辑所引入的延迟会削弱保护免受快速演变的威胁(如 DDoS 攻击)所需的实时响应能力。这些限制说明了集中式网络模型在现代分布式环境中的固有低效率,在这些环境中,速度、可扩展性和适应性至关重要。

可观测性

传统的可观测性模型依赖于捕获大量的系统事件或日志,并将它们传输到集中式的可观测性系统进行过滤、分析和存储。这种方法虽然可行,但效率低下。大量的原始数据(例如系统调用、网络活动和进程事件)必须传输到集中式系统,并在其中进行过滤以识别相关的见解。此过程会产生很高的 CPU 和内存成本,并延迟实时分析,因为每个事件都必须经过多个阶段才能被处理。此外,由于不相关的数据与有意义的事件一起传输,因此开销会给系统资源带来压力,从而难以在生成大量事件的环境(例如云原生系统)中有效地扩展。

安全

在传统的安全监控系统中,威胁检测依赖于用户空间代理或工具,这些代理或工具从日志、网络流量和系统事件中收集数据以进行分析。收集后,这些数据通常会发送到集中式安全信息和事件管理 (SIEM) 系统以进行进一步处理和关联。整个管道引入了多层延迟:首先,将事件从内核传输到用户空间;然后,将它们导出到 SIEM 进行聚合和分析;最后,需要人工或自动化系统根据调查结果采取行动。事件发生的时间(检查时间)与其检测和响应的时间(使用时间)之间的时间差会产生类似于检查时间、使用时间 (TOCTOU) 攻击的漏洞,攻击者可以利用延迟窗口来执行未被检测到的恶意操作。此外,在高流量环境中,资源耗尽可能导致事件丢失,从而增加错过安全事件的可能性,因为关键数据甚至可能永远无法到达 SIEM 进行分析。

在这些网络、可观测性和安全用例中,集中式智能模型的局限性——数据传输开销、延迟、可扩展性问题和上下文感知缺失——显而易见。

使用 eBPF 将模型翻转为分布式智能

借助 eBPF,我们可以直接在内核级别处理、过滤和处理流经系统的数据。这种架构方法通过将决策直接嵌入到数据生成点的系统中,从而颠覆了集中式模型。这意味着,我们可以使用嵌入内核的智能程序来分析、处理和处理数据,而不是转发大量原始数据以进行集中处理,从而准确地处理数据。通过这样做,eBPF 实现了从集中式、被动式决策到分布式、主动式智能的转变。

通过在其来源处理数据,我们大大减少了不必要的或不相关的通过网络发送的数据量,从而降低了信息传输开销。这最大限度地减少了基础设施本身的负载,并减少了数据存储和处理需求。我们系统的可扩展性不再需要依赖于扩展存储的能力和分析能力,这既昂贵又低效。借助 eBPF,分布式系统现在可以在本地分析数据,从而使系统能够更有效地扩展,因为每个节点都可以处理自己的数据处理需求,而不会压倒集中的控制点和故障点。eBPF 可以选择性地提取最相关的信息,而不是传输和存储每条数据,从而减少噪声并提高整体信号质量。

此外,这种方法引入了新的上下文感知水平。由于 eBPF 直接在内核中运行,因此它可以访问集中式模型可能遗漏或无法访问的系统范围的上下文。在源头做出的决策会受到实时、本地化条件的影响,从而产生更准确和相关的操作。嵌入在系统中的智能可以根据直接环境动态调整,使其更具适应性和响应变化的能力,并使速度成为这种新方法的决定性特征。eBPF 程序可以立即响应事件的发生,而不是等待数据在中央枢纽传输、聚合和分析。

这在安全威胁检测等场景中尤其有价值,在这些场景中,每一毫秒都很重要,或者在网络优化中,快速、动态的调整可以防止瓶颈。让我们回顾一下相同的网络、可观测性和安全用例,看看 eBPF 如何克服集中式智能的局限性并创造新的效率:

网络

Cloudflare 对 eBPF 的使用和 XDP 展示了分布式智能如何克服分布式网络中集中式智能的挑战。在缓解创纪录的 3.8 Tbps DDoS 攻击时,Cloudflare 利用 XDP 在最早的时间点检查和过滤网络接口卡 (NIC) 本身内的数据包。恶意流量在遍历内核网络堆栈之前立即被丢弃,从而大大减少了处理开销,并为合法流量释放了资源。这种方法增强了可扩展性,并允许在高压场景中进行实时响应。

通过允许将自定义逻辑动态注入到内核中,eBPF 允许 Cloudflare 快速适应不断变化的攻击模式,而无需重新启动系统或修改内核。他们可以更新其过滤逻辑,以实时响应攻击的特定特征,确保有效地识别和阻止恶意数据包。这种即时适应能力将 DDoS 缓解从被动过程转变为主动过程,使网络能够领先于攻击者。

eBPF 和 XDP 的结合体现了分布式智能如何重新定义网络性能和安全性。通过使决策更接近流量源并实现动态适应性,像 Cloudflare 这样的平台可以有效地缓解大规模攻击并保持运营稳定性,即使在极端条件下也是如此。分布式智能代表了现代分布式系统如何处理大规模网络挑战的决定性转变。

可观测性

使用 eBPF 进行内核内过滤改变了可观测性范式。eBPF 允许我们监控关键系统事件(如进程执行、网络连接和系统调用活动),并立即在内核中的源头丢弃不相关的数据,从而最大限度地减少发送到集中式可观测性系统的数据,而不是收集和传输所有系统事件到集中式系统进行过滤。这确保了只有相关的事件被传递以进行进一步处理,从而最大限度地减少资源消耗并提高实时响应能力。在源头进行过滤还可以受益于访问即时系统上下文,从而能够对关键事件做出更准确的决策,从而优化可观测性方面的性能和可扩展性。它还减少了集中存储的可观测性系统中的“噪音”,从而减少了资源压力。

Tetragon 提供了一些内核过滤优势的基准测试,结果非常显著。当观察高 I/O 密集型工作负载的文件完整性但没有可疑活动时,用户空间过滤(甚至没有考虑导出到额外的集中式可观测性系统)增加了 3.6% 的开销,而内核内过滤仅增加了 0.2% 的开销,性能提高了 17 倍。同样,通过跟踪建立的新连接和打开的端口来监控所有网络活动在内核中效率提高了 2.5 倍。

安全

通过将安全逻辑直接嵌入到内核中,使用 eBPF 可以应对这些挑战,从而在事件源头实现实时检测和响应。通过在内核中处理未经授权的系统调用或权限提升尝试等事件,eBPF 通过立即采取行动而无需将数据导出到用户空间或等待 SIEM 分析来关闭 TOCTOU 窗口。此外,eBPF 的内核内过滤确保只有相关的安全事件被传递到用户空间,从而减少数据传输开销并最大限度地降低资源耗尽的风险,即使在高负载下也是如此。由于决策是在实时和内核中做出的,因此 eBPF 消除了通常与将数据转发到 SIEM 并等待人工响应相关的延迟,从而可以在关键情况下立即采取行动,例如阻止漏洞利用或阻止网络中的横向移动。这种方法减少了延迟,并确保即使在极端的系统负载下,也能实时可靠地检测和缓解安全事件。

从内核深处的网络、可观测性和安全示例,到与外部 SIEM 系统的交互,将系统智能转移到数据附近在各个层面都有好处。集中式智能模型的失败(包括数据传输开销、延迟、可扩展性问题以及上下文洞察力的丧失)可以通过使用 eBPF 将智能直接嵌入到内核中来解决,在内核中,可以在数据生成的源头实时做出决策。

是数据,笨蛋

一句著名的政治竞选口号“问题是经济,笨蛋”,说明了底线,即竞赛的成败所在。

对于平台团队来说,尽管有其他所有的努力和使命蔓延,但将数据转化为价值的能力决定了公司的成功。是数据,笨蛋。

从训练 ML 模型,到将 IoT 传感器数据解释为有用的信息,再到观察用户数据以用于极其流行的 Web 规模服务或为电子商务商店提供服务等基本功能,并行处理大型实时数据流已成为我们系统的基本要求。经过很长一段时间,经典的数据局部性原则已从仅适用于应用程序扩展到我们用于管理和保护我们环境的系统和整体架构。

通过 eBPF 将智能直接引入数据代表了我们设计和管理云原生基础设施和分布式系统的根本性演变。eBPF 允许将复杂的计算和决策卸载到基础设施的边缘,即生成数据的地方。通过将智能嵌入到内核级别,eBPF 还可以实现实时、本地化的数据处理,从而减少集中式模型的低效率并最大限度地减少数据传输开销。

这种分布式智能模型增强了可扩展性和效率,并引入了更强的上下文感知能力和更快的决策制定。eBPF 动态响应其源头数据的能力,对于推动下一代安全、可扩展和高度自适应的基础设施至关重要。eBPF 已经成为下一代云原生架构的核心推动力,而向分布式智能的转变只会加速其采用。具有 eBPF 的分布式智能有望彻底改变我们未来几年对基础设施管理的思考方式。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注