Skip to content

灰度流程

  1. 确定涉及哪些后端、前端工程、gm_task 改动、定时脚本改动 后端:station gm_task gm_web_stock 前端:station

gm_task 模块变更

> 是否修改了 gm_task git 仓库中的代码或配置:无
> gm_task 脚本类型(新增脚本/修改已有脚本):修改已有脚本
> 脚本在 gm_task 的 deploy.conf 中配置的 KEY: sync_order_sku_price_new_path
> 脚本路径:/data/www/station/tools/celery_tasks/async_order_sku_price_new.py
> 如果是修改已有脚本,是否需要从全量的脚本中剔除灰度的客户:需要
  1. 从 develop 分支中切出 release/YYYYMMDD 分支 done

  2. 灰度一个不存在的 group

  3. 部署 gm_task

  4. clone 新的 gm_task 分支 done
  5. 部署 web 服务分支 done superman@A1-task-worker:/data/www/station/release/20190805
  6. 修改 gm_task 分支配置 done
  7. 修改 gm_task 队列配置(gm_task_queue) done
  8. 使用 tmux 启动服务 done
  9. 修改 web 服务的配置,改动 queue_name done
  10. 部署 gm_script 不需要
  11. 灰度账号(先灰度测试账号,再灰度真实客户)
  12. 刷数据(切流量前需要刷的脚本)
  13. 修改 gm_task 脚本中的 group ids
  14. 修改 gm_script 脚本中的 group ids
  15. 使用发布脚本灰度账号
  16. 刷数据(切流量后需要刷的脚本)
  17. 等待测试测试(仅灰度测试账号时需要)
  18. 在钉钉群里通知

全量流程

  1. 查看之前灰度的ID id_1908021564735333929 gmdeploy list -p 模块名称 gmdeploy prerelease -u name ID # 在全量机器部署分支服务,

  2. 合 master 代码 到所有模块git目录里面, 将所有模块master内容合并到release分支

    git checkout master
    git pull
    git checkout release/20190715 # 灰度时的日期
    git pull
    git merge master
    git push
    

    回到脚本中yes确认完成

  3. 跟前端确认分支是否要进行rebase到master,等他们操作完成 done

        确认是否要执行刷数据脚本(刷全部用户数据,跟后端)
    
        gmdeploy prerelease -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 确认完成操作
    
  4. 刷数据(切流量前需要刷的脚本) 不需要

  5. 修改 gm_task 脚本中的 group ids 不需要
  6. 修改 gm_script 脚本中的 group ids 不需要
  7. gmdeploy release
  8. 刷数据(切流量后需要刷的脚本)
  9. 通知前端全量更新代码 #发布全量操作
  10. gmdeploy complete -u name ID #等前端操作完成之后,软链接到模板工程里面
  11. 到trello将模块拖到己全量看板