稳定性建设

208 阅读2分钟

稳定性的定义

SLA = uptime / uptime + downtime 即系统不可用时间占比全年时间,数值越高,意味着系统稳定运行时间越长。

所谓的4个9,意味着全年最多有52.56分钟的故障时间。 5个9,意味着全年最多有5.26分钟的故障时间,等等,以此类推

稳定性保障手段

  1. 弹性服务:容量规划,容量伸缩,全链路压测
  2. 故障隔离:强弱依赖,熔断限流,故障演练
  3. 应急体系:系统监控,系统告警,值班体系,核心链路梳理,监控埋点
  4. 稳定性建设文化:代码review,单元测试,故障复盘

容量规划

1:线上服务能承受多大的访问量 2.单台服务器能承受多大的访问量 3.需要加机器吗?需要加多少台机器 这个时候,就体现出容量规划的重要性了

容量 VS 性能

  • 性能:决定一辆车能装什么东西
  • 容量:决定需要多少量车

容量规划可以分解为下面 4 个步骤

  • 明确目标
  • 收集指标
  • 趋势预测
  • 容量部署

收集数据指标

不知道当前服务能承受的容量范围的话,不建议进行容量方面的规划。

我们需要通过测试来了解当前服务的数据指标。没有测试出你的服务上限的话,规划出来也是没有效果的。

测试主要分为下面 2 个步骤

  • 测试服务器的主要功能 :业务维度 QPS、TPS
  • 测试服务器硬件资源 : CPU、内存、硬盘、网络

趋势预测

预测容量是一个持续的过程,需要靠数学与直觉来进行精确的预测。

整体过程如下

  • 首先确定资源度量指标 :比如内存消耗、硬盘消耗、CPU 消耗

  • 其实对拥有的资源确定约束访问 : 比如 总内存大小、总硬盘大小等

  • 最后根据监控趋势图( Zabbix 、Metrics)算出具体容量超出时间点 : 比如内存何时会耗尽