做电商业务开发这几年,我学到的系统稳定性建设方法

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 文章总结了电商业务开发中保障系统稳定性的关键方法,包括代码健壮性、安全变更、系统链路梳理、接口降级与限流、定期降级演练、预案准备、系统压测、日常巡检、中间件巡检、值班制度和告警机制,强调了稳定性建设是一个长期任务,需要持续迭代优化,并保持对生产系统的敬畏之心。

一、背景

作为开发人员,系统稳定性是一个绕不开的话题,特别是做电商业务系统这几年,几乎天天都要关注稳定性,一旦出现故障对于公司来说都是一场灾难,因此保障系统稳定是最关键的要求,本文将根据最近几年负责电商系统涉及到的稳定性建设常用方法做一次总结。

二、什么是系统稳定性?

对于业务系统来说,不管有什么因素对我们的系统干扰,都要尽可能的提供高可用性不影响系统功能用户体验

影响稳定性有哪些因素呢?

1、人为操作

比如不合理的系统变更,外部的攻击,访问流量突增

2、自然灾害

比如网线光纤被挖

3、硬件故障

比如自然硬盘损坏,内存网络

从以往经验来看,其实影响系统稳定性最多的原因是人为因素造成的。

二、这些年学到的稳定性方法

1、注重代码健壮性,注重codereview

代码开发需要考虑可观测,可降级,考虑异常容错性,合理使用缓存,线程池等,对于外部依赖需要超时机制

2、安全变更,遵守sop

任何生产环境的变更都要按公司规范操作,做到可灰度可监控可回滚

3、系统链路梳理,强弱依赖梳理

把系统核心链路流程梳理,分析系统的出强弱依赖,分析是否有损降级

4、接口降级,限流,熔断,超时设置

需要对下游依赖设置可降级,可熔断超时,避免外部系统性能或者故障拖垮服务

对本服务接口设置必要的限流,一般有网关层总限流单机限流,防止突发流程冲击系统

5、定期业务系统降级演练

需要定期对系统的业务功能进行降级演练,只有真实演练过了,线上有问题的时候才可以临危不乱。

6、系统预案准备充分

业务功能上线前都需要做好降级预案,包括技术和业务层面的准备,这样出现问题可以快速恢复止血

7、系统或全链路压测

新功能上线需要做压测摸高,日常也需要常态化压测,通过压测用于合理评估系统资源是否合理,可以及时消除容量和性能瓶颈隐患

8、业务系统日常巡检

  • 业务指标巡检

对于业务系统这点是非常重要的,我们需要观察业务指标趋势,业务指标一般有一定的规律,如果变化比较大可能业务有调整,可以评估是否正常的业务。

  • 业务流量qps巡检

巡检qps的环比变化,发现异常的流量,防止业务或者流量突增对系统冲击

  • 接口响应时间rt巡检

发现系统响应时间的变化,主动发现问题

  • 系统异常巡检

自动发现系统的错误,提早评估业务影响

9、中间件巡检

  • Mysql巡检

mysql慢查询

mysql的cpu繁忙度

mysql磁盘空间大小与增长情况

mysql的主键或者分布式id是否将达到阈值

上面这些是需要重点关注的部分,通过巡检提前发现系统隐患,降低故障发生概率,提高可用性。

  • redis巡检

redis的cpu繁忙度

redis热点key的变化

redis大key的变化

redis的数据分布均衡情况

上面几个点是关注多的,如果使用的云上的产品,都有比较好的可视化监控能力,我们通过监控面板发现问题。

10、系统值班

针对重要节假日,预估会有流量高峰的时间,安排相关人员值守,重点关注系统水位,比如流量qps,cpu有无异常等,还关注客服响应群,保障有问题时可以及时响应

11、告警

配置核心告警群,把系统核心告警统一到群里,系统相关人需要在群里,需要将重要的业务情况同步播报在群里,系统异常情况告警出来,方便快速发现问题

三、总结

本文结合作者工作中稳定性建设相关的经验做了总结,存在不足欢迎补充或者指正,欢迎大家在评论区分享下自己是如何落地稳定性建设的。

稳定性建设是一个长期的任务,不可能一朝一夕就把稳定性做好,而是需要持续不断的迭代优化。

作为开发人员,我们应该始终对生产系统保持敬畏之心

关注我们一起学习技术吧,坚持相信有输入一定要有输出,希望我们的技术能力越来越强大。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
资源调度 数据可视化 项目管理
项目管理系统在制造业的应用,提高生产效率的秘诀与解决方案
制造业面临产品交付挑战,项目管理系统成为提升效率的关键。Zoho Projects提供解决方案,包括基础信息管理(如门户配置、用户管理、权限设置和自动化)、任务管理(规范流程,支持模板和文档导入导出)和资源调度(分配人员,可视化展示资源使用)。该系统助力企业优化作业效率,已被超过20万家公司采用,并获福布斯认可。
59 3
|
人工智能 运维 监控
支付宝技术风险负责人陈亮:把事情做到极致,技术的差异性才会体现出来
只有真正做到极致,技术的差异性才会体现出来。
5852 0
|
3月前
|
开发框架 运维 Cloud Native
核心系统转型问题之提升研发效能和保障研发质量如何解决
核心系统转型问题之提升研发效能和保障研发质量如何解决
|
6月前
|
人工智能 自然语言处理 搜索推荐
突破业务发展瓶颈 ,实施CRM系统的最佳时机是什么?
企业在不同发展阶段,CRM系统作用各异。初创期应专注产品与市场开发,成长期引入Zoho CRM能提升销售效率和客户管理。成熟期需精细化管理,借助CRM分析数据,应对竞争。创新阶段,CRM结合AI和大数据,实现个性化营销,推动行业发展。企业应根据发展阶段选择合适的CRM策略,以实现持续增长。
47 2
|
5月前
掌握这些阐明IT价值的最佳实践易于获取资金并推动业务增长
掌握这些阐明IT价值的最佳实践易于获取资金并推动业务增长
|
存储 监控 架构师
十年业务开发总结,如何做好高效高质量的价值交付
软件交付是一个非常复杂的过程和体系,需要保障好每个阶段的质量和效率才能保障最终的质量和效率。本文将尝试从需求交付的前、中、后三个环节来阐述一下如何做高效高质量的价值交付。
142424 3
|
存储 Serverless 调度
《云上社交行业技术服务白皮书》——第四章 云上社交保障与服务案例——4.3 关键时刻保障——4.3.1 图片业务保障方案
《云上社交行业技术服务白皮书》——第四章 云上社交保障与服务案例——4.3 关键时刻保障——4.3.1 图片业务保障方案
113 0
【业务架构】价值链分析:提高客户价值和盈利能力
【业务架构】价值链分析:提高客户价值和盈利能力
|
运维 数据挖掘
《云上大型赛事保障白皮书》——第七章 保障阵型与流程管理——7.2 云上大型赛事流程管理——7.2.1 基于业务影响的流程分级(下)
《云上大型赛事保障白皮书》——第七章 保障阵型与流程管理——7.2 云上大型赛事流程管理——7.2.1 基于业务影响的流程分级(下)
134 0
《云上大型赛事保障白皮书》——第七章 保障阵型与流程管理——7.2 云上大型赛事流程管理——7.2.1 基于业务影响的流程分级(上)
《云上大型赛事保障白皮书》——第七章 保障阵型与流程管理——7.2 云上大型赛事流程管理——7.2.1 基于业务影响的流程分级(上)
106 0