稳定性生产秘籍大公开

简介: 本文探讨了分布式系统的稳定性建设,目标是降低故障发生和影响。关键措施包括系统高可用、高性能、高质量(三高)以减少发生,及早感知、快定位、急止损以减轻影响。量化指标有业务可用程度(如SLA、RTO、RPO)、用户影响程度和资产损失程度。稳定性建设模式涉及架构设计(去除单点、强弱依赖等)、容量设计、运维方案(变更管控、可观测性等)和安全设计。建设路径包括需求分析(确认分析对象和确定服务需求)和实现分析(服务流程、依赖分析、部署架构等)。建设活动涵盖稳定性保障机制、组织能力和体系构建。最终,通过统一的系统化管理能力和故障数据复盘来持续优化和保障稳定性。

本文我们来谈下稳定性生产这个话题,稳定性建设目标有两个:降发生、降影响,

在降发生中的措施是做到三点:系统高可用、 高性能、 高质量,三高问题确实是一个很热的话题,里面涉及很多点。

在降影响中要做到早感知、 快定位、 急止损,这三点也需要很多的技术配合才可以做到的。那么量化的指标有哪些呢?现在认识到的有这三个:业务可用程度、用户影响程度、资产损失程度 。

在业务可用程度中我们最关注SLA、 RTO、 RPO。

SLA是Service Level Agreement的缩写,中文翻译为“服务级别协议”。它是一种协议约定,旨在保证服务提供商和客户之间的服务质量达到一定水平。SLA通常用于商业、技术和服务行业,以确保双方在合作过程中达成一致的服务标准。通常以百分比表示,用于衡量服务系统的可用时间,例如99.9%表示系统的可用时间为99.9%。

RTO含义为恢复时间目标,Recovery Time Objective,是指在发生灾难性事件后,业务系统或业务流程需要恢复正常运行所需的时间。较短的RTO通常需要更多的投入和成本,但可以最大程度地减少业务中断时间。

RPO含义为恢复点目标,Recovery Point Objective,是指在发生灾难性事件时,组织愿意丢失的数据量,或者说允许数据恢复到之前状态所允许的最大时间间隔。RPO标志着对数据容忍的程度,较短的RPO意味着组织可以容忍较小的数据丢失。

在用户影响程度中比较关注用户数量和用户级别两类数据。

在资产损失程度关注有形资产和无形资产两个指标。

一、分布式系统稳定性建设模式

那怎样完成降发生和降影响两个目标呢,那就需要一个好的建设模式,稳定性建设模式是指在开展稳定性建设工作过程中应重点关注的技术方法或方案,这里面有一系列技术模式来支撑稳定性能力实现。主要技术有架构设计、容量设计、运维方案设计、安全设计四个方面。

1、架构设计  

在架构设计中有五项内容做好就比较好了,分别是:去除单点、强弱依赖设计、关键数据保护、灾备设计、弹性设计。

2、容量设计  

容量设计中首先要做好数据增长预测,这里面包括网络流量 、消息量等。也要关注内部资源使用情况,资源的伸缩性,IDC容量 ,一些弹性设计,链路分析。

3、运维方案设计  

在运维方案中,我们要做好变更管控 、可观测设计 、演练设计这三点。

4、安全设计  

在安全设计中,要做好系统安全设计、部署与操作系统安全、数据安全、网络安全这几个方面。

二、分布式系统稳定性建设路径  

那我们在实际工作中怎样进行建设呢?需要做两件事:需求分析和实现分析。

1、稳定性建设需求分析  

需求分析可以分为确认分析对象主体和确定服务需求两部分。

对象主体通常可以是一个应用系统,通常以独立的应用系统为分析对象,如聊天软件。

也可以是一组应用系统:通常以业务场景为主体对象关联,如电商订单支付关联,如微信聊天关联系统。

也可以是一个架构域:通常一个架构域内的重要性应用系统都会有一定的内在联系,以架构域为对象能够尽可能避免可能发生的对长尾业务场景的忽视。

确定了对象主体后,我们需要确定主体的三个方面需求,分别是:

主体提供的服务是系统服务,还是页面表现服务,还是restful服务或者终端设备交易服务等;

使用场景是有哪些业务和系统流程,存在于这些业务系统流程对应的上下游服务有哪些;

确定服务的重要性等级,一个服务的重要性由强依赖它的最高服务等级决定,根据各服务的重要性等级,确定对象稳定性需求。

2、稳定性建设实现分析  

进行需求分析后,我们在来进行实现分析,

1)服务实现流程分析

需要分析明确服务的实现流程,如服务实现的UML活动图、UML序列图或者业务依赖流程图。

2)强弱依赖分析

对于系统的每一个依赖,都要识别出以下几点:依赖强弱、同步或异步、依赖权重。

针对具体的服务类型,还需要针对性的开展依赖分析,如数据库依赖、系统间的协作关系、硬件服务依赖、基础技术服务依赖等。

3)部署架构分析

稳定性建设工作开展前需分析各个实现组件的生产部署架构,明确系统有哪些部分组成,以及明确系统间的协作关系,如集群划分、集群的 大小、集群IDC分布、网络拓扑等

4)访问模式与访问量分析

如果访问量、访问模式和业务量之间有关系,请明确关系函数,如果不明确,则要通过测试估算出三者之间的关系。

3、稳定性建设活动    

进行分析之后,那我们就要着手进行建设了,这些建设活动涉及人员、机制和文化,全方位的建设活动才能更好地落实建设模式。下面我们看下需要做哪些?

1)建设稳定性保障机制

其中包括:规范编制、方案评审机制、测试准入准出机制、值班及责任判定机制、能力考核机制、故障管理机制。

2)建设组织保障能力

包括人力资源支持、技术资源支持、组织优化

3)建设稳定性保障体系

包括如下内容:

 在建设之后,我们可以依照如下指标来进行衡量建设的效果

以上就是我们本期稳定性生产方面的内容了,故障的发生是复杂多样的,需要多个技术团队的协同保障系统稳定,所以需要统一的系统化稳定性管理能力作为“连接器”实现多个团队的协同透明化作战,并进一步通过故障应急结果数据复盘,数据化风险趋势以确定建设重点,标准化故障管理流程,以提升故障管理效率,定义业务或者服务的slo以结构化,来保障稳定性能力。

目录
相关文章
|
2月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
47 5
|
8月前
|
数据采集 监控 算法
区块链量化交易系统开发策略详细丨需求步骤丨案例设计丨规则玩法丨成熟源码
策略:建立数据采集系统,获取各种市场数据,包括交易数据、新闻情报、社交媒体消息等。
|
4月前
|
数据挖掘 项目管理 调度
「软件项目管理」一文详解软件项目质量计划
该文章全面介绍了软件项目质量计划的制定方法,涵盖了质量模型、质量管理过程、质量保证与控制技术,并提出了软件质量改善的具体建议,帮助项目管理人员有效地提升软件产品的质量水平。
「软件项目管理」一文详解软件项目质量计划
|
5月前
|
存储 开发工具 git
Flutter相关痛点解决问题之保证共建开放性的同时确保软件整体的质量和性能如何解决
Flutter相关痛点解决问题之保证共建开放性的同时确保软件整体的质量和性能如何解决
|
6月前
|
存储 数据采集 监控
量化交易开发正式版丨量化交易系统开发策略项目/指南功能/方案需求/案例设计
量化交易系统开发策略的指南可以涵盖以下几个关键方面:
|
5月前
|
Java
软件交付质量问题之要提升发布成功率,如何实现
软件交付质量问题之要提升发布成功率,如何实现
|
测试技术
【项目实战典型案例】10.对生产环境以及生产数据的敬畏
【项目实战典型案例】10.对生产环境以及生产数据的敬畏
|
存储 供应链 安全
政府为开发人员发布指导以确保软件供应链安全
政府为开发人员发布指导以确保软件供应链安全
|
API 数据库
量化交易系统开发代码部署方案丨合约量化系统开发技术成熟源码流程
量化交易系统开发代码部署方案丨合约量化系统开发技术成熟源码流程
166 0
|
消息中间件 存储 缓存
提升相亲源码搭建效率,需要提前了解的技术架构
提升相亲源码搭建效率,需要提前了解的技术架构