稳定性「三十六计」实战和背后的逻辑

简介: 稳定性「三十六计」实战和背后的逻辑

背景


不同于《编写代码的「八荣八耻」》《稳定性「三十六计」》是应用于设计阶段的非手脚架方式的标准化。


在实际工作中,通常会提倡给新人机会,让他们自己去设计系统。这时候如果没有一种标准化的check机制,会影响整个系统的质量。《稳定性「三十六计」》在实际项目中,我们作为设计阶段的checklist来用。实现了从有重大变更允许出小错到架构演进过程中周可用性不低于3个9。


同时,我们是一个做容器化的团队。不断实践和总结好的方法并且推广这些方法,让所有的部门都更标准化的设计和开发更利于容器发挥自身的优势,为打造更稳定、更易用、更省钱的HULK系统打下基础。

 

WHAT


下面是我们容器的剩余资源历史记录功能在设计阶段的稳定性「三十六计」checklist.


1112728-20190417200030288-1405662742.png


1112728-20190417200121759-1956863791.png


WHY


设计有很多好的原则:避免过渡设计、防止破窗……但是对于新人来说落地困难。稳定性「三十六计」给出了具体的设计方法,使用这种方法可以达到下面的效果:


少就是多


少就是多是稳定性的重要原则。稳定性「三十六计」里通过消除临时、链路精简、负代码行、最小API、避免重复、拒绝环路六项更可量化的措施来保证。

 

可扩展性


无状态化、幂等设计、读写分离、容量冗余四个方法给负载均衡、避免单点提供了解决方案,使得系统可X轴、Y轴扩展。


内聚解耦


配额管控、严格准入两个方法实际上将一个功能拆分成了两个阶段。先check再do。异步通信将一个过程拆分成两个过程,降低了两个过程之间的相互作用。


防止雪崩


超流熔断、禁止批量、超时重试、分级管理、快速失败五个方法有效避免问题逻辑对其他逻辑引起的干扰,防止问题扩大。


提高性能


缓存为王、无锁并发、梯级存查、流量缓存、本地代理、避免串联六个方法也是业务比较流行的提高性能的错误。


故障运维


兜底策略、先验确保、前置加载三个方法将问题控制在前面的阶段。开关上线、灰度升级、应急预案、支持回滚四个方法在产生问题时给出了有效的应急解决措施。

 

对于一些新人来说,划分边界和领域是相对困难的事情。稳定性「三十六计」提供了设计思路。同时,我们不重复造轮子,设计时引用了很多基础设施时,很多稳定性「三十六计」的内容是通过第三方来保证的,而这个checklist有效的促使设计者进行反向设计,使用的时候也去了解其原理。

 

HOW


请参考《稳定性「三十六计」》系列文章。

稳定性「三十六计」- 配额管控

设置默认的超时和重试是一个基础设施的基本素养

稳定性「三十六计」- 无状态化

相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
RGCN的torch简单案例
RGCN 是指 Relational Graph Convolutional Network,是一种基于图卷积神经网络(GCN)的模型。与传统的 GCN 不同的是,RGCN 可以处理具有多种关系(边)类型的图数据,从而更好地模拟现实世界中的实体和它们之间的复杂关系。 RGCN 可以用于多种任务,例如知识图谱推理、社交网络分析、药物发现等。以下是一个以知识图谱推理为例的应用场景: 假设我们有一个知识图谱,其中包含一些实体(如人、物、地点)以及它们之间的关系(如出生于、居住在、工作于)。图谱可以表示为一个二元组 (E, R),其中 E 表示实体的集合,R 表示关系的集合,每个关系 r ∈ R
2728 0
|
网络协议 安全 Python
python中socket客户端关闭连接
【4月更文挑战第7天】本教程介绍了如何在TCP客户端中正确关闭连接。使用`close()`方法可关闭Socket连接并释放资源,示例代码显示了在正常和异常情况下关闭连接的方法。注意异常处理以确保在任何情况下都能关闭连接,并避免并发操作同一Socket,以保证连接的稳定和安全。掌握这些技巧对编写健壮的TCP客户端至关重要。
1575 2
|
运维 虚拟化 Windows
Hyper-V Win8虚拟机启动错误修复教程
针对Hyper-V Win8虚拟机启动错误,本教程提供详细修复步骤。首先进行硬件兼容性检查,确保CPU支持虚拟化并启用,同时检查内存和存储空间是否充足。接着以管理员身份登录,使用事件查看器排查错误。管理Hyper-V服务,确保相关服务正常运行。检查虚拟机状态,优化资源分配,并修复虚拟硬盘文件。更新系统和重装Hyper-V组件也是有效手段。最后,排查硬件故障、备份数据及处理第三方软件冲突。通过这些步骤,多数启动问题可得到解决。
1077 65
|
10月前
|
Apache 开发工具 数据格式
OpenAI 重返开源!gpt-oss系列社区推理、微调实战教程到!
时隔N年,OpenAI开放模型权重啦!欢迎使用gpt-oss 系列,专为强大的推理、代理任务和多用途开发场景设计。
2088 0
|
数据采集 存储 JavaScript
(2024)豆瓣电影详情内容爬虫详解和源码
这是一个Python爬虫程序,用于抓取豆瓣电影详情页面如`https://movie.douban.com/subject/1291560/`的数据。它首先发送GET请求,使用PyQuery解析DOM,然后根据`<br>`标签分割HTML内容,提取电影信息如导演、演员、类型等,并将中文键转换为英文键存储在字典中。完整代码包括请求、解析、数据处理和测试部分。当运行时,会打印出电影详情,如导演、演员列表、类型、时长等。
817 1
 (2024)豆瓣电影详情内容爬虫详解和源码
|
机器学习/深度学习 人工智能 计算机视觉
YOLOv11 正式发布!你需要知道什么? 另附:YOLOv8 与YOLOv11 各模型性能比较
YOLOv11是Ultralytics团队推出的最新版本,相比YOLOv10带来了多项改进。主要特点包括:模型架构优化、GPU训练加速、速度提升、参数减少以及更强的适应性和更多任务支持。YOLOv11支持目标检测、图像分割、姿态估计、旋转边界框和图像分类等多种任务,并提供不同尺寸的模型版本,以满足不同应用场景的需求。
YOLOv11 正式发布!你需要知道什么? 另附:YOLOv8 与YOLOv11 各模型性能比较
|
机器学习/深度学习 数据可视化 算法
经典时间序列分析概述:技术、应用和模型
时间序列数据按时间顺序收集,具有时间维度的重要性,需专门技术和模型进行分析预测。其应用广泛,涵盖经济预测、风险管理、天气预报、气候建模、流行病学、患者监测、需求预测、客户行为分析及预测性维护等领域。时间序列特征包括趋势、季节性和周期性模式。自相关和偏自相关用于衡量数据点间关系,白噪声表示无自相关的时间序列。平稳性指统计特性随时间保持一致,对建模至关重要。常见模型包括ARMA、ARIMA、SARIMA、ARCH和GARCH,用于捕捉复杂动态并预测未来模式。选择合适模型和确定顺序对准确预测至关重要。掌握这些基础知识不仅增强对复杂模型的理解,还能确保预测方法的稳健性和可靠性。
3932 2
经典时间序列分析概述:技术、应用和模型
|
域名解析 缓存 运维
【域名解析DNS专栏】DNS解析策略:如何实现负载均衡与故障转移
【5月更文挑战第23天】DNS在互联网中扮演关键角色,将域名转换为IP地址。本文探讨DNS的负载均衡和故障转移技术,以增强服务可用性和性能。负载均衡包括轮询(简单分配流量)和加权轮询(按服务器处理能力分配)。故障转移通过主备策略和TTL值实现快速切换,确保服务连续性。实践案例展示了在电商网站如何应用这些策略。DNS策略优化可提升网站速度和稳定性,借助云服务和智能工具,DNS管理更加高效。
2289 1
【域名解析DNS专栏】DNS解析策略:如何实现负载均衡与故障转移
|
存储 安全 Java
System.setProperty配置系统属性详解
System.setProperty配置系统属性详解
1064 3