探秘手淘高可用平台(三)——热修复和开发流程

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

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

热修复方案

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

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

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

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

开发流程

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

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

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

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

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

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

往期回顾

探秘手淘高可用平台(一)——度量指标及数据平台

探秘手淘高可用平台(二)——性能及稳定性治理方案

原文地址:https://www.cnblogs.com/androidga/p/10150643.html

时间: 2024-11-08 23:36:34

探秘手淘高可用平台(三)——热修复和开发流程的相关文章

探秘手淘高可用平台(一)——度量指标及数据平台

系列文章根据手机淘宝客户端基础架构高级开发工程师非台在安卓绿色联盟开发者大会上的分享,共分三篇,介绍手淘技术团队性能和稳定性系统化提升方案EMAS-MOTU的设计原理以及实现思路. 本文重点介绍手淘高可用平台的定义及指标.自动化测试框架和性能稳定性数据平台. 非台 手机淘宝客户端基础架构高级开发工程师 主要负责手机淘宝性能和稳定性的提升 高可用的定义及度量指标 移动端高可用定义 移动端高可?旨在通过设计关键的度量指标,以期望能够客观反映和量化用户在使?过程的真实感受,同时通过指标,建?一系列的工

Mysql+DRBD+Heartbeat 实现mysql高可用的双击热备(DRBD篇)

DRBD官方tar包下载地址:   http://oss.linbit.com/drbd/ 环境介绍: 系统版本:CentOS 6.4 (64位) 内核版本  2.6.32-358.el6.x86_64 软件版本:drbd-8.4.3.tar.gz 主:10.0.0.1   从:10.0.0.2 两台机器上的hosts都需要修改: [[email protected] ~]# vim /etc/hosts 10.0.0.1    node1 10.0.0.2    node2 两台服务器双网卡,

Mysql+DRBD+Heartbeat 实现mysql高可用的双机热备(mysql+heartbeat篇)

*************************************部署MYSQL******************************************* yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake bison* useradd mysql -d /usr/loc

Mycat高可用解决方案三(读写分离)

Mycat高可用解决方案三(读写分离) 一.系统部署规划 名称 IP 主机名称 配置 Mycat主机01 192.168.199.112 mycat01 2核/2G Mysql主节点 192.168.199.110 mysql01 2核/2G Mysql从节点 192.168.199.111 mysql02 2核/2G 二.软件版本: 进入下载列表地址:http://dl.mycat.io MySQL 版本:mysql-5.7.9下载地址: https://downloads.mysql.com

高性能、高可用平台架构演变史

开篇概述 在如今移动互联网.互联网+.大数据的时代,各类的互联网网站.平台异常突起,如同雨后春笋,有种"忽如一夜春风来,千树万树梨花开"感觉.对于移动互联网时代的平台来说,用户的体验感是否良好?平台的稳定性是否良好?估计是对所有互联网平台来说两大头等要素吧,的确,移动互联网时代,流量就是市场价值,说白了就是收益,就是RMB,失去了流量,那么你也就失去了赚取收益的机会与机遇. 因此,对于互联平台或网站来说,网站的高可用.不间断服务也是平台运营过程中的一个重大决定因素,比如说某平台,三天两

浅谈秒级故障切换!用MHA轻松实现MySQL高可用(三)

MySQL复制是异步或者半同步的.当master故障时,一些slave可能并没有收到最新的relay log,也就意味着每个slave可能处于不同的状态.手动处理这些一致性问题是小事,因为不修复这些问题,就不能开始复制.但是手动修复这些问题,花费一个小时或更多的时间并不少见. 一主一从 如果架构是一主一从,就不会出现一部分slave的状态落后于最新的slave的问题.当master出现故障,可以将应用的流量全部发送给新的master(原来的slave).故障切换很容易解决.但是会有下面的问题.

AD RMS高可用(三)部署RMS根群集服务器

1) 在rms服务器上点击"添加角色和功能",开始rms组件的添加 2) 选择"基于角色或基于功能安装",点击"下一步". 3) 选择第一台rms服务,点击"下一步". 4) 勾选"ADRMS"角色,同时会添加iis服务.点击"下一步". 5) 保持默认,点击"下一步". 6) 点击"下一步" 7) 选择"Active Director权

Heartbeat实现web服务高可用(三)

六:Heartbeat实现WEB服务高可用案例 6.1 部署准备 资源环境:继续使用我们之前已经部署好Heartbeat的两台服务器node01.cn和node02.cn,两台机器heartbeat是双主模式我们再捋一捋    node01.cn   eth0 172.10.25.26 外网管理IP                      eth1 10.25.25.16  心跳直连                      VIP  172.10.25.18        node02.cn

启博VPN高可用(HA)双机热备解决方案

有些用户的业务系统的特殊性,不允许长时间断网要保证系统的可靠性.通用的做法是布署两台相同配置的硬件VPN网关,一台设备设置为主模式,另一台设备设置为从模式.两台设备同时工作,如果主设备出现问题,另一台从设备会自动切换成主设备模式接管主设备的工作,不需要人工干预. 启博VPN双机热备(HA)功能除了支持常见的主从模式切换,还支持当主设备恢复工作后,会自动抢占成为主设备,从设备自动降为从设备工作模式.接线方式是通过网线把两台设备的LAN口连接起来,或者把两台设备LAN口接在同一个交换机上. 另外启博