16

吉利汽车的监控平台建设之路

 4 years ago
source link: https://www.infoq.cn/article/4zrFNeOw02MlTQADMkWz
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

监控平台 是很多公司最重要的基础设施之一。之前我们介绍了很多互联网公司的监控平台建设,现在我们想带大家了解一下传统公司监控平台的建设,本文我们采访了吉利汽车集团基础架构经理詹文君。

vmAjyaI.jpg!web

吉利汽车集团基础架构经理詹文君

据了解,吉利汽车的运维团队大约有 100 人,包括一线、二线、三线以及桌面团队。大部分团队成员是解决传统运维问题,保障业务的稳定性和可用性,而詹文君所在的团队更多的是在做能力建设。目前在建设的平台共有 3 个,分别是自动化运维平台、监控平台以及备份平台。

吉利汽车的监控平台

吉利汽车监控平台是从 2015 年开始大范围去推广的,整个平台建设与其它公司类似,从底层到上层分别包括基础设施的监控、操作系统主机的监控、基于中间件的环境监控(例如在数据库层面的缓存、消息、中间件监控)、应用监控、面向用户和应用性能的监控。

整个监控平台每月新增的监控告警数据大约为 2-3 个 TB,日志数据每天的增量为 500G。

与其它互联网公司相比,詹文君认为传统企业运维有两大特点:一是历史包袱比较重,无论是技术架构还是功能架构都可能出现不一样的情况;二是使用的技术组件种类繁多,例如,编程语言可能会用到 Delphi、C 语言,操作系统可能会用到 Windows XP、DOS 系统等。

由于存在一定的历史包袱,詹文君表示他们的监控平台无法做到全部标准化,所以是根据业务的重要程度来逐步完成标准化,对此,他引用了一个比喻说:“就像是驾驶一辆破损的飞机,一边修一边到达目的地。”针对通用性的东西,例如安装路径、进程、命名规范等,在不对业务产生太大影响的情况下,詹文君团队的做法是将其做成标准化。而针对定制化、个性化的东西,詹文君团队会根据差异选择小众工具去解决。

以主机监控为例,吉利汽车运维团队主要采用的是开源 Zabbix,并且是先在核心运维系统上推广。不可避免的遇到了操作系统及中间件等监控标准化问题,例如进程监控就出现同一组应用,进程启动的路径不相同,类似这样的问题比比皆是。针对这类情况,他们会根据实际情况制定通用性的监控标准,新的项目统一采用新标准,涉及到特殊历史时期遗留下来的非标监控,采用逐步淘汰或架构大调整时解决。而面向应用性能监控,他们尝试使用过开源的应用监控方案产品来解决,但是应用监控技术门槛相对较高,对应用的侵入性更强,为保障业务系统的稳定性,提高监控的准确度。最终采用商业的 Dynatrace 解决方案。例如吉利汽车内部有一个核心应用的做法是:应用的入口是统一的 URL,通过判断 action 值来决定调用哪个方法,开源的应用监控方案无法解决此类问题。

监控平台的分层体系

吉利汽车的整个监控平台可以分为两个部分,一部分面向经销商和用户,另一部分偏向于企业内部的管理系统。

这两个系统对架构和可行性的要求都有所不同。企业内部管理系统的结构比较简单,如果分层来看的话,从前端进来之后(通常是通过硬件 F5 或者是 SOA),直接就到了应用端,再往下就是数据库层。要是稍微复杂的架构,在数据库层之间可能会增加缓存;而面向经销商和用户的系统,因为要从内部网络暴露给外部用户使用,所以整体采用了服务化的框架。

在整个平台建设过程中,吉利企业也有很多自研的技术和产品。例如在技术方面,吉利汽车基于 Spring 装了一套服务化框架。而在产品方面,据詹文君介绍,吉利汽车内部 80% 的 IT 应用系统都是自研的,以 ERP 系统为例,最早吉利汽车的 ERP 系统使用的是 SAP,但出于 License 和安全性的考虑,吉利汽车开始逐步自研 SAP 的边缘系统,并与 SAP 做集成,目前 SAP 在吉利汽车内部更多的是在服务核心的财务系统。

建设过程

吉利汽车的监控平台建设可以分为 3 个阶段:

VnqAjij.jpg!web

第一阶段是能力建设期。2017 年到 2019 年,这个阶段属于补短板的阶段,当时吉利汽车在一些垂直监控领域,比如网络监控、主机监控、数据库监控、应用监控等方面覆盖面相对匮乏所以需要尽快把监控工具构建起来、扩大监控覆盖面。

第二个阶段是精耕细作期。2020 年到 2021 年,这个阶段的重要标志就是构建集中监控平台和统一告警平台。监控工具和对象监控引入之后,监控的准确度、覆盖率、告警的及时性,都需要不停的运营和调整。这个调整的周期是一个持续的过程,很难在项目建设阶段完成。

第三个阶段是智能运营期,尝试利用 AI、大数据以及智能技术来辅助运营。

詹文君强调,只有前面的能力达到了,工具用好了,才能大胆的去谈自动化、智能化。因此吉利汽车在整个监控体系建设中选择用 Dynatrace 来实现三个软件智能场景:第一是用来排除故障,第二是应用性能检测,第三做瓶颈定位。

故障报警设置

故障报警是监控平台的重要组成部分,如何合理的设置报警量是个很有学问的工作。据了解,Google SRE 每周只有十条报警,如果超过十条,就说明没有把无效报警过滤掉(Google SRE 仅负责 SLA 要求为 99.99% 的服务)。而詹文君所在的团队,由于人员和精力有限,所以更多的会关注灾难级报警,而对一些 Warning 报警不会过多关注,一周报警量大概会有 180-190 条左右。

报警的颗粒度是很难掌握的,因此,詹文君表示他们会在精耕细作阶段不断优化,让报警变得更可信。但是监控平台并不能完全支持报警的所有工作,例如报警去重和消噪。有些工具可能只关注于监控数据采集,但是并不关注报警本身的处理,如主流的 Prometheus、小米开源的 Open-Falcon 等等。比如告警消噪, A 点到 B 点的网络连接中断,可能会造成范围性的报警, 需要我们通过上层告警平台,以 CMDB 数据为支撑来进行告警消噪。

未来发展

在提到未来发展时,詹文君表示:“我们特别想在容器方面有所进展。汽车行业和传统制造业都面临一个共性问题,那就是历史包袱比较重,业务架构很难去推动,改造,很难实现标准化,而容器刚好可以解决这些问题。如果标准化没有实现,就去谈自动化运维,可能蓝图描绘得非常好,但落地会很困难。”

“除了标准化,数据孤岛也是一个亟需解决的问题。从监控层面来看,如果数据不是互通的,或者在互通过程中是不标准的,比如订单在 A 系统是以“1”这种方式来存单的,而到了 B 系统是以“1.0”方式来存储的话,那么就很难实现监控。无论是应用监控、性能监控、还是资源监控,其实都属于技术监控,而业务部门真正想看的是交易情况到底如何?有多少用户本应付款但实际没有付?有多少付款失败是因为 IT 问题导致的?…将技术监控和业务监控结合在一起,能够减少很多技术与业务之间的矛盾。”

采访嘉宾介绍:

詹文君,吉利汽车集团基础架构经理,推动吉利汽车集团监控和运维平台建设,不断完善监控和运维体系,为业务稳定高效运行保驾护航。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK