一、上线规范:
- 规范git版本使用:使用特性分支避免上线冲突;进行代码review,防止明显错误;使用tag分支能够回滚代码;
- 规范环境使用:避免测试环境直接连接线上服务;上线前必须测试,增加预发布环境,增强安全意识;
- 上线机器:使用ci工具,进行灰度上线,必须跟踪上线功能实际情况
- 压测:新接口建议进行压测,了解QPS情况
二、接口设计规范:
- 考虑接口安全性、幂等性
- 尽量和客户端沟通好接口的使用情况
- 对应null字段,可以选择不返回,但是客户端要做好兼容判断(避免客户端空指针问题)
- 要求客户端接口解耦,不要在页面层传递数据,服务端提供原子接口
- 考虑客户端支持302
- 必须定义良好的异常码信息
三、代码规范:
- 避免多次远程调用(mysql、缓存、rpc等网络请求),尽量使用mget,多线程等减少请求次数。如果使用多线程,需要考虑原始排序问题
- sql语句必须考率性能问题
- 控制服务的并发请求,防止资源耗尽
- 考虑自动/手动降级,防止资源耗尽
- 考虑mock
- 因为瓶颈会出现在网络故障/网络带宽/网卡问题/等非第三方本身服务上,所以必须要考虑超时导致的性能问题
四、报警机制(只定位一部分线上问题,不能定位业务逻辑导致的问题):
- 业务异常:比如某些重要字段为空、特殊字符、等
- 性能异常:第三方超时、基础服务不可用等
- 机器异常:机器本身,或者网络异常等
- 指标异常:mysql连接数等
五、善用工具
- 全链路监控:性能可视化;行级定位;重要业务场景还原
- 业务分析:自动分析业务执行情况
【寻找自己】2016年终总结
原文:http://www.cnblogs.com/losemyselft/p/6340949.html