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

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

一、背景

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

二、什么是系统稳定性?

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

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

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万家公司采用,并获福布斯认可。
60 3
|
29天前
|
运维 监控 安全
连锁药店网络优化策略:一站式融合方案提升竞争力
在数字化浪潮下,线上药店通过技术创新和线上线下融合,正重塑购药体验,提供24小时服务和医保结算便利。面对激烈竞争,连锁药店和中小药店纷纷通过优化网络架构、提升服务质量和加强合规管理来增强竞争力,实现高效、安全的数字化转型。
|
6月前
|
新零售 人工智能 供应链
推三返一新零售模式系统开发|成熟案例|方案设计
新零售是指通过互联网技术和大数据分析,将线上线下商业模式相结合
|
6月前
|
存储 SQL 测试技术
通过降本增效,提升测试价值
通过降本增效,提升测试价值
100 0
|
存储 监控 架构师
十年业务开发总结,如何做好高效高质量的价值交付
软件交付是一个非常复杂的过程和体系,需要保障好每个阶段的质量和效率才能保障最终的质量和效率。本文将尝试从需求交付的前、中、后三个环节来阐述一下如何做高效高质量的价值交付。
142429 3
|
数据采集 前端开发 算法
技术与业务同行:做业务的技术人
本文结合了作者的工作经验提出了一些建议,希望每一位技术同学都可以找到适合自己的成长方向和路径。
【业务架构】价值链分析:提高客户价值和盈利能力
【业务架构】价值链分析:提高客户价值和盈利能力
|
运维 监控 负载均衡
《泛娱乐行业技术服务白皮书》——四、泛娱乐业务保障与调优最佳实践——4.1游戏运维SRE实践——4.1.1 制定SRE黄金准则
《泛娱乐行业技术服务白皮书》——四、泛娱乐业务保障与调优最佳实践——4.1游戏运维SRE实践——4.1.1 制定SRE黄金准则
146 0
|
传感器 人工智能 算法
关于技术、业务、产品的一点思考
关于技术、业务、产品的一点思考
398 0
|
运维 监控 Oracle
XX电网运维业务系统用户体验分析平台案例|华汇数据
能够从最终用户角度来评价业务系统运行质量和用户体验状况,促进IT运维质量不断提高。 通过对用户行为和体验障碍的监控,确保在用户报告之前知晓问题,并帮助运维人员快速确认、诊断和定位问题,加快问题解决速度,提升用户满意度。
453 0
XX电网运维业务系统用户体验分析平台案例|华汇数据