Skip to content

灰度流程

  • [x] 确定涉及哪些后端、前端工程、gm_task 改动、定时脚本改动

    前端:ma, station, bshop

    后端:gm_management, gm_server_bshop, gm_service, gm_web_stock, gm_web_templates, gm_web_sorting

  • [x] 从 develop 分支中切出 release/YYYYMMDD 分支

  • [x] 灰度一个不存在的 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] 使用 tmux 启动服务
    • [x] 修改 web 服务的配置,改动 queue_name
    • [x] 使用发布脚本重新灰度一下,确保配置重载

    batch_out_stock_path /data/www/stock/20190925/tools/celery_tasks/batch_out_stock.py stock_value_export_path /data/www/stock/20190925/tools/celery_tasks/export_stock_value.py stock_change_log_path /data/www/stock/20190925/tools/celery_tasks/stock_change_log_export.py update_out_stock_log_price_path /data/www/stock/20190925/tools/celery_tasks/update_out_stock_log_price.py update_stock_avg_price_path /data/www/stock/20190925/tools/celery_tasks/update_stock_avg_price.py stock_check_batch_path /data/www/stock/20190925/tools/celery_tasks/async_stock_check_batch.py inventory_template_export_path /data/www/stock/20190925/tools/celery_tasks/inventory_template_export.py batch_change_supplier_purchaser_path /data/www/stock/20190925/tools/celery_tasks/export_purchase_analyse.py export_order_statement /data/www/manage/20190925/tools/celery_tasks/export_order_statement.py op_log_export_path /data/www/station/20190925/tools/celery_tasks/op_log_export.py

  • [ ] 部署 gm_script

    类型(增加脚本/修改脚本): 增加脚本 脚本所在工程: gm_web_stock 脚本路径: tools/crontab_tasks/update_out_stock.py 如果是修改已有脚本,是否需要从全量的脚本中剔除灰度的客户:需要 如果是新增脚本,crontab 指令:/30 * * * venvrun -p /data/www/stock/gm_web_stock/master/ -s "tools/crontab_tasks/update_out_stock.py" > /dev/null 2>&1 如果是修改已有脚本,代码所在分支: feature/move_celery_script_2 补充说明: 因为是将脚本从一个项目移至另一个项目,所以灰度时需要将灰度客户从移出项目的全量中踢出. 本需求的移入项目全量时,需要将移出项目的定时任务去除

  • [ ] 灰度账号(先灰度测试账号,再灰度真实客户)

    • [ ] 刷数据(切流量前需要刷的脚本)
    • [ ] 修改 gm_task 脚本中的 group ids
    • [ ] 修改 gm_script 脚本中的 group ids
    • [ ] 使用发布脚本灰度账号
    • [ ] 刷数据(切流量后需要刷的脚本)
    • [ ] 等待测试测试(仅灰度测试账号时需要)
    • [ ] 在钉钉群里通知

全量流程

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

  2. 查看之前灰度的ID

    gmdeploy list -p 模块名称 gmdeploy prerelease -u name ID # 在全量机器部署分支服务,

  3. 合 master 代码

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

    git checkout master
    git pull
    git checkout release/20190715
    git merge master
    git push
    

    回到脚本中yes确认完成

  4. 确认是否要执行刷数据脚本(刷全部用户数据,跟后端)

  5. 执行 release 操作 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 确认完成操作

  6. 刷数据(切流量前需要刷的脚本)

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