运维是数据中心离不开的话题,俗话说:“创业难,守业更难”,建设一座数据中心不难,难的是让数据中心运行下去,并且持续保持竞争力,这就需要在运维的工作上下功夫。运维听起来不是那么高大上的工作,但对数据中心来说最为重要。随着数据中心规模越来越大,运维的工作越来越繁重,传统的命令行方式让一个人维护几十台设备还好,当增加到上百甚至上千台时,运维的工作便无法正常进行下去。增加人力投入会大大增加数据中心运维成本,如果运维的投入增长还要高于数据中心利润增长时,这种扩张其实就是一种倒退。所以在数据中心扩张时,最关注的是运维的工作量,要让运维的工作量增长不高于容量增长,如果不长***,这时很多人想到了自动化。的确,通过自动化完成一部分重复性的操作工作,提升效率,可以大大节省人力,这是当前数据中心运维急需完善的工作。
上面提到了命令行CLI方式,网络设备和服务器一样都是用CLI方式运维。CLI(command-line interface,命令行接口)方式是一种通过在终端窗口键入文本命令来实现与服务器、网络设备交互的接口,比GUI图形式交互接口要高效得多。有时看到技术人员登录到设备上,在键盘上敲入大量看不懂的命令时,总觉得这个技术很高深,很神秘,人们通过CLI方式与设备之间展开对话,让设备按照指令来完成相应功能。这种方式流行数十年,直到现在仍是数据中心里运维的主流方式。这种方式对于单台设备来说,执行高效,但总体上来说就低效了。比如要对网络中的OSPF邻居路由做策略,这样不止在一台设备上要调整配置,所有设备上都要调整,而且每台设备调整的配置还有所不同,如果OSPF区域比较大,设备比较多,就要花费很长时间,而且还容易出错,有时我们将执行简单CLI命令的操作写成TCL脚本,然后用软件来执行,不过还是有不少的工作需要手工逐台去登录操作,非常费时。
CLI运维的方式饱受诟病,不少人想到了SNMP,通过SNMP节点可以完成设备上的大部分配置下发和调整,而且SNMP还能采集设备的运行状态和流量统计,日志告警等信息,SNMP成为了网络运维的一个重要手段。几乎每个数据中心都要部署一到两个网管监控软件,通过SNMP来获取设备上的运行状态信息。由于不同厂家不同型号设备的命令行差异较大,且有太多的命令是私有MIB,这就无法用SNMP方式实现整网设备管理,尤其发生网络故障的时候,绝大多数的诊断命令行都是私有的,设备间各不相同,这样通过SNMP单独输入,还不如直接登录设备CLI输入来得快,所以SNMP网管一般作为网络运行监控的一种手段,而不作为运维和操作设备的方法,这样走也行不通。
怎么办?网络专家们一直在想办法,于是乎Netconf这时出现。Netconf是IETF发布的标准协议,它全称是Network Configuration Protocal。Netconf协议早在2006年IETE就发布了,是一种基于XML的网络配置协议,可以基于网络来安装、操作和删除设备配置,在Netconf架构中,网络设备充当Netconf Server 角色,运维的人员则是Netconf Client。在数据中心规模还不大的时候,Netconf并未引起人们的关注,这几年随着数据中心网络规模越来越大,还有很多虚拟化的实现,Netconf才得到重视。因为是统一标准,所以不同厂家设备都会支持,Netconf是网络通用语言,所有网络设备都能听懂,这样就可以通过Netconf轻松实现网络配置的统一部署。不过,现实情况却没这么轻松,因为各厂商 Netconf数据表达存在很多差异,各个设备厂商都希望在软件定义网络的时代继续保持硬件设备重要性,并且能够体现自己公司产品的差异化优势,这是IETF不愿意看到的,也是数据中心客户不愿意看到的。后来Google、AT&T、Facebook、Apple、Microsoft等互联网服务提供商成立了OpenConfig工作组,希望提供一个中立于设备厂商的标准 API。OpenConfig沿用了Netconf的协议框架,但它不太关注底层数据传输,而是更关注上层数据表达和数据建模,OpenConfig只关心与互联网行业用户通用运维的工作和网络设计工作相关的功能,不会为设备厂商的私有特性定义 YANG Model。只要网络设备支持标准 OpenConfig YANG,就可对原始数据进行解析,不再依赖第三方软件就可以管理多厂商多OS网络,进而实现真正网络自动化。不过,OpenConfig并未得到广大网络厂商的积极回应,毕竟OpenConfig有点向网络厂商砸场子的味道,网络厂商自然不愿意去适配,“我的地盘我做主”,这就使得OpenConfig难产,除了几家大型的互联网企业有胆量向网络厂商叫板,其它的很少有发声,这也让OpenConfig推进没有那么顺利。其实,从技术实现上来讲,不管哪种Config目的都是为了实现自动化。有的激进一些,有的保守一些,虽然总有不同声音,但都是希望能改善数据中心的运维环境,提升运维的自动化水平,这个大方向不会变,这些配置技术都是实现自动化的手段而已。
网络运维的自动化依然是一个热门话题,还有新的技术不断出现,现有的数据中心运维水平依然比较初级,亟待改善。要将自动化运维融合到整个数据中心的运行体系中,尤其要和业务结合起来,否则自动化的运维本质就不过是一个自动化工具而已。要让自动化运维拥有学习能力,结合大数据、人工智能(AI)或机器学习功能软件系统,让运维不再是单纯去执行自动化脚本,而可以分析可用性和性能监控、事件关联和分析,结合具体业务去运维,这才是真正的自动化运维,最终实现整个数据中心的自动化运行。
【编辑推荐】