如今,无论是从事IT运维、敏捷开发,还是DevOps(开发运营),甚至站点可靠性的工程师们(SRE),都在不断提及一个概念——可观察性(Observability)。为什么他们都在关注可观察性?可观察性在IT领域有哪些深层的含义?在开始探讨这些问题之前,我们需要先了解可观察性到底是什么?
可观察性(Observability)
理论上来讲,可观察性是从外部输出知识中推断所获得,可理解为衡量一个系统内部状态的方法。如同IT领域的众多新概念(比如DevOps), 可观察性第一次被提出是在工业领域。当时的可观察性被描述成为一种系统的外部监测属性,比如设备操作者可以查看系统中隐藏的各个流程。
举个例子,水处理厂的操作员如果无法看到水管的内部状况,就无法监测到水的正常流动,流动的方式,以及水质的干净程度。但在管道内可以添加可观察性的工具——流量计和传感器后,状况就截然不同,这些工具将通过遥测连接到仪表板,帮助操作员能够完全掌握管道中水流的情况,并及时根据状况进行调整,大大提高了工作效率。
软件应用和服务领域中的“可观察性”
可观察性也已被快速地引入到 IT 领域,并广泛应用于软件服务行业。尤其是在软件开发工程师编写代码的时候,所使用是就是具有可观察性的测量和遥测应用程序。它可以帮助运维团队获得:
——在关键事件中尽早发现问题、进行控制并发出警告;
——更有效地查找出问题的根源;
——获得实时反馈,更快地采取措施修复事件;
——进行准确的事后审查和检查;
——更好地了解追溯问题产生的根源,防止其复发;
——保证获得紧密的反馈,进行持续不断的改善;
——通过分析和机械学习,预测并预防问题;
通过AIOps实现可观察性
随着AI技术的涌现,企业要想获得商业的成功,只靠新的数据、图表、KPI或者项目仪表盘是远远不够的。可观察性才是企业获得真正商业价值的“抓手”。企业无论在面对实时问题还是事件分类,关闭DevOps反馈回路亦或提前预防问题,都要收集可观察性的数据,并与其它监测的数据一起进行分析处理,并运用机器学习的方式生成自动响应,那么将监测与可观察性、机器学习和预测分析的高级数据集合后,则就拥有了Gartner所定义的“AIOps”,即在AI时代,让IT运维具备机器学习和算法的能力。
当AIOps有了可观察性数据后,可帮助企业:
——集成关键的系统数据,如简单网络管理协议(SNMP)陷阱、DCIM/APM工具、超文本传输协议(HTTP)事件、API输出、设备数据和资源管理设施(RMF)、服务管理设施(SMF)或客户信息控制系统(CICS)数据
——通过关联、分析和过滤集成数据集来抑制警告风暴或隔离最显着的事件,从而改善“信噪比”
——利用机器学习和预测分析来识别隐藏的异常情况,以解决潜在问题
——无需任何人工干预,触发自动化工作流程,通过执行已知的方案来查找、修复发生的问题和预防新事件
可观察性语境下的DevOps
DevOps中一个重要的概念是强调研发与运维的无缝配合形成一个整体,能给企业带来更大的业务灵活性,使企业能够更快地响应客户行为、市场变化和新技术。而可观察性带来了企业团队文化的转变,在可观察性的语境下,研发是主体,需要主动考虑如何将应用的关键指标以什么形式暴露出去;而之前大部分研发只有在应用出现故障的时候,才会考虑在什么位置加个日志,将研发与运维真正协作统一。
作为一个运维智能平台,Splunk是机器数据的引擎。Splunk通过监控和分析客户的点击流、交易数据、信息安全事件和网络活动,Splunk帮助客户获得机器生成数据中富有价值的运维智能。它使开发者能够直接看到生产环境中的数据,而无需访问生产机器,能够协助用户进行DevOps过程,包括持续的集成和资源配置。
可观察性助力实现商业与技术融合
对于交付网络式服务的云初创企业来说,可观察性带来了全新的活力。而对于传统IT运维商来说,尤其是大型企业,可观察性的实现依然需要突破阻力。作为传统监测的补充,可观察性标志着IT运维和软件服务交付的一个新时代的到来,助力企业实现真正的商业和技术融合。
【本文作者严立忠系Splunk中国区总经理】