随着爱奇艺会员破亿,会员服务从小而快的单一事务体系升级为了按领域区分的微服务模式,满意了事务的高速开展和服务的高流量调用,可是微服务的拆分,体系间的交互越来越多,在需求开发时,协作本钱随之添加,问题总结如下:
- 历史包袱过重,接口办理东西不一致:WIKI、YAPI、Swagger
- 接口维护本钱高,代码和文档需求同时更新
- 接口联调和测验本钱高,由于环境、链路导致的问题,排查难度大,事务杂乱的需求可能会延期
根据以上问题,会员团队需求一个渠道把接口管控起来,提升研制和测验的效率。
01 计划调研
比较了现有渠道(见下图),都不能满意会员的需求,可是 Atlas 是公司内部开发的渠道,现已有接口办理的基础才干,能够共同开发,在渠道上扩展会员需求的功用:代码即文档、一键链路排障、接口规范一致管控、签名和实体主动生成,不仅能够处理会员的痛点,还能够为公司其他部分赋能,避免了重复造轮子。
Atlas **介绍:**Atlas是一个根据接口办理的事务常识办理渠道,提供了一致的接口管控入口、接口规范(OpenAPI3.0)、接口调试和 mock、链路定位、联系图谱等才干,有用的处理了接口文档办理、共享和协作相关的问题。
02 项目****方针
-
**简化开发:**Atlas 让前后端数据交互更简单,让团队开发协作更容易。前端同学无需依靠后端开发进度,直接借助 mock 功用即可完成联调。
-
**智能文档:**完成代码即文档、文档即代码,文档主动同步代码改动,让文档维护更智能。
-
**高效协作:**支撑强大的联调、链路问题定位、代码主动生成等功用,前后端协作更高效。支撑主动化的依靠剖析,各关联方经过订阅方法,能够及时、准确的把握接口改变,经过图谱能够全面把握影响范围。
03 处理计划
1、一键验证
根据全链路监控体系打通了环境渠道内部的链路,完成了在开发和测验阶段能够一键定位环境和调用链路问题的才干,极大削减了研制和测验的排查时间。一键验证功用现在已覆盖了异步使命、RocketMQ 和 API 接口的问题排查。经过下图所示的排查链路,可快速定位异常服务和问题原因。
架构设计如下:
2**、常识图谱**
体系依靠日趋杂乱,研制需求了解自己所开发接口的依靠与被依靠联系,才干确保版别迭代时上下游不受影响。测验需求了解自己所测接口的上下游依靠联系,才干确保 case 覆盖率。为了让这种依靠联系展现的全面、详细,咱们运用全链路监控体系主动获取了接口级、字段级的依靠联系,并借助 G6 以图谱的方法展现在 Atlas 上。
3**、查询模式**
- 一键查找
接口文档、数据库设计、错误码及 UML 事务梳理,都能够在渠道主页一键查找获取,处理了研制依照个人习气,无固定地址、无固定格式的办理方法,提升了信息获取的效率和准确性。
- 历史追溯+版别对比
接口迭代频繁或是人员更迭时,研制常常需求梳理接口改变的历史。Atlas 提供了同一接口恣意分支、恣意版别之间的对比才干,让改变和背景一目了然。
- 订阅及消息推送
事务依靠的接口都能够自行订阅,一旦接口有改变,能够实时获取改变通知,便于及时评价是否对事务有影响。
4**、强化调试**
在运用 postMan 等东西调试时,常常会遇到签名问题阻塞调试,Atlas 渠道对签名功用进行了拓宽,支撑以下两种方法:
- 签名算法模板,一键下拉挑选
- 签名算法自定义,粘贴代码片段,动态解析计算
动态代码履行完成流程如下:
04 体系价值
会员研制和测验现已彻底运用该渠道,Q3 累计 75 个需求接入,提效显著:
-
研制提效:均匀每个需求可削减 2 个小时的时间,环境链路问题和自测问题彻底处理,并降低了接口维护本钱
-
测验提效:排查链路问题提效 93%(15 分钟降到 1 分钟),排查环境问题提效 50%(4 小时降到 2 小时)
05 后续规划
会员团队会持续和企业效能部协作,收集日常开发和测验的痛点,开发更多的接口办理东西,助力公司的全体效能提升。下一阶段的功用规划如下:
- 提炼调试功用:将调试功用从接口办理中提升至主页,让用户能够不依靠接口信息,直接运用调试功用,并对接一键验证等功用。
- 代码主动化:经过 Atlas 提供服务接口的规范json数据,以规范数据做为桥梁衔接前后端,完成前端代码的主动生成
- UML 图编辑:支撑用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图在线创建和修改,提升协作的效率(现在一期根本画图功用已上线)