预发布:
- 线上用户没有入口,只有内部工程师有入口
- 工程师配置host访问预发布服务器
- 支付等避免出现问题:打款配置1块钱,上线时要确认是否修改
- 发布:
- 发布日期:周一,周二准备,周三发布,周四周五发现问题处理
- 火车头自动发布模型:定时运行,每一站例行检查,通过上车,不通过下车
- 考量点:
- 发布时保证缓存和数据库数据一致
- 对数据库操作,要锁住其他服务对数据库的修改,直到所有服务升级完再解除
- 观察服务日志和对应的功能点
- 观察线上环境日志
- app灰度发布平台:
- 用户筛选:
- 根据平台、版本、类别、城市
- 查找设备标识:IMEI openuuid token
- 手动上传设备标识
- 发布任务
- 将指定的版本app关联到指定的用户集合
- 支持定时
- 任务管理
- 管理已发布或者已下线的任务
- 能查看已发布任务的具体数据,如下载量等
- 任务进行过程中能够增加或减少目标用户集合
- 任务可以被暂停、上线
- 版本控制
- 判断设备版本号是否能升级,设备版本号要小于灰度的版本号
- 多个灰度版本之间能够升级
- 分流模块
- 判断设备是否是灰度版本目标用户
- 下载模块
- 提供指定灰度版本app的下载更新地址
- 灰度设计:
- 协议:http+json
- 用户筛选:
- 用户筛选方式:
- 通过hive或者mysql数据库
- 前提:选择灰度目标用户时,用户量不超过百万,且都是活跃用户
- 方案一:通过hive筛选,将各app日志在一个集群中,按统一格式进行清洗,查询时间较慢。筛选结果数据针对uid或者ios仍然需要再转换成token
- 方案二:将数据按规定格式写入mysql,数据实时或定时批量写入,定时删除
- 定时发布任务
- 目的让用户在指定时间之后升级,未到时间不允许下载升级,同时在指定时间通过推送方式通知用户
- 方案一:发布任务后,直接将用户与灰度版本关联,并增加生效时间,同时在任务生效时,触发推送
- 方案二:在任务生效的指定时间,建立用户与灰度版本管理关系,同时触发推送