写点什么

云原生 NPM 与传统 NPM 的差异

作者:乘云 DataBuff
  • 2024-06-12
    浙江
  • 本文字数:1870 字

    阅读完需:约 6 分钟

云原生NPM与传统NPM的差异

摘要:以 eBPF 技术为主的 NPM 监控在市场日趋火热,本文主要以 Packet 作为处理目标展开对传统 NPM 与云原生 NPM 的差异化分析,带领大家了解二者的优劣势。


网络性能监控 (Network Performance Monitoring - NPM) 是一种用来采集、监控、诊断网络相关的技术和方法,可以帮助 IT 运维人员方便观察所管理网络的运行状态,了解潜在的故障点和风险,并有助于快速定位故障原因。此外,也能为最大化/调优网络性能、可用性和服务质量提供支撑。


为了更好的监控网络运行状态,NPM 产品会采用多种方法来采集多种指标和数据,如 SNMP、NetFlow / sFlow、Packet Capture 等。这些数据中,SNMP 指标需要采集设备主动向被管理的设备去请求,Flow 信息由网络设备采样和推送,而 Packet 通常由独立设备通过网络设备的镜像端口进行流量获取。可见,Packet 的方式能提供更多和更完整的网络真实面貌,但是对采集设备的要求也更多,不仅要处理大流量,计算各种网络指标,还需要能深度解析各种网络协议,从而提取更多的信息。因此,市场上不同的 NPM 产品,主要的竞争差异也是对包的处理,比较先进的 NPM 产品,从网络包中提取大量的信息之后,通过机器学习和 AI 的方式,实现自动风险识别,事件提醒等高级功能。


因此,本文主要以 Packet 作为处理目标来分析传统 NPM 与云原生 NPM 的差异。虽然传统网络和云原生的基础设施环境不一样,但是 NPM 的目标是一样的:更好地了解网络实时运行状态,为扩容/缩容提供依据,为快速故障诊断提供支持,等等。但也正是 IT 基础设施环境的不一样,导致了两种环境下 NPM 的巨大差异,主要体现在以下几方面:


1) 部署方式


传统 NPM 需要独立硬件连接网络设备的镜像端口,此外,为了能进行多段分析(同一个网络包通过多个网络设备之后,需要计算每个网络设备的转发时延),就需要有多台物理设备连接不同网络设备的镜像端口,如果不同网络设备的物理位置比较近,可以连接至同一个 NPM 设备的不同抓包端口。


云原生 NPM 通常以纯软件方式形式存在,部署在业务系统的主机内,如果业务系统已经采用 Docker, K8S 等集群方式,那么部署起来将更加方便。由于每个主机都会进行部署,因此天生就可以从多处采集不同的流量,实现类似传统 NPM 中的多段分析。


2) 采集的流量内容


传统 NPM 可以采集到所有的物理网络流量,包括网络设备之间的路由协议数据。


云原生 NPM 主要采集所在(虚拟)主机的网络流量,包括主机与外部的通信流量,也包括主机内部通过虚拟网络设备互相连接的容器。


3) 业务影响


从 1)中可知,传统 NPM 使用专用硬件设备来处理和分析网络数据,因此完全不会影响原先的系统运行。


云原生 NPM 运行在原有的系统中,会占用原有系统的资源,如果 NPM 占用太多的资源,很有可能会影响系统的运行。


4) 优/劣势


传统 NPM 可以捕获到更多种类的网络流量,不仅可以分析路由协议,观察网络转发的性能;也可以分析业务的流量,评估客户端和服务端的网络处理性能。另外,传统 NPM 可以使用更多的资源,对捕获的数据包做更详细的分析;甚至可以将所有捕获的数据进行存储,便于事后更丰富的分析和调查取证使用。相比于软件部署的云原生 NPM,硬件成本比较高,升级维护也没那么方便。


云原生 NPM 部署在业务系统主机内,不仅可以捕获主机与外界的通信流量,还可以捕获主机内部的网络流量,尤其微服务架构流行的时代,主机内部的通信流量也日益增多。缺点是要保持实现的轻量,以免消耗过多的资源,影响业务系统。另外,一般部署的节点较多,对 NPM 的管理也有较高要求。


5) 实现技术


传统 NPM 大多采用一台配置较高的服务器硬件,甚至在特别大的流量场景下会使用专业的抓包网卡来捕获数据包,专业网卡一般还会提供高精度的网络包时间戳功能,为计算网络时延、抖动等功能提供帮助。有时,还会配备大容量的磁盘阵列,用于存储捕获的数据包。在软件层面,目前使用 DPDK 技术捕获数据包比较流行。


云原生 NPM 大多采用 libpcap/winpcap 抓包技术,近年来基于 eBPF 的 XDP 技术也很受关注。


加入乘云伙伴群


乘云数字是一家可观测软件服务商,专注于为企事业用户提供一站式的 IT 性能监测与人工智能运维分析服务。云原生环境作为目前主流的基础设施发展方向,我们也十分重视在云原生场景中采集各种主机、容器、POD 等各种维度的数据,其中 NPM 相关的指标和数据也是我们重点关注的一个方向,这些数据被用来观测复杂的云原生网络环境的动态,同时也帮助快速定位网络相关的故障和性能问题。乘云数字的 NPM 功能,不仅采集操作系统提供的详细指标数据,还结合了旁路抓包的深度流量解析技术和基于 eBPF 的系统可观测技术。以较少的资源开销,将应用层与网络层进行关联,将网络故障和事件定位至具体的应用,极大地缩短了定位网络异常的时间。



发布于: 刚刚阅读数: 4
用户头像

让云运维更简单 2023-06-25 加入

云观测领导者

评论

发布
暂无评论
云原生NPM与传统NPM的差异_云原生_乘云 DataBuff_InfoQ写作社区