在工作中,有时会有对接其他部门系统的需求,这种需求虽然不复杂,但是跨部门协作,往往会出现各种难以沟通、协调的情况。
踩的坑多了,就记录下来。
注意:在本文中,A系统调用B系统,A依赖B,称B系统为下游系统,A系统为上游系统。
不同团队有不同的叫法,可能上下游还是相反的叫法。没有绝对的正确。
系统之间对接时,最好不要盲目从中间系统接数据。
上游系统,最好从生成数据的最下游系统去接数据,不要从中间系统去拿这些数据。
中间系统往往会对数据进行加工,如果上游系统出现问题要排查非常困难,很难弄清到底是下游系统出问题,还是中间系统出问题。
核心数据最好只存在一个系统,其他系统去查询/调用。
如果数据分散在多个系统,数据同步/数据一致性,数据会很混乱,很容易出问题。
不一定所有的系统都会有灰度环境,也不是所有的系统都能在测试环境模拟真实数据。
有些比较奇葩的系统,甚至测试环境是没数据的,直接在灰度环境测试。
因此,提前商量好对接的环境挺重要的。
是http接口,还是MQ消息队列,还是通过大数据平台的Hive、ETL对接等。
什么时候开始排期?
开完需求会议之后的一两天。
排期包括:
下游系统什么时候给上游系统,接口文档、参数定义,或者MQ集群、消息主题,或者表结构、数据类型等设计细节。
上下游系统什么时候在测试环境进行对接,联调。
下游系统什么时候上线功能。上游系统什么时候上线功能。
上游系统的后端什么时候给前端接口文档。什么时候前后端联调。
上下游系统什么时候在灰度/生产环境进行对接。
排期最好宽松些。留一些buffer。往往沟通、开会、验收,都会浪费很多时间。
总的流程如下(具体流程根据项目情况灵活调整):
| 日期\流程 | 下游出接口文档 | 上游后端出接口文档 | 下游转测 | 上下游后端联调 | 下游上线 | 上游前后端对接 | 上游转测 | 上游发布评审 | 上游上线 |
|---|---|---|---|---|---|---|---|---|---|
| 日期1 | 日期2 | … | … | … | … | … | … | … | … |
作为下游系统,不能直接变更系统对接的接口url、参数、字段类型,或者是集群ip,消息主题等信息。
在变更之前,必须及时通知上游系统,并商议好是否变更,如果确定变更,给出变更日期。
一个下游系统,可能对接五六个上游系统。
如果针对每个上游系统,都做定制化,那开发成本和维护成本会很高。
透传最好。数据从下游系统传输给上游系统,上游系统最好能直接拿到最终的结果。
如果上游系统,还需要对数据进行加工,会增加出错的概率。
作为上游系统,永远都不知道下游系统会传什么样的数据过来。
可能之前约定好了某个字段是数字类型,下游系统莫名奇妙就发个英文字母或者日期过来。
因此,上游系统得兜底,做好异常处理,处理掉异常数据、脏数据。
曾经对接过某个系统,给出的接口调不通,明明都是按照文档上的来,怎么都调不通。
最后要求下游系统给出相关的demo示例。才发现文档是旧的,跟实际不相符。
如果下游系统的测试同事没有及时界入,那么上游的开发就会变成下游的测试。就会非常痛苦。
可以及时询问下游系统是否转测,是否开始测试,测试进度如何。
验收的时候,不要私聊,要在群里反馈问题,让领导们看到验收的结果,避免反复验收。
上游系统在发版当天,必须做发布评审,准备好下游同事的联系方式。
提前通知下游同事,让下游同事当天一起参与发版!!
否则发版当天,出现下游问题,没法解决。
最好拉一个群,把所有相关人员都拉上。不要只通知其他一人,忽略了其他人。
如果一个系统对接了多个系统,最好记录下对接的系统及联系人。
如果系统的数据比较复杂,也最好把各个功能模块的数据源记录下来,防止人员变动后无法接手。
如果系统对接方没有在对应日期给出设计,或者是功能没有在承诺的日期上线。
要及时去跟进,去了解原因,看到底是在哪个环节阻塞了。
先发消息,紧急的就打电话,电话打不通就直接现场找人,当面沟通。
打印日志,出现问题,方便排查。
哪怕不是己方系统的问题,也能把日志相关的参数、时间等重要信息发给系统对接方查看问题。
对接其他系统,最好双方都发邮件留痕。后续出现问题,才能弄清楚到底是哪个系统,在哪些环节出现问题。
对接的系统甩锅时,我方系统还能留有证据。
如果是特别特别重要的功能,可以每天/每周进行汇报。
跟上级领导汇报系统对接的进度。
跟对接系统的负责人沟通进度。
对接第三方系统。如果有问题,找人解决,要提供问题的环境、url 接口、参数等等。
直接大群 @人,再不回就 @ 负责人和领导,再不行就直接岗位找人,不要阻塞着。
系统对接方出现问题,如果对方迟迟解决不了,那就得升级问题。
可以让对方系统的高级开发去帮忙解决。
实在没有人力,也可以自己去解决。
曾经在对接一个系统时,对方有个bug一直解决不了,直接让他共享屏幕,两个人一起定位解决了。
再不行就跟双方领导汇报,让领导找人,给资源。
平复情绪,好好谈,好好复盘,不要生气,气坏了身子没人替。