用AIOps更有效地进行微服务排障

01 越来越多的企业IT系统采用微服务架构
在这里插入图片描述
当前,企业的IT系统基本上都属于传统的MVC架构,所有业务子模块都集成在JVM中。虽然利于统一管理,但是当产品规模越来越大时,项目变得十分臃肿,维护困难,资源无法隔离,拓展性也很差。而微服务(Microservice)的出现,刚好解决了单体系统(Monolithic)所带来的一些列问题。

显然,微服务已经成为IT发展趋势之一,从IT系统模块化中便能知晓一二。作为模块化的成果,IT组件越来越小型化,基本上会用更少代码和功能来构建应用程序。微服务技术由于天生支持快速迭代、弹性扩展的特点,使企业能够在不确定性下提升发展速度及抗风险能力,受到了越来越多的关注。

但是,如果系统性能或关键事件出现了问题,由于IT系统的复杂性,微服务的排障过程可能变得十分复杂。

02 微服务可能会让系统变得更加复杂
在这里插入图片描述

微服务是种简单的单个应用程序,能够在IT开发和基础架构中保持高度的灵活性和敏捷性。企业把环境迁移到微服务中时,一般存在多种原因。最大的原因,可能是系统越模块化,DevOps团队就越易更改系统来适应不断变化的业务需求。这样,只需根据需求进行本地更改就可,不必过多担心系统其他部分出现问题。从性能的角度来看,组件的模块化能够更容易适应各种架构。

例如,如果你所在的企业决定将基础架构迁移到云端,那么哪些组件可以保留在本地,而哪些组件迁移到云中?如何在各种云架构上分发这些组件?又或是在管理相对单一的系统时,如何避免受到约束?

但是,天下没有免费的午餐。构建的系统灵活性越高,架构就越复杂。开发系统、更改系统或是在架构上分发系统越容易,系统也就越复杂。在这种情况下,“复杂性”意味着增加了系统设计的“熵值”,而“熵”的一个狭义定义是缺乏可预测性。

03 微服务之高熵,让传统监控和排障变得更为困难
在这里插入图片描述

模块化的转变,会增加IT系统的熵值。在高熵系统中,每个数据点都包含大量信息;而在低熵系统中,信息会非常少。因此,要保持高灵活性的系统,维护就会变得分外困难,也会让IT系统管理工作变得更加复杂。

在微服务环境中,使用几个单部件构建的系统,便可以推断出整个系统的状况。复杂的系统,往往是由许多独立的部分组成,这些部分虽然能够同步工作,但是耦合却很松散,因此预测系统状态会变得更加困难。这样就必须监控几乎所有组件,才能查看端到端的状态,再进行系统画像。而这也会导致监控工具与系统架构的不匹配。

许多传统的IT监控工具,都会默认设置成低熵系统,也就造成在高熵系统无法使用,微服务环境下的监控和故障排除工作会更加复杂。毫无疑问,微服务架构会十分复杂,但是微服务却同样有利于开发和运营团队,复杂性是可以通过其他方式解决的。

04 AIOps对微服务数据进行智能分析,快速获取根因
在这里插入图片描述

许多企业都会通过大数据平台采集数据,从存储的角度来看是值得肯定的。但是不幸的是,许多企业认为这是故事的结尾。“我们拥有所有数据,也可以随时访问这些数据,我们的工作基本上就完成了。”实际上,他们只是把这些大数据汇聚到一块而已,并没有对这些数据进行深加工,数据的价值并没有有效利用起来。而这恰好是AIOps所擅长的。

IT系统中,一些模式和事件故障,会破坏端到端系统。加上系统的复杂性和高熵,要想发现并分析这些模式相当困难。即使以后能够做到这一点,我们仍然需要找出系统中断的根本原因,这样才能从根本上解决困扰系统的问题。

但是AIOps可以做到,因为它可以从大型数据库中快速采集和处理数据,并能从中识别出可能存在的问题。AIOps在处理这些数据时,还能发掘出这些数据的模式特征,并提供相应的解决方案以有效解决问题。

05 AIOps亦是排除微服务故障的良药
在这里插入图片描述

在微服务环境下,如果使用自动编排技术,其配置应该能够快速响应特定的业务和技术要求。AIOps能够使得系统快速识别问题,分析后提出相应的解决方案,将其提供给编排引擎。

在IT高熵环境中,应用程序编排引擎的相关操作等,都会导致系统复杂度陡升。但是AIOps可以全面排查IT环境,并提供相应的解决方案,其中便包括业务流程引擎的影响,这仅是AIOps排除微服务中故障问题的功能之一。

06微服务正推动AIOps快速发展
在这里插入图片描述

微服务,包括一系列复杂且易变化的组件,而最大的问题便是难以确定微服务之间的因果关系。出现问题时,便会陷入巨大的困境。为了能够在微服务中排障时做到有效分析,AIOps借用拓扑和图形的方式,这种方式在因果关系处理上将会十分有效。

拓扑,这种基于图形的分析方式,也逐渐成为AIOps的核心部分之一。当前的AIOps供应商都基本上认识到这一点,并开发出了相应的拓扑算法,这条路还有很长一段时间要要走。在不久的将来,拓扑结构将会转移到中心位置,以便更好应对微服务带来的复杂状况。

微服务中部署AIOps十分必要,而AIOps反过来也可以帮助微服务快速排障,提高系统性能。这种技术的共生,将有助于微服务从前沿技术,过渡到主流解决方案。而微服务,将有利于AIOps打开更广阔的市场,促进IT智能化的快速发展。

作者:Will Cappelli

来源:国外网站

编译:林含飞

编译过程中有所删减