博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
探秘手淘高可用平台(三)——热修复和开发流程
阅读量:4945 次
发布时间:2019-06-11

本文共 946 字,大约阅读时间需要 3 分钟。

本系列文章根据手机淘宝客户端基础架构高级开发工程师非台在安卓绿色联盟开发者大会上的分享,共分三篇,介绍手淘技术团队性能和稳定性系统化提升方案EMAS-MOTU的设计原理以及实现思路。

本文重点介绍手淘高可用平台的热修复方案和如何全开发流程保障性能及稳定性。

热修复方案

热修复有三个场景,手淘EMAS-MOTU平台可以根据场景选择相应的方案进行热修复。

 

image

 

第一个场景是由于代码本身不够健壮,从而导致APP发生崩溃。针对这个问题,手淘开发了Dexpatch框架,可以实时快速对线上问题进行修复。

第二个场景是产品功能不符合项目预期。比如,需要举办一个活动,但这部分活动的功能没有正式上线,针对这个问题,手淘开发了Atlas动态容器框架,可以支持业务快速上线新功能。

第三个场景是启动时网络异常导致的崩溃。网络未初始化会导致Dexpatch和Atlas动态容器无法发挥作用,针对这个问题,手淘开发了安全模式,在启动异常时可以及时修复。

开发流程

开发流程一般分成开发测试、集成、灰度和线上四个阶段,手淘高可用平台在每个阶段是如何保障手淘平台的性能和稳定性的呢?

 

image

 

在开发测试阶段,手淘通过代码静态扫描以及测试用例的覆盖来提升高可用性。

在集成阶段,手淘会对历史问题进行回归。通过跟踪,判断历史问题是否全部修复,设置卡口,直至解决所有历史问题,达到持续集成的目的。

在智能灰度阶段,手淘开发了智能灰度机器人,它会根据上一次灰度的体量和性能稳定性数据来制定灰度策略。如果稳定性和性能数据报表符合预期,智能灰度机器人会逐渐放大灰度的用户量,直到正式发布为止。在灰度过程中,它还会监控应用各个模块是否存在异常并及时报警,以便快速定位稳定性性能不能达标的具体原因。如果灰度过程中一切正常,则可以通过这种方式直接发版。

在线上跟踪阶段,手淘数据平台会实时展示版本正式上线后的数据,可以根据数据决定后续的操作。如有异常,数据平台也会对开发同学进行警告,以便快速跟进,并决策是否要对它进行热修复。

手淘高可用平台系列文章已全部分享完成,开发者觉得有哪些值得借鉴和改进的地方呢?欢迎留言说出您的看法~

往期回顾

 

转载于:https://www.cnblogs.com/androidga/p/10150643.html

你可能感兴趣的文章
关系管理系统:Web层controller控制页面Servlet AddCustomerServlet
查看>>
Eclipse MAT插件下载地址
查看>>
采样电阻选型
查看>>
数据库编程:数据库删除数据不支持表别名
查看>>
tar命令详解
查看>>
Python爬虫番外篇之Cookie和Session
查看>>
Windows脚本 - Bat批处理命令使用教程
查看>>
原生与jQuery封装的ajax请求数据及状态码
查看>>
2018-2019-2 网络对抗技术 20165301 Exp2 后门原理与实践
查看>>
MySQL优化---DBA对MySQL优化的一些总结
查看>>
8月7号=》356页-360页
查看>>
E - Internal Rate of Return
查看>>
Java中hashCode的作用
查看>>
Ubuntu下SVN的安装
查看>>
【洛谷P3952】[NOIP2017]时间复杂度
查看>>
【SQL Server学习笔记】通过加密来保护数据库中的数据
查看>>
在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字)
查看>>
mongo数据库的数据模型
查看>>
Spring AOP-----------基础
查看>>
TCP/IP 详解 卷1 协议一书的困惑
查看>>