背景
存在问题
解决思路
方案
带来的问题
解决
总结
在转转的产品研发体系中,tapd用来管理需求,bug,任务的流程和生命周期。在devops流中,多项操作都需要和tapd打交道,如:拉起分支-关联需求,部署测试和部署线上后改变需求的状态。这些操作都需要通过tapd提供的api进行通信。
可以说tapd和转转的整个研发管理流程是紧密贴合的。tapd服务的波动都会给转转的devops流程带来一定的影响。在日常的使用中,我们发现如下问题。
那么,多业务线查询TAPD数据时除上图的方式外还可通过我们自己的库表得到,如下图所示:
利用TAPD提供的变更通知的能力,通过webhook可以订阅需求,bug、task等变更消息。将tapd的数据存储到本地。
这样一来,访问远程变成了本地的接口访问,访问更快,更少,提升系统性能和响应速度。
需求、任务、BUG以及对应变更数据入库,流程图如下:
2.多业务线请求tapd原生接口时,将使用限流器进行请求流量控制,如下图所示:
3.由于TAPD变更历史接口的限流阈值为10条每秒,在入库时查询TAPD过程中很容易触发限流,对此,具体处理如下:
4.数据更新异常我们将会通过企业微信发送消息告警,说明消息入库异常 了,当收到消息提醒后,我们会对该时段的数据通过进行补偿,以保证数据的一致性。
5.对于非webhook能够发送的数据我们将通过每天晚上,采用用定时任务的方式进行同步,例如,TAPD项目信息、TAPD各项目需求工作流状态中英文名对应信息、用户项目关系等数据。
通过代理和数据本地化的策略,提高了接口性能、彻底解决接口限流排查困难和稳定性问题。
在多业务混用的情况下,有效的保证了主要服务的数据稳定性,也为后续度量建立提供了数据基础。
关于作者
周海霞,转转工程效率组内成员,主要负责公司内部devops平台的相关开发及维护。
想了解更多转转公司的业务实践,点击关注下方的公众号吧!