【分享】黄金核心交易系统上线流程

原创
2020/03/06 22:54
阅读数 143

简介

大型电商系统都有一套黄金核心交易流程,从商品详情页、购物车、结算页及收银台。尤其是结算页是重中之重。结算页,也就是大家常说的提单页,涉及系统众多,从页面上可以简单分为以下几点:

  1. 收货地址,用户收货地址;可能会涉及到收货地址的增删改查
  2. 支付方式
  3. 配送方式,各个商品支持的配送方式。
  4. 配送时效,意即:配送商品的时间。
  5. 虚拟资产相关
    1. 红包
    2. 优惠券
    3. 等等
  6. 各种金额计算。商品总金额、优惠金额、促销金额、运费金额等等。

由此可见,结算页涉及系统众多,上线需慎之又慎!以下是我司的结算页上线流程,仅供大家参考。

结算页固定上线节奏为一周一次,由于机器数量多大上万台,仅上线就需要两天。因此周四周五为固定上线日。其他工作必须在周一至周三前完成。 以下是大致的流程。

周一,上线需求收集

  1. 负责具体需求的同事将自己负责的需求上报至上线负责人,必须确保以下几点才可上线:
    1. 测试完成,包括内部自测以及外部联合测试(若有外部依赖时)
    2. 若依赖外部服务,则必须外部服务提前一周上线,意即在上周已上线完成
    3. 若依赖外部服务,且有依赖JAR包版本升级,则必须在周一前提供正式API jar包。
  2. 基本上周一上午会确定本周上线需求。周一下午组会,进行上线需求确认会议,参会人员包括:上线负责人、需求研发、需求测试等

周二,代码评审

上线负责人组织会议,逐个需求进行代码评审。要求提前将主干分支最新代码合并至各自开发分支,并确保无冲突。代码评审,注意的事项,大家关注的 都差不多。主要有两大方面,代码规范和业务处理逻辑。

  1. 必须本地通过checkStyle、findBugs等插件校验
  2. 重要逻辑必须有单元测试,且注释准确
  3. 重要逻辑必须有切量开关。意即:开关打开时,新逻辑生效;关闭时,旧逻辑生效。防止出现问题,可及时补救,无需进行线上版本回滚。
  4. 涉及外部服务接口出入参处理逻辑变动,必须加入切量开关。且需对接口变动影响范围清晰明确。
  5. 测试用例、联调用例必须全面覆盖变动代码。必要时,对受影响的接口进行整体功能回归测试。

代码评审完后,需有代码评审邮件。而后,将代码合并至DEV分支。 上线负责人,会再次对合并后的dev变动代码,再次审查。分支合并方式,可参考我之前的分享:【Git实践】大型项目合并分支小技巧

周三,回归测试

此时,时间一般已经到了周三,顺利时,上午即可进行回归测试,最晚在下午进行回归测试。

上线负责人将dev分支部署至回归测试环境。各需求测试负责人对功能进行回归测试,此环境为预发环境(三大环境:测试环境、预发环境、生产环境)。

回归测试完毕后,上线负责人组织会议:上线确认会议,最后对各需求进行确认,包括依赖服务上线、依赖API正式包、配置变动等。

会议完成后,发送上线邮件

进入下一环节。

周三晚上,预上线

上线负责人将dev代码合并至master主干分支。将主干分支部署至回归测试环境,各需求测试负责人再次进行回归测试。

此时,上线负责人更改线上配置、确认配置及开关位于初始关闭状态。并且需开发及测试进行Double Check;

周三晚上,挑选两个渠道,上线一小部分机器,需进行灰度测试12小时。确认没有问题。

周四,上线

周四正式开始上线。

  1. 编译打包,确认jdk版本及基础镜像版本。确认代码版本!
  2. 提供的服务为多机房服务。需单个机房进行上线。服务分组一般按照机房进行划分,服务一般为同机房调用。每个服务分组会再次进行拆分为更小的分组。两两一组,称为红蓝分组。
  3. 以下为红蓝分组上线模式,其他分组一致
    1. 红分组服务下线,观察日志,确认无流量进入。
    2. 部署新版本代码,部署过程中,需保证服务不自动注册!
    3. 应用启动后,进行刷接口,对代码进行预热。保证依赖服务建立连接,关键代码及缓存生成!
    4. 手工将服务注册至注册中心,供消费者发现。
    5. 观察日志,确认无异常,并随时关注服务调用量及稳定性!
    6. 以上述步骤对蓝分组进行上线
  4. 部署红蓝一堆分组后,将分组内单个机器注册服务至注册中心,供测试进行线上环境验证。
  5. 验证无误,依次上线其他分组。
  6. 整个渠道上完,例如手机渠道、微信渠道等,测试进行渠道回归测试。
  7. 最终直至整个系统上线完成。

开关切量

下周一开始,上线时,带有切量开关的需求进行切量。并随时关注系统状况!切量维度一般按照渠道和用户(万分比),且支持白名单验证。

业务功能验收

最后,配置白名单,供业务进行验收!

整体需求交付完成!

欢迎关注我的公众号: 张恒强的学习笔记

张恒强的学习笔记

展开阅读全文
打赏
0
0 收藏
分享
加载中
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部