工程质量保障的基本规范和建议

对于正式运行在线上的大流量服务,保障工程质量和系统稳定性尤为重要。 根据组内实践及现状,制定工程质量保障的基本规范和建议。

三个级别###

【必须】: 一定要做到的,不做容易出BUG或故障。没有的话,必须立即补上。

【应当】: 应当要做到的,有益于从团队角度和新人接手时保障质量。没有的话,尽早补上。

【建议】: 建议要做到的,有益于提升工程质量和个人编程能力。 逐步完善。

级别与内容分离。内容尽量不包含级别。

规范和建议###

质量保障说明####

【应当】每个工程在 README.md 里面,添加一项“质量保障说明”,说明本工程发布应当遵循的质量准则和措施。

【应当】工程的接手同学应当首先熟悉工程的质量保障手册,才能在该系统内开发和发布代码。

发布准则####

工程发布遵守以下准则: 单测全部通过 - CR通过 - 接口测试用例集合通过 - 预发线上对比工具通过 - 线上验证无误。

(0) 【必须】变更代码或者新增代码,有单测覆盖; 捕获异常有异常单测;单测全部通过。

       a.  【建议】像写生产代码那样编写优雅的单测代码。                                                                                                                                

(1) 【必须】提交代码Review, 通过应用Owner及另一位有经验的开发同学CR通过;

       a.   【应当】对于任何CR意见,给予及时改进或合理的回应;通过代码优化及积极沟通确保CR及时通过; 
       b.   【应当】非紧急发布,CR在发布前一天完成; 紧急发布,CR与发布时间相隔半天。                     
       c.   【应当】核心应用不应当有硬编码(魔数、写死的业务名)和重复代码;想办法消除它。                           

(2) 【必须】有相应的单接口测试用例集合,并且确保QA环境接口测试用例集合全部通过;

(3) 【建议】 分支代码合并master后在预发部署,确保 service.log , trade.log , root.log 都正常启动,无任何异常;

(4) 【应当】实现一个预发与线上的对比工具,分别发送请求给预发和线上,检验预发和线上的结果是一致的。

(5) 【必须】谨慎发布,密切留意日志与监控报警。

       a.   【必须】确保 service.log , trade.log , root.log 都正常启动,无任何异常。                                                
       b.   【必须】紧密观察是否错误日志,监控报警信息、 系统监控图表;第一批发布完成后适当停顿一段时间,确定没问题后再第二批。   

(6) 【必须】线上发布完成后,至少停留半小时,校验线上无问题方可。

日志巡检####

【应当】例行巡检线上异常日志、报警, 努力设法消除它们,不可忽视。

监控与报警####

【应当】 对于核心业务流程,配备相应的监控与报警。有相应的监控报表输出,有完善的报警机制。

性能数据####

【建议】 对于大并发量应用,建议有定期性能数据,对系统承载能力了如指掌。

说明###

  • CR 工程师必须坚守原则,觉得不能通过的,不应因发布的要求而勉强通过。
posted @ 2018-09-06 19:59  琴水玉  阅读(450)  评论(3编辑  收藏  举报