概述


在平时开发系统功用模块的时候,有些开发人员可能以为功用模块准时提测准时上线就算”认真担任“了,可以不必管了。其实做到这些还是远远不行的,因为真正检测你对自己做的模块是否认真担任,是在上线后。假设你开发的模块在今日上线,隔天就出了问题,老迈来个连环问

老迈:问题影响面有多广?
我:?
老迈:能回滚吗?
我:?
老迈:是接口性能问题还是功用性问题?怎样监控没有报警?好吧,只能硬着头皮解决问题,然后上线,恳求参数和报错的上下文日志发一下
我:。。。。。。忘记打了
老迈:。。。。

上面还仅仅一个小小的场景,线上功用模块要运行杰出,开发人员是要花非常多心思的,下面笔者简单列一下。


想好回滚/降级/灰度计划


功用上线之前,就算做了非常严格的功用测验和回归测验,也是不能百分之百保证上线后没问题的。因而研发第一个要做的工作是,上线前先列好线上问题处理计划,大概有如下几种场景:

  • 假如技术重构项目,必须有灰度开关,能随时切回去;
  • 假如是对接其他微服务接口的,必须保留原有的逻辑,万一新服务接口有问题,能降级到使用旧接口;
  • 假如是改动原有接口的,且是非常重要的中心功用,并且涉及到小程序端或许APP端联动一同修正的,那么就需要评价一下,前端和后端一同回滚的计划;;
  • 假如是数据库做了变更的,那么一定要做的工作是:旧代码拜访变更后的数据库,是否正常,假如事前没做好这个兼容性,到时候上线后出问题,是退无可退的,因为数据库变更是不允许回退的;

注重测验人员的测验用例


测验人员一般都会给出功用模块的测验用例,开发人员必须认真对待它,帮忙测验人员一同完善它。因为测验人员就是根据这份用例来履行的。假如你不放心,则拉上产品经理,一同评价测验用例。一般来说,评价的维度如下:

  • 新功用完整性;
  • 旧功用回归场景是否全;
  • 有无漏掉的场景;

开发人员也尽量供给一份功用改动点的文档出来,说清楚改动了哪些点,哪些重要的点被改动了,让测验做好评价。


做好日志监控


功用模块要做好监控,一旦有任何一个报错,你都能第一时刻知道,提前介入解决。比如说:

  • 接口打印响应时刻,假如响应时刻超过200毫秒的,打warn日志;
  • 将接口关键字上签到elk,借助elk做告警,并同步到企业微信或许钉钉告警群;
  • 打印入参和出参,便利定位问题,尤其是接口报错时,上下文入参一定要打;
  • 假如接口调用了第三方服务的,也必须打印调用一次接口的时刻以及入参和出参;

做好数据监控


假如你担任的订单/付出模块,最好能做个数据监控,例如:

  • 未付出订单数监控
  • 退款订单数监控
  • 使用优惠卷订单数监控

假如做的是短信模块,就监控短信发送数量,假如是做的是发票业务,那就监控开发票失败的数据。

把监控结果,放到监控大盘里,便利我们看。


C端接口的,做好压测


C端接口是用户等级的,每个接口都得压测,通过压测发现瓶颈所在,提前优化。一般要通过如下几个阶段:

  • 开发压测,给出预期qps
  • 测验人员压测;
  • 线上压测;

关于线上压测,假如服务设施没搞好,那就必须晚上压测。现在用阿里的PTS做压测便利,建个压测任务就行。


一个星期的线上调查期

如上文提到的,功用准时上线了,还是做的不行的,因为还需要加一个线上调查期。模块上线后的一个星期内,每天都要仔细调查该功用是否运行正常,例如如下这些维度:

1、接口有无ERROR日志;
2、接口响应时刻是否正常,尤其是高峰期;
3、BUG群里是否有关于该功用的报障;
4、有无异常数据;
5、写入的数据是否符合预期,是否影响到下流系统;
6、之前的呈现的问题,是否如预期的完整解决了;

很多开发人员常常漏掉这一步,以为上线后就完事了。


小结


功用模块从需求-->开发-->测验-->上线-->线上调查期 这几个进程,都照顾周到了,才算对该模块担任了。一同这也是一个开发人员应该要有的习惯和素质,假如你每做一个项目,上线后都没有手尾,非常稳定,那么你与老板的信任联系就会慢慢的建立起来,老板才会不断的分配任务给到你,你也才干开展和生长。

欢迎关注本专栏


技术经理生长复盘

感谢。