每年,华为内部网络配置的变化量高达50万行,还要应对数据中心搬迁以及设备替换等这样需要在短时间内进行大批量策略调整的工作;每年的版本/补丁升级、设备替换、配置优化以及应急演练等变更操作超过500次。如此巨大的工作强度之下,网络运维人员却只有区区10人,这是如何做到的呢?云计算时代,在业务快速增长的前提下,又如何才能在不增加运维人员的同时保持IT系统99.999%可用性?
从运维的角度看云数据中心网络
随着云计算的不断发展,云数据中心网络显现出4个特征:服务化、自动化、虚拟化和智能化。服务化将网络包装成服务,服务可以按需自助、弹性扩展资源;自动化可以实现网络自动部署、策略随云而动;虚拟化通过SDN和NFV将网络Underlay和Overlay分离;智能化则是指资源统一管理、网络智能可视。这4大特征有效地支撑了云业务的快速、灵活和弹性,但是其发展却并不均衡——面向用户的特性往往优先于面向运维的,所以,网络在快速云化的同时,也给运维带来了很大挑战。
- 网络设备数量不断增长,但是运维人力有限;
- 网络运维自动化程度低,仍延续“人拉肩扛”的方式;
- 网络的复杂性不断增加,对管理员的技能要求高,可用性保障困难;
- 网络监控广度和深度不足,但告警信息却又太多,关键告警被淹没。
网络运维能力不仅意味着保障可用性,还包括如何有效提升运维效率、提高服务水平,给用户提供低成本、高效率和高质量的网络服务。网络运维能力是云数据中心网络的核心竞争力之一,未来,网络运维的发展方向在于逐步实现自动化、智能化和无人值守,这其中,如何构建智能化网络运维平台是关键。
每年,华为内部网络配置的变化量高达50万行,变更操作超过500次,网络运维人员却只有区区10人,如此巨大的工作强度是如何做到的?构建智能化网络运维平台是关键。
构建智能化网络运维平台
智能化网络运维平台主要瞄准4个目标:秒级故障定位、分钟级故障隔离与自愈、网络质量可预测与可优化,以及全生命周期运维自动化。
华为规划的智能化网络运维平台(见下图)由网络监控平台、网络智能分析平台和网络自动化平台这3大平台组成,平台间相互协同形成一个闭环自制的网络运维系统,最终实现无人值守的目标。
![](http://www.ctiforum.com/uploadfile/2017/0815/20170815095313765.jpg)
相对于传统的运维平台,智能化网络运维平台有3个明显的特性:
闭环的自动化平台
传统的网络运维平台有很多平台和工具,他们各自工作、相互独立。而网络智能平台首先是一个开放的平台,网络设备从添加到监控、从信息采集和分析到告警及自愈,都能实现闭环的自动化处理。
大数据平台
- 云数据中心网络的网元数量呈指数级增长,使得监控信息也海量增长。以华为IT云数据中心网络监控为例,2014年监控的网络指标不到40000个,到2017年已发展到上千万个,这对监控采集系统以及数据平台都是一个很大的挑战。
- 网络监控的深度、广度和频度极大提升,采集的信息更加精准有效。监控以前是只抓重点,现在则是尽可能多采集信息。事实也证明,信息越多,监控和分析就越有效。以监控频度为例,如果将网络流量的监控频度由300秒/次调整到10秒/次,就会发现监控流量的峰值由1.29Gbps变成了8.3Gbps,是原来的6倍,也能发现很多原来隐藏的问题。
- 所有监控数据不再是孤立的存在,多个采集系统之间的数据可以集成,以进行关联分析。以前的监控数据存放在不同的网管工具中,SNMP、LOG等监控都各自为政。现在所有的监控数据都统一汇总到数据平台,可以从时间、设备等维度拉通进行分析。
智能分析平台
- 故障预测能力。传统网管更多提到的是监控,但是否能在故障发生之前就知道哪里即将发生问题并提前处理掉?现在不少互联网企业已经具备了硬盘的故障预测能力,准确率达到90%以上。对于网络来说,也有光模块这种易耗件,以及不可预知的业务增长和突发,那么是否也能实现精准预测?
- 关联分析能力。华为在2014年的网络监控指标还不到40000个,每日告警大约40个,如果不进行优化,当2017年监控指标达到1000万个,告警按比例会达到10000个。没有关联分析能力,海量监控就会是一个灾难。
- 故障分析能力。Google认为“任何需要人工操作的事情都只会延长恢复时间。”故障自愈的前提就是故障分析能力,而大数据使得故障分析更加简单。以二层环路问题为例,其人工定位并不复杂。以前,华为尝试通过专家系统来实现自动定位,当出现问题后,工具需要登录设备采集信息进行判断,但由于工具并不知道网络架构和组网,实现起来非常复杂,效率较低且准确性不高;而现在,通过采集所有设备的接口信息,只需要基于二层环路的指标特征进行统计分析,就能快速找到引起环路的问题点,实现也变得非常简单,而且可以实时监控。
- 业务分析能力。云的资源池跨越多个DC,如果能够基于业务和应用进行智能分析,就可以知道应用与虚拟机之间的访问频率和流量模型,从而将关联最密切的资源就近部署,提升应用性能的同时节省网络资源。业务分析能力不仅在资源调度方面,在安全策略智能推荐、应用关联分析、业务影响分析以及故障分析等方面都可以发挥积极贡献。
华为在开源Cacti工具基础上对其代码进行了优化,使得单台服务器5分钟的监控能力从大约30万个提升到200万个,监控1000万个指标从需要30多台服务器降低到只需5台即可。
华为IT的智能化网络运维平台实践
网络自动化
网络自动化可覆盖22个运维场景,包括策略增删改、健康检查、停电检修和转产验收等频度高、重复性强且耗费人力多的工作。华为每年有超过15万的防火墙策略调整,如果按照传统的运维模式,需要投入公司所有的运维人力;而实现自动化后,基本无需管理员干预,而且还可以实现策略的一致性、合理性和合规性。
海量网络设备的自动化工具开发,相比于传统的脚本实现有很多不同。设备类型和配置方案多样,如何实现一个程序在所有场景通用?设备数量多,如何提高程序与设备的交互效率?都是需要重点解决的问题。通过规则与自动化程序解耦、采用非阻塞的socket交互方式以及线程优化控制等措施,可以实现20分钟内完成10000台网络设备的配置下发。
网络监控
如果依靠开源Cacti工具的原生能力,单台服务器5分钟可以监控的指标大概在30万个,要监控1000万个指标就需要30多台服务器。华为在开源代码的基础上对其进行了优化,包括优化了数据存储和告警算法、重写了部分模块代码等,使得单台服务器5分钟的监控能力提升到200万个,这样只需5台服务器即可监控1000万个指标。同时还设计了松耦合的Master-Slave部署架构,将监控数据的采集进行了负载分担,并通过MySQL数据库集群方式保证了数据模板的一致性和集中展示,使工具具备了Scaling-Out架构,前台可以进行数据统一展示查询,而后台数据采集、SQL关系维护和数据存储则可以分散部署。
华为自建了网络日志系统,可以实时收集现网设备日志,并针对关键字进行监控告警。同时还可对每天收集到的1500万条日志进行预处理,一方面通过对日志的结构化处理提取出时间、类型、级别和关键字等信息;另一方面对日志进行丰富化处理,通过与网络配置库(CMDB)对接,自动关联设备所属的网络和型号等信息,以增强日志的可读性,支持多维度的日志信息检索和可视化。
网络智能分析
现在,华为云数据中心网络每万个监控指标的告警量已由2014年的每天10个大幅下降到了0.5个,这主要有赖于对历史告警的大数据分析持续优化了监控告警阈值的设定,同时结合不同的网络场景使用过滤、去重和Flapping抑制等方法减少了无效告警数量。
光模块是云数据中心网络中故障率最高的部件,据华为统计,每年运行中故障率大概在2‰。而光模块一旦出现故障会造成丢包等问题,对业务影响很大,现网中就曾经发生过由于骨干链路上的一个光模块故障导致网络丢包、最终影响到了几十个应用的案例。因此,如果能通过对光模块的检测和预测提前识别问题就可以避免对业务造成严重影响。
为此,华为对影响光模块运行状态的指标进行了严密监控,每天收集现网80000个光模块的运行信息,结合专家经验和机器学习方法发掘光模块各指标与异常故障之间的关联,并循环调优检测算法,迅速识别已经故障的模块;同时,依靠机器学习和时间序列分析方法对未来一段时间内的多指标进行预测,判定光模块的未来状态是否满足异常故障的条件,并将已故障模块的历史指标序列作为输入样本来确定和调优预测算法,使得目前故障光模块的预测准确性已接近50%。
云开启了网络运维的新篇章,华为将持续构建智能化网络运维平台,不断拓展自动化、网络监控和智能分析等场景,形成闭环的网络运维体系,实现秒级故障定位、分钟级故障隔离与自愈、网络质量可预测与可优化,以及全生命周期运维自动化的目标。让网络运维向着无人值守这一终极目标大步迈进!