智能运维
(一)运维工作的转变
随着技术发展,运维工作从基础的搬机器、插网线、装系统等体力活儿,逐渐转变为更侧重服务器管理、代码管理、日志分析、监控告警、流量管理及故障排查等的脑力劳动。如今,运维人员拿到的通常是已装好系统、配置好IP和账号的服务器,工作重点也随之改变。
(二)云服务与虚拟化带来的挑战
公司业务扩张促使服务器增多,云服务和虚拟化技术广泛应用,运维工作变得复杂。不仅要管理服务器,还需关注容量管理、自动调整服务器数量、应对安全问题,以及处理因新容器和开源技术引发的故障。运维人员得学会运用各种工具解决这些新难题。
(三)智能运维的兴起
基于算法的智能运维应运而生,它利用数据和算法提升运维自动化与效率,例如合并报警信息、分析问题根源、关联分析、评估容量以及自动调整服务器数量等。其真正意义在于依托监控、服务台自动化,借助大数据和机器学习持续改进,突破人类能力极限。
(四)海量事件处理
- 数据分类方式
- 实时数据与非实时数据。
- 格式化数据与非格式化数据。
- 需要索引的数据与只需要运算的数据。
- 全量数据与抽样数据。
- 可视化数据与告警数据。
- 多维度数据:复杂业务场景下,事件包含多维度信息,如时间、地点、服务器组件、错误码、业务线、服务接口等。支持多维度数据存储和查询分析是系统灵活性的重要衡量指标。
- 处理方法多样:处理复杂数据往往是设计问题,不同设计思路带来不同处理方式,实际操作中常混合使用多种存储介质和计算模型,如监控数据用实时数据库,分析报表用 MySQL,告警事件用 Redis,日志检索用 Elasticsearch 等。同时,要考虑数据源稳定性、API 适配能力及数据与展现分离,避免前端变更引发大量工作量。
(五)常见运维困境及应对
- 拒绝服务与信息过载:DDoS 攻击致使服务器被大量请求淹没,陷入拒绝服务状态;运维中告警信息过多,如监控指标剧增,人力难以巡检,引发信息过载。这都要求运维人员从海量信息里筛选有用内容,找出问题根源。
- 故障定位困难:业务模型或系统部署复杂,不同系统技术栈混杂,导致故障定位艰难。为此可采用日志标准化、全链路追踪、SLA 规范化等方法,让不同系统协同,助力智能化运维,同时不影响程序员使用习惯。