Posts 第十三课:线上运行控制
Post
Cancel

第十三课:线上运行控制

概念

定义和要素

当系统正在运行,出现硬件故障或逻辑异常的时候,对当前运行状态进行旁路控制,以保障系统可用性,限制故障发生的范围,避免灾难扩散

要素:

  • 监控:及时发现系统异常
  • 容灾:应对故障的自动执行机制,保障系统可用性
  • 控制:对已经发生的异常进行人工干预,屏蔽故障或限制故障范围

开发和运维的分工

 开发运维
监控格式化输出系统内信息,给出告警规则。收集信息,进行展示;
对数据进行统计分析,并按照规则告警。
容灾设计开发容灾系统,给出故障预案。发生故障时,根据预案执行;
尽快进行资源替换,恢复正常运行。
控制提供借口供运维人员操作,给出屏蔽故障的执行方案根据开发要求,执行控制指令

开发和运维共同完善线上控制系统,两者缺一不可。

监控

监控的对象和数据来源

 分类:描述 / 作用 / 存储
进程日志流程日志:进程运行时产生的错误异常,重要状态变更 / 分析和解决逻辑异常 / 大量数据,保存时间短
运行日志:定时输出进程内的统计数据 / 性能统计分析,优化的凭据 / 数据量较少,保存时间短
经营分析日志:用户数据变更的原因 / 分析经营情况,监控游戏内的产出 / 海量数据,永久保存
系统日志操作系统日志:进程的CPU、内存等信息 / 性能监控,缩容扩容的依据 / 数据量中等,保存时间短
硬件状态:磁盘容量,IO,整体内存用量 / 硬件性能,进程部署调整依据 / 数据量小,保存时间短
网络状态:网络流量,连接数,延迟探测 / 网络容量的调整依据,断网的告警 / 数据量小,保存时间短

ps:除了流程日志,其他短期日志会在格式化后,存入数据仓库,实际上也可以视为长期存储

如何采集监控数据

Screen Shot 2021-04-20 at 22.01.44

一般来说第一种属于一些业务数据的监控。

而第二种可以是对于整个硬件、系统的监控比如IO、内存、CPU使用率。

所以一般来说都要有两套解决方案

监控数据的显示和告警机制

Screen Shot 2021-04-20 at 22.03.52

一般来说都要做成以图表的形式。

如下是告警的流程:

Screen Shot 2021-04-20 at 22.04.39

容灾

故障来源和分类

Screen Shot 2021-04-20 at 22.05.46

机器硬件故障、网络故障、机房故障处理机制

机器故障时有发生,并不是完全不可能的事情,对于机器故障的检测与处理方式如下所述:

故障发生 - > 心跳检测 - > 发现故障 - > 故障处理 - > 故障恢复

其中故障处理的方式多种多样,比如说:数据冷备、冗余设计、主从热备、状态同步、一致性校验、路由切换、物理备机、状态恢复

例子:网络故障

Screen Shot 2021-04-20 at 22.09.08

例子:机房故障

Screen Shot 2021-04-20 at 22.10.00

控制

介绍控制的定义和作用

定义:

  • 由开发提供的一套体系,通过旁路控制,在线关闭某些逻辑功能,或执行某些操作。

作用:

  • 逻辑异常时,关闭指定的逻辑模块
  • 触发全局事件,切换系统的运行状态
  • 单个或部分用户的特殊处理
  • 柔性服务

控制的分类和实施

规则:

  • 持久生效
  • 全局一致性
  • 客户端部分可见

指令:

  • 单次触发事件
  • 分级权限
  • 系统和用户

Screen Shot 2021-04-20 at 22.13.04

This post is licensed under CC BY 4.0 by the author.

第十二课:核心系统设计——服务器地形

第十四课:生产环境介绍

Trending Tags