在一个项目上线过程中,会涉及到整个项目团队成员的参与,参与成员及职责分别如下:
1、开发环境由开发人员负责,同时包括了维护与代码版本及版本管理
2、测试环境由测试人员负责,包括了测试时的项目部署、测试、上线申请
3、预发环境由运维(测试)负责
4、生产环境由运维负责
5、所有数据库相关由DBA(数据库管理员)或运维统一负责
已经完成开发的系统或应用正式部署到生产环境前, 要严格按照上线发布的流程进行,基本按照如下的顺序开展。
一、开发提测
开发人员在功能开发完成后首先配置开发环境,将系统部署至开发环境,并在开发环境下完成单元测试、冒烟测试等,没问题了就需要提交一份上线方案。
上线方案必须包含:
二、系统测试环节
在执行之前测试人员是需要根据日常需求评审内容进行测试用例设计的。
三、预发环境测试环节
在测试环境中的接口、功能测试等都通过了,并测试结果 告发送相关责任人之后,就可以进入预发布环境的测试了。
1、预发布环境checklist
一般需要测试人员一份checklist,逐一确认每项需要提前准备的资源及环境是否OK,以保证上线前的最后一步的准确性,是很有必要的。
发布策略一般是从下游逐步向上部署,而回滚方案相反,一般是从上游往下回滚。
通用的checklist需要考虑以下几方面:
1)依赖
存储(数据库、分布式缓存)、是否有数据库变更需要代码上线前先提交,并且验证执行成功。
2)动态配置
需要确认代码中的动态配置有无默认值,没有默认值需要先在动态配置系统上添加相关的配置。
3)下游
确认下游jar包版本是否正确,线上最好使用release包、确认下游的业务方是否已经上线。
4)鉴权
验证需要调用的服务都能通过鉴权,检查所有参与上线的子系统都完成授权。
5)上游
6)业务内部
2、预发布环境测试
预发环境测试通过, 则以邮件通知相关开发、产品、运维, 准备正式上线。
四、正式上线环节
1、上线流程
在项目具备发布条件下,正式上线前,开发人员召集所有相关人员(开发,测试、运维、产品)讨论此次部署内容(重点介绍各方的具体内容与职责、 数据脚本执行、部署的顺序、配置文件、 部署时间、回滚方案等),最后形成会议纪要并发出邮件。
2、金丝雀发布(灰度发布)
金丝雀发布的思想则是将少量的请求引流到新版本上,因此部署新版本服务只需极小数的机器。验证新版本符合预期后,逐步调整流量权重比例,使得流量慢慢从老版本迁移至新版本,期间可以根据设置的流量比例,对新版本服务进行扩容,同时对老版本服务进行缩容,使得底层资源得到最大化利用。
3、发布结果
通过金丝雀发布,需要比较长的时间才能将新的版本全部替换到服务器上,但是风险更小、底层资源消耗更少。
发布完成之后,需要将发布结果通知到相关责任人:
五、 运维监控
运维人员持续对线上业务进行有计划的监控及日志采集, 及时发现问题处理及反馈问题。
常用的的监控 警包括:
六、总结
在平时工作中,都是做好了万全的准备之后,才会执行上线的,但是整个过程也很难保证100%成功,因此做好完善、规范的防范措施很重要:
ALLEN老师软件测试小课堂:
https://zhuanlan.zhihu.com/p/550021486
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!