标题是在李鼎大大博客中看到的《准备一个安全可靠的发布流程》文章中的一句话,挺适合用来形容一次大版本发布这个情形的。昨天是2017年最后一次大版本发布,可谓是障碍重重。发布的项目比较多,而且整个项目的开发时间很赶,作为项目开发者的自己底气都不是很足。包含大量配置,无法线上回归,发布流程整整写了两页。
发布流程梳理:
起飞前的准备
- 申请线上的机器和域名。
- 确定项目线上机器的ip,确保有登录权限。
- 确定线上的域名。
- 创建数据库表。修改数据库表结构。(尽量不要涉及删除字段这种情况)
- 创建对应的kafka topic,以及influxdb对应的数据库。
- 初始化表数据(分部有依赖的情况需要留到发布中)。
- 打正式包,发布到线上仓库,将依赖项目的版本号升级。
- 代码合并到发布分支。保存当前线上代码的分支用于回滚。
- 整理每个项目需要修改的发布配置项,创建线上superDiamon的配置。
- 配置好线上环境goodjob。
- 写好发布流程。
- 想好回滚策略。
起飞中
- 严格按照发布流程执行。
- 检查项目是否启动。
- 查看错误日志。
到达目的地
- 整体回归。