答案是肯定的,想想如果机器可以帮我们查找问题、处理故障、分析代码甚至开发代码。并且指导我们如何去修改代码,降低人工失误,减少代码bug,或者招聘时,可以根据候选人的度量指标来预测加入团队后所产生的影响,从而确定合适的面试者。或对于我们运维来说,让机器来干那些重复而又枯燥的工作,帮助我们分析问题甚至解决问题,让运维人员有更多的时间专注服务或应用本身。那么这将是多么美好的事,那AIOps还离我们还有多远呢?
我们先看下运维的发展阶段:
阶段 | 特征 |
---|
手工 | 依靠个人能力 |
SHELL | 工具,处理重复、枯燥的工作 |
DevOps | 自动化、流程化、标准化
|
AIOps | 智能化 |
目前DevOps是比较流行的趋势,是用现有成熟的产品整合到运维体系中并集中到运维平台统一管理,将运维的工作移到开发阶段,用工程化、流程化、规范化、统一化的方法让开发和运维整合。
随着Docker、OpenStack、CI/CD、Python、Go的发展,DevOps和自动化运维也被推到了高潮,整体来看自动化运维帮助我们提升了运维的效率,并减少因流程或人工失误引起的运维故障。
从发展阶段我们可以看出两个趋势:由零散到整合,从半自动化到智能化,这是由于DevOps是由所有服务器产生的数据形成的。目前已经有很多公司实现了DevOps,也正在尝试从DevOps到AIOps的转变。
要实现AIOps最重要的是大量的数据,而在运维中数据来源是服务器(系统日志和状态、服务及监控等),当有了数据链之后,传统运维可以做监控告警、用户行为分析等,这种度量是从Ops到Dev的,在度量的驱动下智能运维(AIDevOps)将具有以下的模式:
度量:针对服务生命周期的不同行为进行度量定义,并定义度量指标。
分析:对数据进行收集,针对不同业务目标确定预测模型或者对原有的模型进行调整。
学习:用户数据建模,通过对不同模型效能评估,确定可以模型。
预测:通过大量的数据对业务(服务、可靠性)进程预测。
指导:对预测的结果和度量目标的对比,对实践者进行最佳的指导。
行动:按照指导行动,并为下一次的度量积累数据。
理想的情况下,人们只需要参与度量和行动环节,而其他的环节都可以由机器自动去完成。所以,AIOps会更加全面的利用软件数据,挖掘潜在的影响因素,帮助我们更好的完善业务,提高服务可用性。
未完......