系统总出故障怎么办?咋搞呢?
共 3816字,需浏览 8分钟
·
2024-05-27 08:20
1、深入理解稳定性与高可用性
稳定性是数学或工程上的用语,判别一系统在有界的输入是否也产生有界的输出。若是,称系统为稳定;若否,则称系统为不稳定。
再看看高可用性的:
高可用性(英语:high availability,缩写为 HA),IT术语,指系统无中断地执行其功能的能力,代表系统的可用性程度。是进行系统设计时的准则之一。高可用性系统与构成该系统的各个组件相比可以更长时间运行。
根据系统损害、无法使用的时间,以及由无法运作恢复到可运作状况的时间,与系统总运作时间的比较。
系统正常运作的时间,即系统处于稳定状态的时间。
-
系统损害、无法使用的时间,即系统处于非稳定状态的时间。 系统由无法运作恢复到可运作状况的时间,即系统由非稳定状态恢复到稳定状态的时间。
2、稳定性与高可用保障的核心思路
功能:应用程序执行的功能出现错误,不符合预期。
容量:当系统接收的请求数量增加时,应用程序无法正常处理,出现异常或超时,导致服务失效。
安全:当系统接收到的没有授权的或者恶意攻击的请求时,应用程序出现异常甚至服务失效。
-
容错:对于用户错误的使用方式,应用程序无法合适地处理。
-
人为故障:在开发软件的各个环节中思考不充分,或者执行时粗心导致的各类问题。 -
硬件故障:网络不通,硬盘空间不够,内存崩溃等。 软件故障:线程池异常,JVM异常,中间件或其他依赖的应用服务异常。
人犯错的几率是远远大于机器的,因此故障预防最重要的是建立一套机制,在团队内达成共识并持续按照此流程开展研发工作,从而减少个人因素(思考、执行、状态等方面)对系统稳定性的影响。而故障发现以及故障恢复,则是需要通过系统监控和应急方案来快速发现系统异常并恢复,从而尽量减轻故障的影响面。下面以蚂蚁日常的产品研发流程为例,从功能、容量、安全、容错这4个核心要素出发,给出一套方案仅供参考。
研发规范
设计阶段
团队细分文档模板
高可用设计规范
编码阶段
代码规范
通用代码规范
工程结构规范
单测覆盖率
单测通过率
代码覆盖率
日志规范
安全漏洞修复规范
发布阶段
变更规范:三板斧
容量保障
-
容量评估 -
机器容量 -
DB容量 -
缓存容量 -
压测摸底 -
限流方案 -
降级方案
监控告警
日志规范
监控梳理
应用基础监控
网关监控
服务监控
业务监控
限流监控
告警规范
数据核对
应急快反
日常预案
-
硬件异常预案 -
中间件异常预案 业务异常预案
-
大促预案 -
预案执行规范
总结
来源:本文转自公众号“阿里巴巴中间件”。
如果觉得有用,就请关注、点赞、在看、分享到朋友圈吧!
推荐阅读:
END
长按二维码/微信扫码 添加作者