云原生技术大全(一文看懂云原生网络功能)
云原生技术大全(一文看懂云原生网络功能)云原生系统的其他非功能要求是弹性和可用性,但用扩展冗余而不是扩展技术实现。云原生系统试图通过更高的可服务性和冗余度使子组件具有更高的可用性来解决可靠性问题。例如,声明式配置对网络的影响之一是禁止硬编码的IP地址。声明式配置允许整个系统自我修复,因为它使人们更容易读懂和回应系统应该是什么样子。然后可以使系统不断地自我修正。阿尔法公社欢迎在云原生领域有积累、想创业的高手来聊。我们了解产业、出手果断。在三类云资源(计算、存储和网络)中,网络似乎最难满足云原生的非功能性需求。例如,计算弹性可以通过虚拟机、容器和编排器合理分配,并通过 CI/CD 管道进行管理。网络弹性似乎在实施中有所欠缺。在这篇文章中,我们展示了云原生网络功能将网络应用引入云原生世界的一种尝试。究竟什么是 CNF,为什么它们很重要?不论是在过去还是现在,软件定义网络(SDN)都试图实现网络配置的自动化。CNF不是另一种SDN,而是
阿尔法公社
重度帮助创业者的天使投资基金
━━━━━━
阿尔法公社说:在三类云资源(计算、存储和网络)中,网络似乎最难满足云原生的非功能性需求。例如,计算弹性可以通过虚拟机、容器和编排器合理分配,并通过 CI/CD 管道进行管理。网络弹性似乎在实施中有所欠缺。本文展示了云原生网络功能将网络应用引入云原生世界的一种尝试。究竟什么是 CNF,为什么它们很重要?欢迎参考。
阿尔法公社欢迎在云原生领域有积累、想创业的高手来聊。我们了解产业、出手果断。
Key Takeaways- 云原生网络不是另一种方式的SDN,它以一种完全不同的方式来看待网络。
- 虽然 SDN 似乎是把物理网络和机器做了虚拟化,但「云原生网络功能」(Cloud-native Network Functions,下文简称 CNF)不仅仅是容器化的网络和虚拟机,它还将网络功能分割成服务,这是 CNF 与 SDN 的一个主要区别。
- CNF 是 OSI 网络模型中的网络功能(越底层实现起来就越困难),这些功能是根据云原生实践实现的。
- 虽然 SDN 数据平面(这里指的是转发数据包)位于硬件 ASIC 上,或在传统内核网络转发的虚拟化盒子里,但 CNF 探索用户平面转发或更新的 eBPF 数据路径转发。
- 在云原生数据中心中,偏向于三层的解决方案,但 CNF 的一大驱动力是电信服务提供商,他们经常下降到二层的功能。
在三类云资源(计算、存储和网络)中,网络似乎最难满足云原生的非功能性需求。例如,计算弹性可以通过虚拟机、容器和编排器合理分配,并通过 CI/CD 管道进行管理。网络弹性似乎在实施中有所欠缺。在这篇文章中,我们展示了云原生网络功能将网络应用引入云原生世界的一种尝试。究竟什么是 CNF,为什么它们很重要?
SDN重生?我们以前没有试过吗?不论是在过去还是现在,软件定义网络(SDN)都试图实现网络配置的自动化。CNF不是另一种SDN,而是以一种完全不同的方式来看待网络。从某种意义上说,CNF与SDN一样,都是基于软件而非硬件的解决方案。但云原生网络有一套全新的非功能要求,与SDN不同。云原生的非功能要求优先考虑弹性,并推而广之,自动化也比SDN多得多。这一要求的实现倚重于声明性配置。换句话说,云原生配置应该更喜欢说 "想做什么",而不是 "想怎么做"。
例如,声明式配置对网络的影响之一是禁止硬编码的IP地址。声明式配置允许整个系统自我修复,因为它使人们更容易读懂和回应系统应该是什么样子。然后可以使系统不断地自我修正。
云原生系统的其他非功能要求是弹性和可用性,但用扩展冗余而不是扩展技术实现。云原生系统试图通过更高的可服务性和冗余度使子组件具有更高的可用性来解决可靠性问题。
例如,在云原生系统中,如果一个顶级组件带有多个冗余的子组件,其中有几个组件是可用的,但有几个组件出现故障,这比一个紧密耦合但 "高度可靠" 的组件更可靠。
超越虚拟化的网络盒子在某种意义上,"网络功能" 并没有被解耦。虚拟网络功能(VNF)开始是网络硬件的虚拟化。VNF有一个硬件与虚拟化硬件的一对一对应关系,小到网卡、特定应用集成电路(ASIC),大到整个交换机。
虽然SDN似乎采取物理网络机器并将其虚拟化,但CNF不仅仅是容器化的网络虚拟机。CNF是关于进一步解耦网络功能的。CNF根据敏捷产品团队的发布周期,将网络功能分组为具有类似变化率的组件,这就摆脱了大公司的大型发布周期。由产品团队发布的软件 [4] 可以被认为是微服务的 "厚" 定义。微服务的 “薄” 定义是指作为容器内的单一进程类型交付的软件。通过跟踪开发软件的产品团队,我们发现厚微服务在实践中往往看起来薄微服务很像。
为了管理微服务,出现了编排器。编排器负责微服务的调度、启动、停止和监控(生命周期 [3])。有许多编排器,其中 Kubernetes(K8s)是最受欢迎的,但也有特定领域的编排器,如电信领域的编排器。云原生生态系统的早期承诺之一是使编排器K8s不被 "碎片化"。由CNCF维护的官方K8s认证 [4],确保K8s的任何分叉版本都能支持社区规定的API和最佳实践。
究竟什么是云原生网络功能?云原生网络功能(CNF)位于 OSI 模型的第六层,它出现在了云原生足迹图 [5] 中。CNF在堆栈中的位置越低,良好的云原生实现就越困难。这可能是因为网络需要与编排器和底层主机集成,同时保留其云原生属性。这也可能是因为将以前的网络功能(如转发平面的功能)从共享内存 / 线程模型中分离出来,形成一个无共享的进程模型,如果不仔细操作,会降低性能。
为了理解网络功能解耦的影响,了解一下网络层背后的原因是有帮助的。OSI层的发展使网络创新得以发生,同时保持堆栈上下各层之间的互操作性。在网络层,IP协议最终成为一个大赢家。在数据链路层,ARP出现了。多个供应商在每一层的协议层面进行迭代,创造新的协议和协议的新实现。CNF有机会作为库内的协议、微服务内的协议,甚至作为网络应用内的一组微服务来实现。
Network Service Mesh[6] 项目的 Ed Warnicke 曾经说过,对于网络服务来说," 数据包就是有效载荷 [7] "。这意味着网络应用或服务实际上是对网络数据包或帧进行操作(转换、路由或分析)。以下是 OSI 模型各层的网络功能的一些例子:
• 第七层:CoreDNS
• 第六层:NFF数据包检查器
• 第五层:Rsocket
• 第四层和第三层:Envoy/Network Service Mesh / 各种CNI插件
• 第二层:基于VPP的 VSwitch
对于云原生网络应用,或跨越多层的高阶CNF,例如MATRIXX 软件 [8] 公司的5G融合计费系统 [9] 和PANTHEON.tech[10] 公司的BGP服务器 [11] 使用案例。
云原生足迹图在一定程度上描述了云原生应用程序的成熟度。当我们深入研究云原生道路上的每一步时,事情就会变得更加复杂,比如网络、策略和安全。这就是说,在帮助你实现云原生的工具中存在着云原生的反射性。当把它应用于 CNF时,我们最终不得不像其他云原生应用一样实现网络功能。这方面的总结如下:
- 1. 第一步从粗粒度的部署开始,通常以容器形式实现。
- 2. 第二步是让服务或应用程序在 CI/CD 管道中以无状态和声明式的配置进行部署。
- 3. 第三步是支持部署在同质化节点上的编排器(如 K8s),该编排器管理服务的生命周期。
- 4. 第四步确保网络功能有遥测功能,这包括度量(如开放度量兼容的 Prometheus)、追踪(兼容 OpenTracing 的 Jaeger)和事件流兼容的日志(如 Fluentd)。
- 5. 云原生成熟度的第五步,服务发现,允许网络服务被集群内部甚至外部的其他消费者发现。
- 6. 为了促进声明性配置,第六步概述了策略的重要性,特别是网络和安全政策,通过服务适用和支持。
- 7. 第七步是分布式存储,适用于使用有状态工作负载的地方,以确保与云原生环境兼容。
- 8. 云原生信息传递、注册表、运行时和软件分发是云原生成熟度的其他阶段,使应用程序的旅程 [12] 更加完善。
有了CNF,数据平面(也被称为转发平面)与传统硬件的距离更远。由于云原生原则重视扩展而不是扩大,这意味着拥有更多的同质化商用节点比拥有更少的异质化和专业化节点更受欢迎。正因为如此,出现了一种分解运动,用商用服务器来代替专门的网络交换机的特定应用集成回路(ASIC)。
这样做的一个好处是,出现了支持更敏捷的变化速度的数据平面。虽然SDN数据平面(这里我们说的是字面意义上的转发数据包)停留在硬件ASIC上或传统内核网络转发的虚拟化盒子里,但CNF已经开始探索用户数据平面(如 VPP[13])、eXpress Data Path(XDP)的扩展伯克利包过滤器(eBPF)和 SmartNIC 转发等技术。
三层网络升华在云原生数据中心中,有一个偏向于三层的解决方案 [14]。能够声明性地指定和自动配置三层网络,这是发展Kubernetes网络模型的决定性因素。这些新的云原生网络依靠IP地址来连接集群的节点和应用,而不是第二层的MAC和 VLAN。然而,这主要是编排器及其应用程序的网络故事。数据中心有多个移动部件,在这个故事中的变化率不同。
这三层可以说是在编排器下面(有SONIC等网络操作系统,Terraform等配置工具),在编排器(如Kubernetes)本身,以及在编排器上面但在容器(如 CNF)内。编排器下面的网络基础设施结构,如数据中心的架顶交换机(可能是分解的),继续拥有第二层配置。电信领域是采用 CNF 的主要驱动力,也继续有无法避免的第二层用例,如多协议标签交换(MPLS)。第二层结构的故事仍在用新的交换软件实现来书写,如SONiC[15]。
总结网络的配置、部署和自动化是难以实现弹性的一些原因,而弹性是云原生环境的主要优势。这可能是转移到超级服务器(如亚马逊)的决定性因素,即使是在需要更多定制部署的时候。这与电信领域特别相关,因为他们有定制的网络协议,他们可能想为企业客户提供支持(如 MPLS)。CNF通过基于变化率的网络功能解耦来解决这些部署问题,一直到粗粒度的镜像和进程(如容器)级别。这就避免了网络容易出现的传统的锁步式部署问题。
CNF是网络功能,也就是传统上认为位于OSI堆栈上的功能,遵循云原生实践来实现,它与云原生生态系统耦合。网络,尤其是电信网络,对非功能的要求由来已久,比如说弹性。电信服务提供商以911电话为例,将其作为一个要求极度弹性和可用性的关键任务系统。即便如此,云原生生态系统的非功能属性也得到了服务提供商的关注。
这些属性,如可用性(云原生型)、易于部署和弹性,促使电信服务提供商对电信设备供应商(包括物理和软件)施加压力,使其更加云原生。这就要求这些新的网络组件遵循云原生基础设施的最佳实践,以便成为云原生生态系统中的成熟解决方案。这并不容易,因为要把传统上紧密耦合的、对性能有严格要求的组件(如网络数据线)解耦,是非常困难的。
CNF空间中的数据平面是一项正在进行的工作,有许多解决方案。仅仅是数据平面的概念就使对CNF的理解变得复杂,因为CNF不仅仅是一个物理盒子的虚拟化表示。在一个微不足道的层面上,云原生数据中心的网络可以通过集中于默认的内核网络和第三层IPv4/IPv6网络来避免这种复杂化。这对于电信公司的用例或网络结构的实施通常是不可行的。这些问题是网络软件解耦的自然发展的一部分,所以没有办法避免。如果CNF做得好,就会带来以前没有意识到的可部署性、弹性、易配置性和弹性的新水平。
引用链接[1] Cloud Native Network Functions Are Here: https://infoq.com/articles/cloud-native-network-functions/
[2] Jimmy Song: https://jimmysong.io/
[3] 生命周期: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/
[4] K8s 认证: https://www.cncf.io/certification/software-conformance/
[5] 云原生足迹图: https://github.com/cncf/trailmap
[6] Network Service Mesh: https://networkservicemesh.io/
[7] 数据包就是有效载荷: https://www.youtube.com/watch?v=OyI2ZuwIc_Q
[8] MATRIXX 软件: https://www.matrixx.com/5g-bss-technology/
[9] 5G 融合计费系统: https://github.com/cncf/cnf-wg/tree/main/use-case/0003-UC-stateful-cnf
[10] PANTHEON.tech: https://cdnf.io/cnf_list/BGP/
[11] BGP 服务器: https://github.com/cncf/cnf-wg/tree/main/use-case/0002-UC-bgp-enterprise
[12] 应用程序的旅程: https://github.com/cncf/trailmap
[13] VPP: https://s3-docs.fd.io/vpp/22.10/
[14] 偏向于三层的解决方案: http://docs.projectcalico.org/v3.5/usage/troubleshooting/faq#i-heard-calico-is-suggesting-layer-2-i-thought-you-were-layer-3-whats-happening
[15] SONiC: https://sonic-net.github.io/SONiC/
本文转载自云原生社区动态,作者Wavell Watson,译者Jimmy Song。
关于阿尔法公社
阿尔法公社(Alpha Startup Fund)是中国领先的早期投资基金,由曾带领公司在纳斯达克上市的许四清和前创新工场联合管理合伙人蒋亚萌在2015年共同创立。
阿尔法公社基金的三大特点是系统化投资、社交化创业者社区运营和重度产业资源加速成长。专注在半导体、企业服务软件、人工智能应用、物联网技术、金融科技等科技创新领域进行早期投资。目前已经在天使轮投资了包括白山云科技、领创集团(Advance Intelligence Group)、Zenlayer、帷幄科技、所思科技等为数众多的优秀项目。
阿尔法公社获得36氪“2017年度最受创业者欢迎天使投资机构Top20”、“2019年中国企业服务领域最受LP欢迎早期投资机构”、“2019年中国企业服务领域最具发现力投资机构TOP10”以及“2020中国最受创业者欢迎早期投资机构TOP50”、“2021年度中国最受LP认可早期投资机构TOP30”、“2021年中国最受创业者欢迎早期机构TOP50”、“2021年中国跨境出海领域投资机构TOP10”等奖项;获得钛媒体“2020 EDGE TOP50投资机构”;还获得母基金研究中心“2018年中国早期基金最佳回报TOP30”、“2019中国早期基金最佳回报TOP30”,以及母基金周刊“2020中国投资机构软实力GP100科技力Top10”等奖项。
创始合伙人许四清获得2020年“福布斯中国创投人100”、投中“2019年中国最佳早期投资人TOP50”,以及36氪“2018年中国企业服务领域投资人TOP10”、“2019企业服务领域投资人TOP20”等奖项。创始合伙人蒋亚萌获得2019及2021年“福布斯中国创投人100”、36氪“2019年中国中生代投资人TOP50”大奖。