灰度流程
- [x] 确定涉及哪些后端、前端工程、gm_task 改动、定时脚本改动
后端:gm_web_sorting, gm_web_stock, gm_service, management, gm_server_account 前端:station, mes, upms;
gm_task: 变更1 是否修改了 gm_task git 仓库中的代码或配置:是 gm_task 脚本类型(新增脚本/修改已有脚本):修改现有weight_package_export.py 变更1 是否修改了 gm_task git 仓库中的代码或配置:否 gm_task 脚本类型(新增脚本/修改已有脚本):修改已有脚本 脚本在 gm_task 的 deploy.conf 中配置的 KEY: in_stock_summary_by_spu_export_path 脚本路径:/data/www/stock/gm_web_stock/tools/celery/async_in_stock_summary_by_spu_export.py 变更2 是否修改了 gm_task git 仓库中的代码或配置:否 gm_task 脚本类型(新增脚本/修改已有脚本):修改已有脚本 脚本在 gm_task 的 deploy.conf 中配置的 KEY: out_stock_summary_by_spu_export_path 脚本路径:/data/www/stock/gm_web_stock/tools/celery/async_out_stock_summary_by_spu_export.py 变更3 是否修改了 gm_task git 仓库中的代码或配置:否 gm_task 脚本类型(新增脚本/修改已有脚本):修改已有脚本 脚本在 gm_task 的 deploy.conf 中配置的 KEY: out_stock_summary_by_category_export_path 脚本路径:/data/www/stock/gm_web_stock/tools/celery/async_out_stock_summary_by_category_export.py 变更4 是否修改了 gm_task git 仓库中的代码或配置:否 gm_task 脚本类型(新增脚本/修改已有脚本):修改已有脚本 脚本在 gm_task 的 deploy.conf 中配置的 KEY: stock_check_batch_path 脚本路径:/data/www/station/gm_service/tools/celery/async_stock_check_batch.py 变更5 是否修改了 gm_task git 仓库中的代码或配置:否 gm_task 脚本类型(新增脚本/修改已有脚本):修改已有脚本 脚本在 gm_task 的 deploy.conf 中配置的 KEY: batch_out_stock_path 脚本路径:/data/www/station/gm_service/tools/celery/out_stock_new.py
gm_script: 类型:修改脚本 脚本所在工程以及路径:gm_script tools/crontab_tasks/update_out_stock_sku.py 如果是修改已有脚本,是否需要从全量的脚本中剔除灰度的客户:需要
- [x] 从 develop 分支中切出 release/YYYYMMDD 分支
- [ ] 灰度一个不存在的 group id
- [ ] 部署 gm_task
- [x] clone 新的 gm_task 分支
- [x] 修改 config/deploy.conf
- [x] 修改 gm_task 脚本位置
- [x] 修改 gm_task 队列配置(gm_task_queue)
- [x] 确保工程目录中不存在 config/local.conf
- [x] 部署 web 服务分支
- [x] 安装依赖
- [x] 使用 tmux 启动 gm_task 服务
- [x] 修改 web 服务的配置,改动 queue_name
- [x] 部署 gm_script
- [x] 灰度账号(先灰度测试账号,再灰度真实客户)
- [x] 刷数据(切流量前需要刷的脚本)
- [x] 修改 gm_task 脚本中的 group ids
- [x] 修改 gm_script 脚本中的 group ids
- [x] 使用发布脚本灰度账号
- [x] 刷数据(切流量后需要刷的脚本)
- [x] 等待测试测试(仅灰度测试账号时需要)
- [x] 在钉钉群里通知
全量流程
-
查看之前灰度的ID
gmdeploy list -p 模块名称 gmdeploy prerelease -u name ID # 在全量机器部署分支服务,
-
合 master 代码
到所有模块git目录里面, 将所有模块master内容合并到release分支
git checkout master git pull git checkout release/20190715 git merge master git push
回到脚本中yes确认完成
-
跟前端确认分支是否要进行rebase到master,等他们操作完成
确认是否要执行刷数据脚本(刷全部用户数据,跟后端)
gmdeploy release -u name ID #将用户流量全部切换到分支服务上 切换到master分支 meger到master git pull git merge 分支名称 git push 切换到develop分支 meger到develop分支 git checkout develop git pull git merge master git push
yes 确认完成操作
-
刷数据(切流量前需要刷的脚本)
- 修改 gm_task 脚本中的 group ids
- 修改 gm_script 脚本中的 group ids
- gmdeploy release
- 刷数据(切流量后需要刷的脚本)
- 通知前端全量更新代码 #发布全量操作
- gmdeploy complete -u name ID #等前端操作完成之后,软链接到模板工程里面
- 到trello将模块拖到己全量看板