来源: 中国信息通信研究院
系统稳定性能建设是一个系统化工程,需要硬件软件,需要从企业工程建设的全环节进行设计和实施,充分利用以混沌工程、全链路压测为代表的分布式稳定性保障技术,建设保障能力,改造运营流程、推进稳定性文化,保障企业系统稳定性、提升业务连续性、促进行业高质量发展。
- 分布式系统面临稳定性保障新挑战 :由传统集中式向分布式架构演进
- 政策引导it系统稳定性建设平稳推进
分布式系统稳定性建设总体视图
分布式系统稳定性建设目标
1、降发生 : 降低故障发生的概率高可用 方案设计阶段采用面向失败的理念来设计系统架构高性能通过精简主干业务逻辑,将不相干的业务异步化,实现快速的功能响应;通过缓存技术,加快数据访问的性能高质量 最佳实践经验的沉淀设立开发、运维规范可有效减少人为故障的发生通过合理的拆分理念(纵向技术分层、横向业务分区)提升系统的可维护性、可演进能力。
2、降影响:降低故障发生后的影响范围 早感知完善监控告警、可视化监控告警能力,感知系统的异常变化快定位系统对故障定位明确,故障管理机制定义完整,职责明确,流程清晰,有效提升故障发生后的处理效率急止损故障发生后的第一反应永远是 “优先止损”,在止损后再开展故障修复提前建立各种故障预案故障及时复盘,实现故障闭环。
分布式系统稳定性评价指标
- 业务可用程度 SLA (两种计算方式:通过时间维度计算、通过用户请求状态计算。 扩展概念: RTO、RPO)
- 用户影响程度
- 资产损失程度 (有形资产(资金/设备/人力成本等),无形资产(社会形象/潜在商机等))
分布式系统稳定性建设模式
常见的稳定性建设模式:
架构设计
-
去除单点
-
依赖设计 -高等级服务不允许依赖低等级服务或资源
-
数据保护 ——提升数据安全性
-
灾备设计
-
弹性设计
-
容错设计
容量设计
- 数据增长预测
- 网络流量
- 消息量
- 内部资源使用
- 伸缩性
- IDC容量
- 链路分析
- 吞吐量提升
架构设计
- 变更管控
- 可观测设计
- 演练设计
安全设计
分布式系统稳定性建设路径
需求分析
从业务来,到业务去。 —— 关键原则
1、确认需求分析对象: 一个应用系统?一组应用系统?一个架构域?
2、确定被分析对象的稳定性需求
需求实现分析
采集分析与服务相关的业务、架构、设计、实现、配置、部署、硬件与软件使用信息 —— 全面了解分析对象
1、服务实现流程分析 uml活动图、uml序列图/业务流程图
2、强弱依赖分析
3、部署架构分析 (明确生产部署架构,集群划分,集群大小,集群IDC分布,网络拓扑)
4、访问模式与访问量模分析 —— 简化容量分析和规划
稳定性建设活动
1、建立稳定性保障机制
- 规范编制 ——代码编写规范、变更规范、运维操作规范
- 方案评审机制
- 测试准入准出机制
- 值班及责任判定机制
- 能力考核机制
- 故障管理机制
2、建设组织保障能力 - 人力支持
- 资源支持
- 组织优化
3、建立稳定性保障体系
分布式系统稳定性建设工具
分布式系统稳定性建设工具关系图,可见是一项非常庞大而复杂的工程,体系的落地并非一朝一夕可完成。故障总会发生,没有任何一项技术或者平台能够绝对规避风险,需要通过不断补全完善体系中需要的能力来最大限度降低故障概率,或提升故障应对速度。
故障预防工具
- 可观测能力
- 变更管理
- 容量管理
- 全链路压测
- 混沌工程
故障止损工具
- 应急平台
- 容灾管理