关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。
目录
- 一、导读
- 二、概览
- 三、相关方法论
- 3.1 crash
- 3.2 性能
- 3.3 高可用
- 3.4 容灾方案
- 3.5 长期性能优化
- 四、 推荐阅读
一、导读
我们继续总结学习,温故知新。
本文讲述稳定性的相关概念。
二、概览
对所有app而言,必须尽可能的保障app正常运行,不产生crash,这是最高优先级,不稳定的产品,用户留存率也低。
在不崩溃的情况下,也要保证在极端场景下也可以操作app,
然后就要开始考虑性能上的优化了,如内存、流量、卡顿、耗电等等。
我们稳定性以预防为主,监控为辅,力争将问题扼杀在萌芽中。
三、相关方法论
3.1 crash
- 首先要正确认识并高度重视crash问题
- 建立相关的crash指标,比如 崩溃率:0.12%
- 接入crash及异常数据分析平台,有自己的APM最佳,收集尽可能详细的信息
crash指标的维度比较多,我们以bugly为例:有设备崩溃率,次数崩溃率,java崩溃,Native崩溃
当然还可以进一步细分,如启动crash(启动一段时间就崩溃),这个需要自建apm支持。
同时我们要关注每个版本新增的crash,持续跟进解决老版本的crash。
3.2 性能
- 重视性能优化,建立相关性能指标
- 性能优化的维度很多,包括但不限于启动优化,电量、内存、卡顿、网络等
具体知识可查看前面的文章。
3.3 高可用
业务的主流程绝不能被阻塞,要建立多维度的监控系统
- 建立用户行为日志系统,记录下全面的信息,包括用户行为,crash发生前,发生时的详细信息,以及用户使用到的各种资源等信息
- 用户反馈系统
- 性能监控系统(如内存、大图等)
- 业务异常监控系统
3.4 容灾方案
- 建立配置中心,功能开关,对于每一个要上线的功能,最好加个开关来控制这个功能是否要开启
- 统跳中心,处理异常的页面,避免用户使用功能
- 动态(热)修复
- 安全模式,建立报警策略(预制报警、特定指标报警等),可监控性能异常 or 业务异常
3.5 长期性能优化
- 制定编码规范,加强技术评审,加强codereview
- 制定好每个阶段的流程规范,比如开发阶段、测试阶段、灰度阶段、及上线后
- 明确责任人,明确权利与义务
稳定性是一个长期艰巨的过程,需要持之以恒。
四、 推荐阅读
Java 专栏
SQL 专栏
数据结构与算法
Android学习专栏