年前系统走查

下周就要放假了,春节临近啦~老规矩,放假前都需要对系统进行一次全面地梳理与走查,具体的细节如下:

1. 机器状态

  • 是否有机器的CPU/IO/网络/内存异常,一般一组机器的这4个指标是差不多的,如果哪台机器的指标很高或者很低,就需要详细的排查下。一般CPU保持在20%~30%就是比较好的状态
  • 是否有机器的硬盘分区容量满了,可以搞个脚本定时扫描然后告警,最好是自动就清理掉(日志分级、日志统一存放,满足了这两点就好自动清理日志了)。

2. 容量管理

  • 机器负载是否偏高,是否有春节期间的活动,如果有的话需要提前申请机器进行扩容,即使用了k8s也需要和相关同事确定弹性伸缩是否有额度
  • 缓存的容量是否够,是否需要扩容,我们用的redis,一般容量在65%也不用太担心,只要接下来的容量增量不是那么大即可。

3. 存储服务

存储一般是DBA负责的,DBA都是一群非常负责的人,将存储托付给他们会比较放心,业务只需要保持关注即可,放假前一周和DBA作一次沟通(主要是询问值班情况),然后到时候有问题随时在群里反馈就行。

4. 容灾

保证系统没有单点,而且无论那一组模块中的某台机器down掉了,能够在1分钟内将其剔除,而且服务都有失败重试的功能,这样服务就可以不受影响了。一定要有负载均衡的组件。这一快不能存侥幸心理,有可能就是你在打牌的时候你负责的那台单点的机器故障了或者是没有自动剔除的某个模块的机器故障了,到时候就比较难受了。

一般后端服务最好是搞成无状态能平行扩展的,但是免不得还存在主备模式运行的,对于这种模式就应该用一个组件来解耦开。组件提供抢主的功能,或者有个组件能记录下机器的状态然后判活,有了这个组件后主备模式的就可以解耦开了。

5. 上下游服务

尤其需要检查核心服务依赖的上下游服务是否有准备春节预案。业务自己也需要针对这部分作预案,主要是收集对方的联系方式(最好是能够拉群)、并且能在故障的时候进行柔性或者降级处理。目前依赖的服务主要有:

  • 搜索
  • 登录态校验
  • 推荐
  • 图片
  • 脏词
  • JOB平台
  • CDN
  • etc

6. 值班

从腊月二十七到大年初八都需要进行排班,每天的班需要两个人值,而且消息需要在值班大群里面及时同步。

7. “封网”

这里的封网不是指不能做任何变更,而是不用作不必要的变更和发布,绝大部分的故障是由发布引起的,不变更无事故,变更就会带来事故。放假前一周原则上不能发布代码,如果需要发布代码需要取得领导的批准,而且在整个春节期间变更都需要遵守周知-审批-执行这个流程。