SDN云网分析中的服务拓扑与业务网络

SDN in China

2018年11月21日

核心技术

引言:SDN价值的核心是实现以应用为中心的云网监、管、控自动化。而服务拓扑和业务网络是应用部署与运维过程中的两个基本概念,是涉及同一主题的两个方面。服务拓扑反映应用的业务维度,而业务网络则代表相应网络支撑的资源维度。针对不同的场景,服务拓扑的节点、相互间的依赖关系、以及相关统计等信息的获取可采用不同方式实现。

业务网络相关信息可以通过与SDN控制器对接等手段来创建。监控系统采集到的网流、统计及聚合数据应采用时间序列数据库存储,并且云管平台等的各种对象信息的动态性也需要在数据存储方式的时间维度上有所体现。SDN云网分析基于服务拓扑和业务网络两个视角对数据中心的业务应用进行相应的用量、性能、回溯、安全等分析,是实现SDN白名单模式的细粒度网络与安全整体解决方案部署与运维自动化的基础和保证。

%e5%9b%be1%e4%ba%91%e7%bd%91%e5%88%86%e6%9e%90%e4%b8%ad%e7%9a%84%e6%9c%8d%e5%8a%a1%e6%8b%93%e6%89%91%e4%b8%8e%e4%b8%9a%e5%8a%a1%e7%bd%91%e7%bb%9c

图1 云网分析中的服务拓扑与业务网络

服务拓扑

在SDN云网分析背景下,服务拓扑是表达业务应用相关信息的基础性数据结构。服务拓扑由一系列节点和节点间的关联关系构成。节点的粒度可以是进程、容器、虚拟机、物理服务器,或相应的集群、资源池,以及它们的组合。服务节点对应计算资源,不包含网络设备,其关键标识是IP地址和/或端口以及相应的集合。关联关系表示节点之间的相互依赖等,可以是物理连接、虚拟连接、TCP连接、或网络流量,也可以是相应的统计信息,以及安全隔离与访问策略等。不同的云平台所承载的主要的服务对象的粒度特性有所不同。

对于Bare-Metal场景,服务拓扑节点对应为物理服务器;在IaaS的OpenStack、vSphere等场景下服务节点主要与虚拟机对应;在PaaS K8S场景下,服务节点可以体现为PoD、ReplicaSet、DaemonSet和Deployment等。通常情况下进程是最基本的节点粒度,是服务实现、运行、部署、运维的基本单元。

业务网络

业务网络是基于物理网络或服务器虚拟网络的、对相应的业务应用服务拓扑实现支撑的网络逻辑分片。业务网络与服务拓扑是构成以应用为中心的SDN自动化部署这个过程中同一主题相辅相成的两个方面。与服务拓扑的区别在于业务网络拓扑的中间节点代表网络设备,可以是物理网络设备,或者计算资源中的虚拟网络设备;端节点对接服务。与业务网络的区别在于服务拓扑的所有节点都是与计算资源对应的。

服务拓扑视角原则上不呈现或不需要呈现业务网络的细节,而业务网络视角则能够涵盖服务拓扑的信息。SDN业务网络的概念实际上分为不同的模式。通常情况下对应二层交换和三层路由,转发的是网包。这里实际上并没有相应的网络功能元素实体与业务网络这个概念相对应。以Bare-Metal模式部署服务的场景下业务网络即对应相应物理网络;在OpenStack场景下业务网络对应为项目/租户的虚拟网络,或者说业务网络实际上是与VLAN对应的;以及同一个逻辑网络可支持多个业务的运行等。

目前SDN业务网络出现了另外一种模式,就是服务网格Service Mesh。这种模式是有具体的功能单元实体与业务网络对应的。服务网格模式的业务网络转发的是请求和响应,是由分布式的数据面应用协议转发代理与集中式的控制器组件构成,同样遵循SDN架构原则。服务网格这种将应用逻辑实现与通信协调机制隔离的模式为数据中心的运维提供了相应的管控和监控的机制,为进一步提高业务应用的有效性、稳定性等提供了可能。通常服务拓扑相关信息的采集主要是通过在计算节点上部署相应探针以及通过与云管平台对接实现的。而业务网络特别是拓扑信息等则可以通过与SDN控制器的对接获取,在某些场景或阶段也可以或需要通过人工或人机交互的方式配置创建。

SDN云网分析与管控应该是一个迭代演进的过程,某些情况下需要根据分析报告来确定管控策略;另外的情况下可能是需要针对特定的服务拓扑或业务网络获取相关的细节或关联信息。SDN云网分析的基本观念是把繁琐的、可形式化的操作自动化以支持运维人员直观便捷地获取各种信息、执行各种操作、解决各种问题。在这个过程中不仅采集的网流信息、各种统计数据要存储在时间序列数据库TSDB中,云平台的各种对象数据等也是动态变化的,特别是基于容器的微服务架构系统,其存储也要考虑相应的时间维度。

服务拓扑分析

信息采集

主要涉及节点信息,节点间互联依赖关系,以及相关统计、属性信息等。不同的场景或者在不同的条件下可以采用不同的模式实现。

%e5%9b%be2%e9%83%a8%e7%bd%b2%e6%8e%a2%e9%92%88%e5%8f%8a%e4%b8%8e%e4%ba%91%e7%ae%a1%e5%b9%b3%e5%8f%b0%e5%af%b9%e6%8e%a5%e8%8e%b7%e5%8f%96%e6%9c%8d%e5%8a%a1%e6%8b%93%e6%89%91%e4%bf%a1%e6%81%af

图2部署探针及与云管平台对接获取服务拓扑信息

第一种模式「图2」的服务节点信息通过与云管平台对接获取;而服务节点之间互联依赖关系等通过在各服务器主机上部署代理探针获取。典型的实现方案为WeaveScope对K8S的监控。通过调用API Server获取相应的服务节点的资源定义,呈现为不同的粒度,可以是进程、容器、Pods、ReplicaSet、DaemonSet、Deployment或主机等。通过代理探针采用netstat命令、conntrack、eBPF等机制来获取相关进程、TCP连接等信息,以及IP地址、端口信息与进程的对应关系等。

%e5%9b%be3%e6%9c%8d%e5%8a%a1%e7%bd%91%e6%a0%bc%e5%9c%ba%e6%99%af%e4%bb%8e%e7%ad%96%e7%95%a5%e9%85%8d%e7%bd%ae%e4%b8%ad%e8%8e%b7%e5%8f%96%e6%9c%8d%e5%8a%a1%e6%8b%93%e6%89%91%e4%bf%a1%e6%81%af

图3服务网格场景从策略配置中获取服务拓扑信息

第二种服务网格模式「图3」的服务拓扑信息包括节点和关联关系等都直接取自云管平台和服务网格管控系统「K8S/Istio」的策略配置。统计等相关信息则取自服务网格的报告「Telemetry」机制。

%e5%9b%be4%e9%80%9a%e8%bf%87%e7%bd%91%e6%b5%81%e4%bf%a1%e6%81%af%e9%87%87%e9%9b%86%e6%8e%a8%e5%af%bc%e6%9c%8d%e5%8a%a1%e6%8b%93%e6%89%91

图4 通过网流信息采集推导服务拓扑

第三种模式「图4」通过与相应的云管平台对接获取服务节点信息,通过相应的物理网络设备或者在虚拟网络服务器上部署的代理采集网络流量信息。将网流信息与服务节点信息相关联获取服务间依赖关系等,来推断相应的服务拓扑。在无法自动获取云管平台服务节点信息的情况下,可以通过相应的人机交互等方式来推断、创建相应的服务拓扑。这种模式是网络层面的解决方案,典型应用场景是针对以VM为服务粒度的OpenStack、vSphere云管平台。

三种模式的对比

模式

实现机制

信息采集

依赖关系

业务网络

拓扑呈现

#1

服务层面

部署探针

TCP连接

Route/IPtable

WeaveScope

#2

服务层面

服务网格对接

配置、报告

Istio/Envoy

Jaeger

#3

网络层面

云平台对接

网流信息

Neutron/OVS

DeepFlow

模式#1的优点是精细、效率高、占用系统资源少;模式#2的优点是从系统配置获取服务拓扑信息;模式#3的优点是基于大数据的解决方案,通用、适用多种场景、可以关联网络等多种信息。

可视化呈现

基于服务拓扑数据结构的构建,可以进一步将其他的CPU、内存资源占用信息等相关联,并直观地呈现出来;可以通过对服务拓扑进行粒度、层次、属性等过滤,定位所关注目标信息;可以识别资源占用最多的节点;可以按不同范围、不同的名字空间呈现相应的拓扑;可以过滤处于不同(运行、停止、故障等)状态的节点等。

从而为运维人员提供清晰的系统运行全貌、局部和相关细节,并可实现云网智能业务的用量、性能、安全、回溯等的分析功能。

%e5%9b%be5-%e6%9c%8d%e5%8a%a1%e6%8b%93%e6%89%91%e5%88%86%e6%9e%90%e5%91%88%e7%8e%b0

图5 服务拓扑分析呈现

业务网络分析

信息采集

可以通过与SDN控制器「LLDP」对接获取相应的网络拓扑等信息,包括物理网络和服务器虚拟网络。通过与云管平台对接或人工交互的方式确定业务应用的服务端点信息。通过服务拓扑互联的路径分析识别出对应的业务网络拓扑,并关联各种信息。通过相应的物理网络设备提供网络流量信息,或者在主机上部署代理,进行虚拟网络的流量信息的采集,并将网流信息与服务节点及网络设备节点等信息关联到相应的业务网络上。

另一方面,也可以通过采集的网流信息推导相应的业务网络拓扑。比如当一个IP发送TCP SYN-ACK包,且携带有特定的TTL取值时,可以认为该IP及其对应的端口号提供的是一个服务,而根据该网流所经网络设备的解析构建相应的业务网络拓扑。

%e5%9b%be6%e9%80%9a%e8%bf%87%e4%b8%8esdn%e6%8e%a7%e5%88%b6%e5%99%a8%e5%af%b9%e6%8e%a5%e8%8e%b7%e5%8f%96%e7%bd%91%e7%bb%9c%e6%8b%93%e6%89%91%e7%ad%89%e4%bf%a1%e6%81%af

图6 通过与SDN控制器对接获取网络拓扑等信息

可视化呈现

服务拓扑视角可以不呈现业务网络细节,而业务网络视角则需要涉及到相应的服务拓扑。与业务应用的服务拓扑相对应的业务网络的呈现可以体现在物理Fabric Underlay网络层面上,服务器Overlay虚拟网络层面上,以及容器场景的三层或二层网络等层面上。

基于业务网络拓扑,运维人员可以根据需要进行相应的标签、过滤等,识别、显示出特定服务拓扑所对应的业务网络视图。通过业务网络视图实时动态地展现拓扑结构以及流量关系,针对特定的业务应用进行相应的用量统计分析、性能量化分析、流程特征分析、回溯分析、安全分析等。当发生故障时,通过位置、时间、IP地址或者虚拟机,通过查看相应性能指标,比如应用访问时间、网络访问时间等,定位、发现故障原因。

%e5%9b%be7%e4%b8%9a%e5%8a%a1%e7%bd%91%e7%bb%9c%e5%88%86%e6%9e%90%e5%91%88%e7%8e%b0

图7 业务网络分析呈现

云网分析的价值

SDN云网分析针对不同的场景服务拓扑发现可以采用各种不同的机制实现。业务网络的信息可以通过与SDN控制器对接获得,也可以通过人工交换方式构建。而实际的云网分析产品应该包括或综合有上述的各种模式,或可以便捷地与第三方组件构成有效的生态解决方案。

服务拓扑和业务网络是SDN云网分析的基本概念。服务拓扑与业务网络的发现与分析是SDN监、管、控自动化在系统部署与运维过程中的关键。在企业业务系统演进迁移过程中,有效地识别现有应用,在运维过程中方便地定位关联信息、了解应用层面的各种状况,是实现SDN云网监、管、控操作的自动化以及白名单模式的细粒度网络与安全整体解决方案(策略输出、变更验证功能等)的基础与保证。

%e4%b8%ad%e7%be%8e%e8%ae%ba%e9%81%93%e7%be%a4

Related Posts

「直播回看」DeepFlow——开启高度自动化的可观测性新时代

我们相信DeepFlow 是送给新时代开发人员、运维人员的一份礼物。我们希望开发人员能有更多的时间聚焦在业务上,将可观测性更多的交给自动化的 DeepFlow,让自己的代码更清晰整洁。

Read More

「直播回看」高清云网可观测之全链路追踪实战

“云原生可观测性分享会”第七期《高清云网可观测之全链路追踪实战》由云杉网络 高级产品经理 李倩分享,针对云网络的全链路追踪问题,用「实战」带领大家一步一步破解“网络谜案”。

Read More