4. 接口分类:南向接口、北向接口、东西向接口在升级流程中的职责划分
在租户隔离蓝图升级场景中,控制平面接口按数据流向与交互对象可划分为三类:南向接口(Southbound Interface, SBI)、北向接口(Northbound Interface, NBI)和东西向接口(East-West Interface, EWI)。三类接口在升级流程中承担截然不同的职责,共同构成数据传输的完整闭环。
4.1 三类接口的定义与核心职责
| 接口类型 | 交互对象 | 核心职责 | 典型协议/载体 |
|---|---|---|---|
| 南向接口 (SBI) | 控制平面 → 数据平面(转发设备、虚拟交换机、CNI 插件) | 下发租户隔离策略、流表规则、QoS 配置;采集设备状态与拓扑变更 | OpenFlow、OVSDB、gNMI、NetConf |
| 北向接口 (NBI) | 编排层/运维平台 → 控制平面 | 接收租户蓝图升级请求、隔离策略变更、租户元数据更新;返回升级状态与审计日志 | RESTful API、gRPC、GraphQL |
| 东西向接口 (EWI) | 控制平面实例之间(跨集群、跨区域、跨可用区) | 同步租户隔离状态、协调升级批次、传递分布式锁与一致性快照 | Raft、gRPC Stream、Kafka |
设计要点:三类接口在升级流程中并非串行执行,而是并行协作。南向接口负责“执行”,北向接口负责“表达”,东西向接口负责“同步”。任何一类接口的中断都会导致升级流程阻塞或数据不一致。
4.2 升级流程中的职责划分
以一次典型的租户隔离蓝图升级为例,三类接口在以下四个阶段中的职责划分如下:
- 阶段一:升级触发与校验(北向主导)
- 运维平台通过北向接口提交升级蓝图(含租户 ID、隔离策略版本、目标配置)。
- 控制平面校验蓝图合法性,返回校验结果(成功/失败/冲突)。
- 若校验通过,控制平面生成升级任务 ID,并锁定该租户的隔离状态。
- 阶段二:状态同步与协商(东西向主导)
- 控制平面通过东西向接口将升级任务广播至所有相关实例。
- 各实例确认当前租户隔离状态版本,通过分布式共识(如 Raft)确定升级起始点。
- 若存在跨集群依赖,东西向接口负责传递依赖关系图与批次序号。
- 阶段三:策略下发与生效(南向主导)
- 控制平面按批次通过南向接口向数据平面下发新的隔离策略。
- 南向接口采集每台设备的生效确认信号(ACK/NACK)。
- 若某设备返回 NACK,控制平面触发回滚或重试逻辑。
- 阶段四:结果聚合与反馈(北向 + 东西向协同)
- 东西向接口汇总所有控制平面实例的升级结果,形成全局一致性视图。
- 北向接口将最终升级状态(成功/部分成功/失败)返回给运维平台。
- 北向接口同时输出升级审计日志,包含每台设备的策略变更记录。
关键指标:南向接口的生效延迟应 ≤ 500ms(单设备),东西向接口的状态同步延迟应 ≤ 2s(跨集群),北向接口的请求响应时间应 ≤ 1s(不含南向执行时间)。
4.3 接口职责的 SVG 架构图
下图展示了三类接口在升级流程中的交互关系与数据流向:
4.4 接口职责对比表
| 对比维度 | 南向接口 (SBI) | 北向接口 (NBI) | 东西向接口 (EWI) |
|---|---|---|---|
| 数据流向 | 控制平面 → 数据平面(下行) | 编排层 → 控制平面(上行/下行) | 控制平面 ↔ 控制平面(双向) |
| 升级阶段主导 | 阶段三(策略下发与生效) | 阶段一(触发校验)+ 阶段四(结果反馈) | 阶段二(状态同步)+ 阶段四(结果聚合) |
| 数据一致性要求 | 最终一致性(允许短暂不一致) | 强一致性(请求与响应必须匹配) | 强一致性(分布式共识保证) |
| 故障影响范围 | 单设备或单租户策略失效 | 升级流程无法启动或无法反馈 | 跨集群状态分裂,升级死锁 |
| 典型性能瓶颈 | 设备并发数、网络延迟 | API 网关吞吐、认证鉴权 | 共识算法 RTT、消息队列积压 |
4.5 升级流程中的接口交互时序
下图以时序图形式展示一次成功升级中三类接口的交互顺序:
避坑指南:升级流程中,东西向接口的状态同步必须在南向接口策略下发之前完成。若先下发策略再同步状态,可能导致跨集群的租户隔离策略不一致,引发安全漏洞。建议在控制平面中引入“同步屏障”(Sync Barrier)机制,确保所有实例就绪后再执行南向下发。
4.6 接口职责划分的最佳实践
- 南向接口:优先使用 gNMI 进行配置下发与状态采集,支持增量更新(Replace/Update/Delete),避免全量替换导致的流量中断。对于不支持 gNMI 的遗留设备,使用 NetConf 作为降级方案。
- 北向接口:采用异步 API 模式(如 202 Accepted + Location Header),避免长时间阻塞运维平台。升级任务状态通过 Webhook 或长轮询主动推送,减少轮询开销。
- 东西向接口:使用 gRPC 双向流(Bidirectional Streaming)实现实时状态同步,配合 Raft 共识算法保证强一致性。对于跨区域场景,引入 Kafka 作为异步消息缓冲,降低网络抖动影响。
- 统一监控:三类接口的延迟、错误率、吞吐量应统一接入 Prometheus + Grafana 监控体系,设置独立的告警阈值。南向接口错误率超过 1% 时自动暂停升级,东西向接口同步延迟超过 5s 时触发降级。