3.1 数据处理技术
如果说AI是智能运维的心脏,那么数据则是推动智能运维的“粮食”和“血液”。企业每天如何从各种线上系统采集太字节(TeraByte,TB)级甚至拍字节(PetaByte, PB)级的海量数据,采集完成后如何完成这些数据的计算,计算结果如何快速准确地反馈到生产系统中,是企业智能运维亟待解决的问题。
随着数字技术的发展,数据采集、存储及计算方案已逐渐成熟,为异常检测、根因诊断等智能运维场景提供有力的数据支撑。图3-1所示为智能运维通用数据处理技术方案,其包括数据汇聚层、数据存储层、数据计算层和数据应用层4层架构。
图3-1 智能运维通用数据处理技术方案
数据汇聚层在智能运维中主要扮演数据采集的角色,负责汇聚结构化业务数据和非结构化数据。结构化数据通常已存储在关系型数据库中,使用Sqoop等数据迁移技术完成业务向分布式存储架构升级。非结构化数据则是业务生产过程中的日志及性能数据,如微服务根因诊断中原始性能指标、网站异常检测中访问日志均属于此类。
数据存储层为智能运维应用的原始数据、中间数据、结果数据提供存储服务。根据数据量的规模及读写性能需求可选用不同类型数据结构。对于访问日志、业务流程等数据量较大的原始数据,通常存在分布式文件系统中;对于异常检测识别结果、根因定位诊断结果等数据量较小且上层应用直接访问的数据,基本会选用内存数据库或关系型数据库存储。
数据计算层包括离线计算和实时计算两大部分,同时又涉及任务调度和算法调用。在智能运维中对时效性要求不高且数据量又较大的场景,如全量数据的根因诊断模型迭代、运营商网络低覆盖小区优化分析等,适合用于MapReduce/SparkSQL等离线计算技术实现。而对于基站节能策略下发、网络扩缩容策略调度、入侵访问异常检测等需要实时响应反馈的场景,采用Strom/Spark Streaming/Flink等实时计算组件更适用。
数据应用层为承载的智能运维应用,如流量预测、质差识别、根因诊断等。
本节主要结合数据处理技术在智能运维中的场景,首先以离线计算和实时计算两条主线介绍其前后环节涉及的计算、存储、资源管理技术,然后统一概括了数据采集、数据迁移、任务调度涉及的技术方法,并总结了在智能运维中使用大数据技术可能存在的挑战,为实操应用提供理论支撑。