稳定性生产秘籍大公开

简介: 本文探讨了分布式系统的稳定性建设,目标是降低故障发生和影响。关键措施包括系统高可用、高性能、高质量(三高)以减少发生,及早感知、快定位、急止损以减轻影响。量化指标有业务可用程度(如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以结构化,来保障稳定性能力。

目录
相关文章
|
9天前
构建安全可靠的系统:第十一章到第十五章
构建安全可靠的系统:第十一章到第十五章
177 0
|
9天前
|
监控 安全 项目管理
项目成功秘诀:高效管理策略确保按时交付
项目成功对企业生存发展至关重要,需要明确目标和范围,运用SMART原则和设计思维确保目标与市场需求相符。通过工作分解、优先级排序管理需求,建立变更和风险管理流程。制定详细项目计划,考虑约束条件、关键节点和风险。优化团队协作,明确角色责任,建立有效沟通机制,激励团队成员。实施PDCA循环控制项目进程,关注交付和复盘,以实现高质量的项目成果。
68 1
|
9天前
|
存储 安全 测试技术
确保软件安全性:在软件开发中的关键挑战与最佳实践
确保软件安全性:在软件开发中的关键挑战与最佳实践
|
9天前
|
数据采集 监控 安全
量化交易源码开发丨量化交易系统开发成熟技术/教程方案/策略指南
定你的量化交易系统的需求和目标,包括交易策略、数据来源、风险管理等。
|
9月前
|
机器人
量化交易丨交易所系统开发策略规则/逻辑方案/成熟技术/开发案例/源码部署
  “量化交易”有两层含义,一种是从狭义上的讲法,中指量化交易的内容,将交易的条件转变为程序的意思,自动下单。二是从广义上讲,是指系统交易的方法,一个整合交易的系统,按照一系列的交易条件,智能化的辅助决策系统体系,把丰富的从业经验与交易条件相符合,交易过程管理好风险控制。
|
6月前
|
监控 供应链 测试技术
什么是 2B 软件的实施和上线概念
什么是 2B 软件的实施和上线概念
64 0
|
6月前
|
机器人 TensorFlow 算法框架/工具
量化交易机器人(币安/OK交易所)系统开发方案策略及源码项目搭建分析
量化交易机器人(币安/OK交易所)系统开发方案策略及源码项目搭建分析
|
9月前
|
5G 测试技术 UED
【游戏专项测试】弱网测试--基础原理
【游戏专项测试】弱网测试--基础原理
|
9月前
|
人工智能 机器人
AI智能自动交易量化机器人系统开发稳定版丨案例设计丨方案项目丨功能分析丨源码说明
When developing an AI automated quantitative trading robot system, it is first necessary to clarify the system's goals and requirements. Determine key factors such as the market, trading strategy, and risk control methods to be traded. Next, establish the basic framework for data acquisition and pro
|
API 数据库
量化交易系统开发代码部署方案丨合约量化系统开发技术成熟源码流程
量化交易系统开发代码部署方案丨合约量化系统开发技术成熟源码流程
134 0