“打通gRPC的最后一公里!”
未来的数据中心基本都是软件定义,利用云计算、大数据、人工智能等创新技术,实现传统网络资源、服务器资源及存储资源的整合;同时,越来越多的GPU、HPC业务在数据中心网络中进行传输,对网络的带宽和时延提出更高的要求。从运维角度,可以通过自动化平台收集信息,快速对网络进行适配,提升运维效率,从而打造更加可用、可靠、可控的网络来服务好业务。
在上一期《技术盛宴》(数据中心网络运维的巨人之剑)中,对传统运维技术和gRPC(GoogleRemoteProcedureCall,Google远程过程调用)做了简单的介绍和对比,大家对gRPC技术有了大概的了解,本文将对gRPC的框架进行详细的探讨。
gRPC背景及业务流程
前面提到由于GPU、HPC等这类业务容易出现微突发的现象,运维人员需要快速检测到微突发的情况并且进行定位、调整。而传统的CLI、SNMP等网管手段不能很好满足自动化运维需求,这时需要有一种技术在不影响设备的性能和功能的情况下实现更高精度的数据监控。
在往期的《技术盛宴》中有文章提到通过INT(In-bandNetworkTelemetry)技术可以实现流量端到端转发路径的可视化,如图1,但是无法对交换机的Buffer进行全面的管理,包括出、入端口/队列缓存等实时监控,显得有些无力,若是采用基于gRPC+ProtocolBuffers的运维接口设计,可以很好地满足运维对单个网络网元全面的可视化和实时性要求。
我们都知道对于设备侧:Telemetry=原始数据+数据模型+编码格式+传输协议,如图2。这里用到的传输协议就是gRPC,下面将对gRPC进行一个简单的分析。
gRPC简介
gRPC是Google发布的基于HTTP2.0传输层协议承载的高性能开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和纳管的方法。由于是开源框架,通信的双方可以进行二次开发,所以客户端和服务器端之间的通信会更加专注于业务层面的内容,减少了对由gRPC框架实现的底层通信的