DevOps平台的作用日趋重要,尤其是在通过DevOps模型执行软件交付的时候。DevOps平台以开发者为中心,面向多租户提供自助服务,同时是多云战略的重要组成部分。它为开发者提供指引、标准化工具和技术,以便轻松的构建、测试和迭代产品。然而,在建立DevOps模型时,弹性扩展是一个不容忽视的核心功能。
DevOps将单一产品分解为更小但有价值的组件,这些组件可以作为独立云服务进行交付。一旦建立基于此模型的交付团队,它将以SLA(ServiceLevelAgreements,服务等级协议)的形式提供服务。为了实现这些要求,必须建立健全的监控和告警实践。与其他任何DevOps实践一样,自动化运维是终极目标。但是,当面对监控和告警信息时,AIOps平台则是黄金标准。
平台价值
如果没有AIOps平台,告警信息和事件数量可能会迅速失控。如何识别并关联来自不同系统的告警信息,特别是来自独立系统或团队的告警信息,同样是亟待解决的问题。至关重要的是,在问题事件发展到很严重之前,没有内置的智能程序可以协助预测并识别问题,因此像机器学习这样的高级工具和技术是无法进行自我修复的。
为了确保构建有效的AIOps平台,必须深入理解监控数据。对致力于实现AIOps目标的DevOps工程师来说,创建可以对告警信息进行优先级排序,并将结果传递至高级修复工具中的监控平台是非常必要的。P1(Priority1,优先级1)事件总是需要立即响应,但是P1级别的事件很少。对于客户来说,更常见的是低级别事件。然而,跨系统的低级别事件碰到一起,很可能会导致严重的问题。理解和响应这些需求,并关联不同系统的告警信息,需要建立健全的监控系统。
如果想要这些修复措施产生效果,就需要建立事件之间的关联关系,而这些关联关系需要依据规则库建立,并通过自动化工具进行管理。需要明确的是,先进的监控系统会提供更多的告警信息,因此监控的扩展能力将变得很重要。这就是云原生DevOps平台最有价值的部分,因为它提供了有效的方法,以快速管理不断增长的数据量。
“左移”和“右移”
要转向AIOps模型,需要对实践和工具的左移和右移进行组合并实施。这意味着在开发阶段的早期,就需要结合来自产品线持续的反馈,优先考虑监控。一旦在此模型下大规模管理监控和告警信息,就可以通过AIOps平台来利用机器学习和其他先进分析技术将这些任务自动化管理,进而获得更积极、有效和动态的观测和修复能力。最终,通过满足服务等级目标、改进交付体验和提升客户满意度,公司将更具弹性。
如果没有AIOps平台,修复措施将需要不同领域(从云基础设施到应用系统架构)的专家共同开会,以确定事件的根本原因,这将消耗大量的时间和资源。AIOps平台可以确保在P1事件发生时将关联告警信息立即通报相关领域专家,从而减少服务中断时间,并采取有针对性的补救措施。
提升开发者和用户体验
如果服务提供商希望建立先进的DevOps生态,AIOps是必不可少的。它可为开发者提供安全的CI/CD管道,为产品变更提供有效保障。由于产品质量验证是自动化的,因此这进一步提高了企业的“右移”能力。这一举措自然减轻了开发者在质量管理方面的负担,也减少了同行评审的要求。因为应用程序和功能特性可以安全的快速迭代,同时服务可用性也得到持续维护和优化,因此AIOps模型同样提升了客户满意度。
研究表明,大多数事件(74%)发生时客户是先于支持团队发现问题的。66%的现有监控解决方案仅仅识别了不足一半的性能故障或中断问题,而且随着IT系统(特别是由云服务引起的)复杂性增强,将会导致更多的中断问题发生。当这些问题逐渐暴露,向更加智能的解决方案靠拢,自然是非常清晰且迫切的需求。现在的客户不仅希望服务提供商的服务可用性水平几近百分百,同时还要求服务表现可视化。
监控平台可以通过先进的报表和数据工具提供可视化服务,从而轻松的创建多用途的仪表板(仪表数据展示界面)。这些数据同样可以被DevOps工程师用来创建自我修复的工作流,这些工作流可以被内嵌在AIOps平台,进一步提升开发人员体验。
在构建DevOps平台时,DevOps工程师的最终目标是开发一个为开发人员量身定制的环境。减少开发人员在实现各种操作(例如安全、测试和监控功能)中花费的时间,让他们可以专注提升交付服务,为开发人员和客户创造更好的体验。通过AIOps平台将自动化引入修复任务,可大大降低生产阶段报错的可能。这就是所有服务提供商在其DevOps战略中所追求的目标模型。
译者介绍
仇凯,51CTO社区编辑,目前就职于北京宅急送快运股份有限公司,职位为信息安全工程师。主要负责公司信息安全规划和建设(等保,ISO27001),日常主要工作内容为安全方案制定和落地、内部安全审计和风险评估以及管理。
原文标题:HowMonitoringandAIOpsDeliverstheUltimateDevOpsPlatform,作者:PrashantJain