网络技术的开源时代才刚刚开始

本文探讨了开源技术如何改变传统网络领域,从标准驱动的协议转向敏捷可编程的Kubernetes就绪基础设施。重点分析了eBPF和Cilium技术如何实现网络可编程化、零信任策略和高级可观测性,以及开源网络在现代云原生环境中的发展趋势。

网络技术的开源时代才刚刚开始

开源正在将网络从缓慢的标准驱动协议转变为敏捷、可编程、支持Kubernetes的基础设施。

在其大部分历史中,网络一直是一个标准优先、协议主导的领域。从OSI模型到TCP/IP协议栈,进步是通过工作组和RFC来衡量的,而不是GitHub提交。但这一现状正在快速改变。像eBPF和Cilium这样的项目,加上Kubernetes的架构需求,正在将网络从规范束缚的世界推向软件驱动的开源生态系统。发生在服务器、开发者工具和CI/CD管道上的变革,现在正发生在网络层。

开源未来已经到来,终于赶上了数据包传输的路径。

开源已赢得技术栈其他领域

开源作为企业技术主要创新引擎的角色已经如此稳固,以至于指出这一点都显得多余。Linux重构了服务器世界。源自Linux核心原语的容器催生了DevOps、分布式系统和现代部署方法。Kubernetes成为云原生计算的主导控制平面。所有这些都来自开源社区。

但当开源重新定义了计算、构建管道和应用架构时,它在网络领域尚未完全发力。考虑一下Python、JavaScript和Kubernetes等生态系统的成熟速度有多快。

这导致了开源在服务器基础设施、编程语言、开发者工具和框架领域作为颠覆性力量的完全主导。仅CNCF内就有超过22万贡献者参与近200个已成为云原生基础设施基石的CNCF项目。JavaScript生态的npm注册表有超过200万个包。Python有超过10万个库和20万个包。在软件开发、语言原语或从构建到预发布到生产的任何阶段,几乎没有哪个重要层面没有将用户期望转向开源节奏的创新。

然而,网络仍然以标准为基础。这是可以理解的。它必须在供应商和大洲之间、在光纤和固件之间工作。但在当今动态基础设施和开发者优先平台的时代,这种保守性开始阻碍发展。

网络为何保持保守

网络从来不是为了快速行动和打破常规而构建的。它必须在组织和地理边界之间互操作,容忍硬件故障,并支持性能密集型工作负载,任何失误都可能破坏关键业务运营。

当出现问题时,网络往往会受到指责,即使错不在它。这建立了一种规避风险的文化和最小变更的理念。毫不奇怪,像采用IPv6这样的重大转变花费了数十年时间。

IPv6最初在近30年前的RFC1883中定义。当时它只被称为IP下一代或IPng。直到2017年7月批准的RFC8200,IPv6才成为今天的样子。顺便说一句,这不是对IETF和IEEE等标准机构的批评。IPv6采用缓慢不应归咎于它们。不人性化的IPv6寻址方案和网络设备缺乏IPv6支持可能是替罪羊。但很明显,虽然基于标准的方法对于保持竞争公司网络设备的互操作是必要的,但它阻碍了我们在技术栈其他部分看到的进步。

结果导致这一基础设施层的演进速度远低于生态系统的其他部分。

可靠性优于敏捷性…直到现在

Linux内核的开发理念反映了类似模式。内核开发者遵循严格的"永不破坏用户空间"规则,将兼容性置于创新之上。核心接口的更改需要永久支持,并受到缓慢仔细的考虑,尤其是在网络方面。

这就是为什么eBPF(扩展伯克利数据包过滤器)成为这样一个转折点。它允许开发者在内核内安全运行沙盒程序,实现实时可见性、强制和可观测性,而无需更改内核源代码或加载自定义模块。它在保持稳定性的同时实现了灵活性。

这使得由eBPF驱动的网络平台Cilium如此具有变革性。Cilium不依赖静态的、受标准约束的行为,而是提供为Kubernetes和其他动态环境设计的可编程网络、零信任策略和高级可观测性。Cilium和eBPF的组合将网络重新定义为软件。它是可组合的、策略驱动的,并在不断改进。

Kubernetes正在施加压力

云原生工作负载改变了游戏规则。向微服务和编排基础设施的转变引入了一种传统网络工具未曾设计应对的动态性。Pod在几秒钟内出现和消失。服务发现必须即时适应。IP地址失去意义。策略执行需要远超源和目的地的上下文。

传统网络堆栈不是为这个世界构建的。容器编排下的原语是几十年前开发的。它们难以提供平台团队现在期望的可观测性、安全性和敏捷性。改造这些系统以满足现代需求已经达到极限。

这正是eBPF和Cilium大放异彩的地方。

eBPF为开发者提供了所需的钩子,可以在内核内提取指标、强制执行规则和重定向流量,而不破坏系统的其余部分。Cilium通过Kubernetes原生构造(如网络策略、服务网格和加密连接)在单一控制平面下操作化这些能力。

与封闭和不透明的解决方案不同,这些开源工具允许操作员随时间审计、扩展和改进它们。而且由于它们是为开放协作而构建的,平台团队可以在容器化应用、虚拟机甚至Windows环境中逐步采用它们,而不会分散其策略模型或重复执行逻辑。

开放网络模式正在扩展

现在正在发生的不仅仅是工具升级。这是一个平台转变。组织越来越多地围绕开放和可编程的网络层统一其基础设施。这些团队不仅是在Kubernetes中使用eBPF和Cilium。他们正在将这些能力扩展到虚拟机、裸金属和混合环境。他们希望有一种方式来定义、保护和观察他们的网络,无论工作负载在哪里运行。

就像开发者不再对使用Git、Docker或Helm犹豫不决一样,基础设施和安全团队开始将eBPF和Cilium视为基础。网络和平台之间的界限正在模糊。网络不再只是电缆和交换机。它是代码的延伸。

这正在推动真正的架构变革。平台团队希望减少孤岛。安全团队希望微分割而无需硬件扩张。可观测性团队希望无需开销即可访问实时数据。

Hubble作为Cilium的可观测性层,提供对容器化应用如何跨网络通信的实时可见性。基于eBPF构建,它直接从Linux内核提供丰富的流数据,而无需修改应用或容器。

1
2
3
4
$ hubble observe -t policy-verdict
Mar 21 11:18:51.917: default/netshoot-client:34898 (ID:11661) -> default/nginx-deployment-979f5455f-bnxh7:80 (ID:5834) policy-verdict:L3-L4 INGRESS ALLOWED (TCP Flags: SYN)
Mar 21 12:12:27.525: default/netshoot-client-worker2:48768 (ID:11661) -> default/nginx-deployment-979f5455f-bnxh7:80 (ID:5834) policy-verdict:L3-L4 INGRESS ALLOWED (TCP Flags: SYN)
Mar 21 12:15:40.016: default/unauthorized-client:41212 (ID:8087) <> default/nginx-deployment-979f5455f-bnxh7:80 (ID:5834) policy-verdict:none INGRESS DENIED (TCP Flags: SYN)

网络开放时代已经到来

网络中的开源不是边缘运动。它正快速成为现代基础设施的默认方法。随着企业现代化其平台,他们不再满足于缓慢的标准周期或孤岛系统。他们希望网络在设计上就是可编程、可观测和安全的。这适用于Kubernetes、虚拟机、云环境和数据中心。

eBPF和Cilium在正确的时间到来。它们让网络团队能够满足当今分布式应用的敏捷性和安全性需求,而不会牺牲性能或控制。随着组织扩展对微分割、运行时安全和服务感知网络的使用,这些开放技术正成为现代基础设施运营模式的核心。

正在进行的转变不仅仅是技术性的。它是文化性的。开发者期望基础设施像他们的代码一样动态和软件定义。平台团队需要跨越容器和虚拟机的统一策略模型。安全性和可观测性必须内置,而不是后期附加。

网络,这个长期以来技术栈中最保守的层,现在正在被重塑计算和应用交付的相同力量所改变。网络的开源时代不是未来愿景。它已经到来并正在获得动力。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计