客户端升级系统升级策略

我们项目组的客户端多大20余种,两年前为这些客户端写了一个升级模块,但是不够强悍。去年年中重新做了一个客户端灰度升级系统,一个独立的系统专门为客户端升级提供服务。现在分享下这个新系统的升级策略。

发布版

每种类型的客户端有且仅有一个对外发布版。版本号比发布版低的客户端都要升级到发布版。在客户端层面的升级形式有两种,登录升级和使用中升级。

1.登录升级

登录前提示升级,一般是比较重要的升级方式才会配成登录升级。用户当然可以取消升级,但是如果旧版本配的是强制升级,那么登录升级就不会展示“取消”按钮。这个是系统的后门,防止有重大问题的客户端被使用。一旦出现这种情况,这个功能将是一根救命稻草。(我们线上某个版本的移动端3天内耗了用户4G流量,可惜它没有接入这个系统)

2.使用中升级

如果提供了补丁包,那么升级将在后台静悄悄的发生,用户不会感知到升级过程。如果提供的只有全量包,那么新包下载好后,下次重启时将会安装发布版。

为了灵活控制对外发布版的升级,发布版可以按百分比升级,按用户名升级,或者全量升级。

旧版本

老的版本有三种升级方式,1.强制升级2.非强制升级3.不升级

有些版本线上表现稳定,如果冒然升级,可能引发问题,因此提供这个升级选项。

如果版本有问题,或者太旧,就提供强制升级选项,必须让用户升级。

如果版本没有重大问题,跟新版本比较,可能仅仅缺少一些功能,那么提供非强制升级。用户如果不想升级,那么就cancel掉。

内测版

客户端版本包正式发布前,必须内测。以前我们遇到一个案例,一个有问题的包,没有内测,发出去后,就出大问题了。因此内测成为了客户端发包的一个基本流程(尤其是重要客户端)。如何获取内测包,给内测用户一人一个下载地址,让他们下下来然后把老的卸载,新的安起?NO,内测升级高于发布版升级,只要内测升级的名单列表里有的用户,会自动升级到内测版。内测升级还有另外一个策略,按百分比升级。全量正式对外发布前,可以设置一个百分比,根据灰度算法,会有一定比例的用户升级到内测版。

每种产品各自维护自己的产品线升级策略,互不干扰。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-15 03:50:05

客户端升级系统升级策略的相关文章

【HANA系列】SAP HANA STUDIO客户端升级更新

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA STUDIO客户端升级更新 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 HANA 客户端和ECC客户端是一样的 如果要升级,就要去官网下载最新的版本 然后安装会提示是否升级 还以为会自动更新,其实不是 还有其他问题的话,欢迎关注公众号 原文地址:https://www.cnblo

hive客户端升级

文章来自:http://blog.csdn.net/lili72 背景: 旧版本的hive 在用的过程中,经常出现一些bug,无法解决,比如无法找到表们无法找到分区等.由于并发比较大,常见如下异常: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'hive.DELETEME1414791576856' doesn't exist FAILED: SemanticException [Error 10006]: L

自动化升级工具之客户端升级工具之数据库升级操作

目前客户端工具还是一个以Winform的窗口程序,文件结构如图: 图1 1.两个config的配置文件,分别一个是连接本地开发环境下在数据库,另外一个基本参数配置文件 A.DB.config为数据库连接内容如下: <DBConfig name="dbtestDBByMP" connectionString="server=(local);database=dbtest;uid=sa;pwd=123456;" providerName="System.

zabbix客户端升级

本公司服务器的zabbix客户端的版本原为1.8.3,在版本已经更新换代的情况下,老版本中,一些功能不能使用,如:自动发现功能.因此,计划在服务器上进行zabbix-agent升级,升级过程如下: 先描述原先的zabbix_agent的配置文件: 配置文件路径:/etc/zabbix/zabbix_agentd.conf 启动脚本路径:/usr/sbin/zabbix_agentd 启动命令:/etc/init.d/zabbix-agnet 以上文件的路径和内容没有改动,除了/etc/init.

spring cloud ribbon 客户端负载均衡策略

负载均衡策略 AbstractLoadBalancerRule 负载均衡策略的抽象类,在该类中定义了负载均衡器ILoadBalancer对象,该对象能够在具体实现选择服务策略时,获取到 一些负载均衡中维护的信息来作为分配依据,并以此设计一些算法来实现针对特定场景的高效策略 RandomRule 随机选择一个服务实例 RoundRobinRule 线性轮询的方式 RetryRule 实现了一个具备重试机制的实例选择功能 WeightedResponseTimeRule 该策略是对RoundRobi

域中Win7客户端无法使用键盘鼠标唤醒屏幕(组策略排错)

用户域中设置了屏幕锁定的策略,并且已经稳定的运行数年,最近部分Win7客户端出现了一些奇怪的问题,客户端实行了这条域策略后屏幕无法使用鼠标或者键盘唤醒,正常情况下只要活动鼠标或键盘就可以进行密码输入,更郁闷的是一些用户不懂如何解决这样的问题,直接重启计算机造成了有的数据丢失,还好这个不怪我 域策略是对用户生效的,如果加入域的计算机使用本地账户登录也不会出现这种问题,所以跟策略还是有一定的关系 ===问题客户端 下图就是我滑动鼠标后出现的现象,正常情况下可以直接输入密码进入系统的 现在我的鼠标可以

CentOS升级参考

? CentOS生产系统升级策略: 1)升级前评估 a)确认kernel或包bug. b)用评估工具 c) 测试验证 ? 2)确认升级内容 a)单独升级kernel b)单独升级包 c)都升级 ? 4)确认升级方法: a)少量系统iso上传,搭建本地yum源升级.或者下载所需包制作成repo源. b)多量系统搭建局域网yum源服务器,ftp或者http. c)批量测试 d)执行升级 ? 国内Linux技术网站 www.linuxidc.com www.centoscn.com ? kernel官

策略模式的孪生兄弟——对状态模式的深度复习总结

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的总结知识点如下: 和策略模式的比较 状态模式概念和例子 应用场景 责任链模式和状态模式对比 一种代码优化的思路 java.util.Iterator里也有状态模式的影子 状态模式的优缺点 有限状态机及其应用 前面有总结——策略模式,之前早就觉得策略和状态设计模式有一些相似…… 接口的常用用法都有什么?策略设计模式复习总结 我知道策略模式是对象的行为模式,其实就是对一系列级别平等的算法的封装,它不关心算法实现,让客户端去动态的

HBase一次客户端读写异常解读分析与优化全过程(干货)

大数据时代,HBase作为一款扩展性极佳的分布式存储系统,越来越多地受到各种业务的青睐,以求在大数据存储的前提下实现高效的随机读写操作.对于业务方来讲,一方面关注HBase本身服务的读写性能,另一方面也需要更多地关注HBase客户端参数的具体意义.这篇文章就从一个具体的HBase客户端异常入手,定位异常发生的原因以及相应的客户端参数优化. 案发现场 最近某业务在使用HBase客户端读取数据时出现了大量线程block的情况,业务方保留了当时的线程堆栈信息,如下图所示: 看到这样的问题,首先从日志和