弹性的定义

可用性定义

可用性 = MTTF / ( MTTF + MTTR )
MTTF:Mean Time To Failure,平均失效时间,指的是系统的正常运转时间
MTTR:Mean Time To Recovery,平均修复时间,指的是系统从出现故障到恢复的时长

传统方法提高可用性-提高MTTF

高弹性提高可用性-降低MTTR

弹性工程执行思想:提出边界问题(失败、风险、意外),从监控、预防、补救等几个方面思考解决方案,反推系统设计开发与流程改善。 (主要针对突发流量和弱依赖服务崩溃)

边界问题

隔离:业务系统隔离?基础中间件隔离?内部线程池等隔离?是否隔离完全?隔离范围是否重合?是否互相影响?
服务:服务超时?失败策略?是否熔断?是否重试?是否回退(fallback)?是否降级?
机器:单台机器不可用?单个机房不可用?多机器?异地多活?
流量:业务层限流?nginx限流?单个系统限流?
运维:压力测试?服务容量预知?故障回滚?故障模拟?

监控 & 补救 & 预防