AI 与智能化 API 治理的探索实践

API 小达人
• 阅读 382

7月 Eolink 受邀参加 QECon 2023 全球软件质量&效能大会(北京站)。Eolink CEO 刘昊臻,发表了主题为「AI 与智能化 API 治理的探索实践」的演讲,分享 Eolink 在 API 全生命周期中治理实践与 AI 结合的探索。

Eolink 作为国内 API 全生命周期解决方案的领军者,通过其独创的 DTDD(文档与测试驱动开发 )API First 理念,致力于打造一站式、智能化的 API 全生命周期解决方案,帮助企业提升研发效能,降低运维成本。本次演讲,围绕 API 全生命周期,从 API 治理的价值、治理体系、实践经验等方面,分享了 Eolink 在 API 治理的最佳实践,以及结合「AI+API」技术的革新应用。

AI 与智能化 API 治理的探索实践

之前我在公司里面主要负责产研和相关的技术管理的工作,在 2016年我发现随着微服架构和数据开放的趋势到来,API 的整个综合管理成本开始变得越来越大,并且围绕着 API 的全生命周期有非常多可以优化提效的点。

因此,我和团队在 2016年做了国内第一款结合 API 的设计、开发、测试等功能的 API 开源产品,后面逐步演化为我们现在的公司-Eolink。在过去的几年里面,我们一直致力于在国内推广 API first 理念,帮助企业和开发者更好的去利用 API 。

如今越来越多的企业开始关注 API 的治理等工作,因为很多公司现在能够做的基础建设,以及围绕着代码建设的 Devops 平台能力基本已经建设完成了,下一步就是更细的 API 以及数据的治理,希望能进一步的提升产研的效率以及产品的质量,甚至进行数据的变现。


API 治理为业务带来的价值

目前,API 在企业中扮演的角色越来越重要。首先是 API 的数量相比以前有了爆发式的增长,现在随便一个公司内部拥有上千个 API 是非常常见的。

  • IBM 调查报告显示,API 经济全球市场规模超过2.2万亿美元。开发API项目的公司数量预计将保持100%的同比增长。

  • Gartner 研究报告指出,API 生命周期管理市场2019年同比增长36%,超过17亿美元,其成为应用程序基础结构和中间件市场中增长最快的部分。

  • 艾瑞咨询《2020年中国人工智能API经济白皮书》提出,2019年人工智能API开放平台市场规模达104.1亿且正处于高速增长期,预计到2024年市场规模有望达到579.9亿。

其次是围绕着数量庞大的 API 又有着广泛的开放需求,不仅是对内部开放,还经常需要对外部合作伙伴或者是用户进行开放。

  • API 数量: DevOps、前后端分离的研发模式带动 API 数量大幅增长;

  • API 开放: 微服务架构改造带来大量 API 管理及开放需求;

  • API 安全: 数据安全、服务治理等诉求推动 API 管理成为 IT 系统的基础设施;

  • API 经济: 开放式企业、开放银行等行业领先实践推动 API 经济兴起。

要保证这些开放 API 的安全就变得非常重要,并且还要思考如何挖掘其中的经济潜力,让 API 成为业务增长的驱动力。

AI 与智能化 API 治理的探索实践

来自 Linux 基金会的数据显示 70~90% 的代码是由开源和第三方 API 来组成的,并且通过 API 产生的经济价值也变得非常巨大,许多政府和企业开始考虑将数据和服务进一步开放,因此就有了开放政务、开放银行、企业开放平台等概念。为了更好地发挥 API 的作用,许多公司开始将 API 纳入到 devops 的流程,希望通过这样的方式来加速 API 的生产以及利用。

下图很好地展示了 API 在整个 devops 的过程中包含哪一些阶段,从最开始的设计到开发测试,安全保障以及管理,以及对外暴露之后的可发现,可接入,可消费和可观测。

AI 与智能化 API 治理的探索实践

我们签约的证券公司都希望将内部的 API 进行规范化的治理,包括最基础的 API 资产的集中管理,并进行自动化的测试,然后将测试好的 API 快速发布到网关,再通过一些审批手段去控制调用方,或者将开放的 API 暴露给消费者,让他们能够更快的接入,从管理后台中了解到每个租户、每个 API 的使用情况。

小规模团队:提升 API 研发、测试效率

不同的团队规模和业务规模,对于 API 治理的需求也不太一样,比如对于 100人以下,或者 API 在 1000以内的小规模团队来说,最关注的是如何将 API 作为一个标准化的步骤来接入到现有的 devops 流水线中,提高围绕 API 的开发测试的效率。

比如,通过 IDE 的插件将代码注解或者是代码直接生成 API 文档,通过平台来生成接口的单元测试用例,并且能够组合成自动化的测试流程,方便每一次迭代的时候进行冒烟测试以及版本升级后的回归测试。同时,在不断的迭代中,管理 API 不同版本之间的差异,并且把报告同步到团队中。API 作为 devops 中的一个环节,可以补充现有的研发效能体系,并且进一步的提升产品的质量。

AI 与智能化 API 治理的探索实践

大规模团队:贯穿从开发到上线的 API 治理

对于更大规模的团队来说,单纯的 API 管理和测试无法满足复杂系统和架构的 API 治理需求,此时范围就会延伸到运维,并且将内外部的调用方管理,以及公司内部的协作流程也结合进来。

比如,在开发之前的接口设计阶段,就会进行更详细的接口评审,并且通过一些功能来约束 API 的设计规范,或者找出不符合设计规范的 API。

在开发阶段和代码仓库结合,通过自定义的代码模板,将 API 的设计统一转换为标准的开发框架,然后在此基础上再进行后续的开发。

在运维阶段,将已经测试好的 API 和网关结合,实现从开发环境到生产环境的发布。当然,这个过程中还有可能涉及到一些流程审批,避免因为发布不规范导致的 API 不可用。在生产环境还需要对 API 的运行情况进行监控,了解 API 的调用情况以及异常告警,并且将所有的消息都和内部系统进行打通,实现自动化的协作。

AI 与智能化 API 治理的探索实践

围绕着 API 的治理工作,其实并不比代码的管理要简单,是一个跨团队长流程的的系统性问题。


API 治理完整体系的理想形态

API 要治理,实际上要解决的是四大核心问题:

1. API 作为一种核心的数字资产,要如何进行有效的管理并提升可观测性?

像很多团队以前都是把 API 的资产管理在各种的零碎文档里,甚至有一些老旧的业务系统,连有什么 API 都不清楚。

因此,有效管理的第一个标准就是可持续,其次就是能完整的记录 API 的资产信息来提升可观测性。

2. API 贯穿开发测试和运维等多个环节,我们要如何去把不同的团队和现有的工作流加以优化,并提升它的迭代效率?

针对这个问题,我们在业内提出了dtdd,也就是文档和测试驱动 API 开发的专利实践,通过标准化的工具和流程来解决API迭代效率的问题。

3. API 作为核心的业务中间层,怎么样提升质量和安全性?

比如,通过自动化的测试以及 AI 的方式来提升测试的效率和覆盖率,或者通过网管等中间件对 API 进行安全控制。

4. API 是否可以作为一种商品进行商业化?

这个问题每个公司的情况不一样,是更偏公司战略和业务方向的,比如现在的 AI,是一个很好商业化的 API 商品。

AI 与智能化 API 治理的探索实践

Eolink 从 2017年开始研究如何解决这些问题,并且针对性的设计和开发了一系列的 API 工具平台。包括 API 快速生产、研发管理、自动化测试、网关、监控、开放平台等,实现对 API 的全生命周期覆盖。

AI 与智能化 API 治理的探索实践

如果把 API 全生命周期和 devops 进行结合,就可以得到如图所示的 API Devops 工作流。在这个流程中,API 的每个环节都有对应的工作项,并不断推动 API 以更易用、更规范、更安全的方向发展。

AI 与智能化 API 治理的探索实践


API 治理的实践经验参考

API 治理是一个跨团队长流程和深需求的挑战,一般我们会把治理的目标拆分成多个核心问题,并逐个解决,而最简单的拆分方式,就是按照 API 的生命周期划分成多个阶段,找到各个阶段中目前存在的问题并通过工具来解决。

AI 与智能化 API 治理的探索实践

我们将过去几年在客户中实践的经验整理成了一个 API 治理成熟度的模型,根据这个模型中的三层次,六阶段来分别判断,目前团队内部对于 API 的成熟度处在哪一个级别,以及可能存在什么问题。

AI 与智能化 API 治理的探索实践

从最佳实践来讲,我们服务的客户可以分为以下四种:

  1. 基于文档与测试驱动,并联动前后端测试团队,持续管理 API 资产并且提升 API 的研发效能。

AI 与智能化 API 治理的探索实践

  1. 将 API的自动化测试逐渐加强并集成到流水线中,实现随时测试以及持续测试。

AI 与智能化 API 治理的探索实践

  1. 将 API 的开发和上线环节打通,实现 API 的快速发布,并通过网关等产品进一步管理 API 的流量,提升 API 的性能,安全和稳定性。

AI 与智能化 API 治理的探索实践

  1. 将 API 的管理和监控、链路追踪等产品结合,实现线上故障的及时发现和告警,并增强 API 的可观测性。

AI 与智能化 API 治理的探索实践

实际的 API 治理操作流程

1. 设计和管理

在设计阶段,制定接口的文档规范,并且建立一个层次清晰的接口仓库,方便后续的管理,测试和发布工作。一般来说,会根据产品应用和服务等级别对API进行分组管理,如果公司更大一些,可能还会在此基础上有部门子公司等组织结构的层级。

然后会制定一系列的API开发规范,比如不同的项目可能存在不一样的开发规范,但在同一个项目内或者一个服务内的API应该是尽可能保持设计统计,方便后续的对接和维护。

同时,为了方便管理,一般也会通过Eolink Apikit将分布在不同工具中的零散的API文档、测试用例、数据结构等内容管理起来,减少后续沟通过程中的信息不对称。

AI 与智能化 API 治理的探索实践

  1. 开发阶段

一般会基于代码仓库来搭建自动化的流程,解决前后端接口开发和调试的问题。比如从代码注解里面动态生成接口文档,或者是从接口文档反向生成代码。当有了一篇文档就可以设计或者是生成一系列的单元测试用例和 Mock API。这个时候,前后端和测试团队实际上已经开始异步的协作,大家都围绕着 API 文档来工作。

因此,就会出现API和档在团队内部分享的需求,当 API 的设计有疑问或者在测试过程中发现缺陷等问题时,也可以通过评论等方式对 API 标注。

AI 与智能化 API 治理的探索实践

3. 在构建阶段

这个时候代码会上传到仓库,然后触发我们的平台,对整个项目进行快照,也就是创建一个版本。版本管理的作用非常大,我们经常需要对比不同版本之间的接口差距,或者是对某个版本的接口进行回归测试。如果发现接口的设计有问题,还可能需要进行回滚。

AI 与智能化 API 治理的探索实践

4. 自动化测试阶段

测试团队在日常工作中不断地根据测试场景来设计自动化用例,将多个接口串联成测试流程,并且在平台内管理好测试的数据,这样当版本提交时就可以触发对应的自动化测试,并且把报告发送到指定的位置,这整个流程下来就把接口的开发与测试给关联了起来,让测试可以随时进行。

AI 与智能化 API 治理的探索实践

5. 发布阶段

通过将 API 管理和网关进行结合,可以把 API 配置快速推送到不同环境的网关,减少因为导入导出配置或人工操作失误等原因带来的发布问题。

实际上一般在网关还会做最终的发布确认,或者是接入内部的开发平台来进行发布前的审批。后续网关会对 API 进行线上生命周期管理,比如对 API 进行负载均衡,用户健全,攻击防护等工作。

到这里,API 从设计到发布的流程就基本结束了。

AI 与智能化 API 治理的探索实践

在实际的 API 治理的过程中会有非常多的需求,我们整理了一张图,详细的标注了在研发和测试阶段各个目标下可能涉及的一些需求点,方便大家参考。

AI 与智能化 API 治理的探索实践


API 开源生态:覆盖开发测试与运维场景

为了进一步降低 API 产品的使用门槛,我们将过去几年在 API 行业的一些实践经验进行了总结并重新设计开发了两款开源产品,分别是开源的 API 管理测试工具 Postcat、开源的高性能 API 网关 Apinto,这两款产品结合可以覆盖大部分基础的 API 开发测试和运维的场景。

AI 与智能化 API 治理的探索实践

Postcat 定位为面向未来的下一代 API 开发工具。在 Postcat 上,我们可以去管理 API 文档,创建各种 API 测试用例。由于是插件架构,我们可以通过第三方插件和现有的产品结合,或者增强 Postcat 的功能来实现无限的拓展性。未来,我们还会逐步结合 AI 的能力,未来期望让 API 的设计,开发和测试在 Postcat 上面实现全智能化。

Postcat Githubhttps://github.com/Postcatlab/postcat

AI 与智能化 API 治理的探索实践

Apinto 是我们基于 go 语言,全自研并开源了一个支持多集群管理的超高性能 API 网关,可以帮助大家解决 API 流量管理中的性能、安全和稳定性问题。

值得一提的,Apinto 的性能非常优秀,在一台八核 8g 的普通服务器上,转发性能接近 7w qps,比 nginx 要高 100%,比 kong 高 70%,并且在高并发的情况下,还拥有更低的延迟和错误率。

Apinto 还自带了 UI 的控制台,让整个部署使用和维护的门槛都降到最低。

并且也采用了和 Postcat 类似的插件架构,这意味着产品里几乎所有功能都可以通过插件的方式来扩展。无论是进行二次开发,还是集成到公司内部,都会更加方便。

Apinto GitHubhttps://github.com/eolinker/apinto

AI 与智能化 API 治理的探索实践


首个「AI+API」的产品化探索

AI 与智能化 API 治理的探索实践

1. 通过自然语言描述需求,AI 生成 API 文档、API 代码

我们从去年开始研究产品和 AI 之间结合的可能性,其中第一个结合点就是通过自然语言来描述需求,然后由 AI 来生成 API 的设计,并通过平台来生成后续的框架代码。

比如,我们可以在产品中描述要设计一个什么样的 API,或者需要设计一个什么样的系统,然后 AI 会生成对应的 API 文档,并且我们可以在平台中二次编辑并保存。

如果觉得生成内容不符合预期,还可以继续完善描述,让 AI 生成更准确的 API 设计。生成好了之后,可以通过我们平台来生成各种语言的框架代码,并在此基础上继续开发。通过这样的方式,可以快速批量的创建 API 并减少一部分的人工操作。

AI 与智能化 API 治理的探索实践

2. AI+API 生成单元测试用例

根据 API 的文档来生成单元测试的用例,这个场景比刚才的要复杂一些,首先需要分析 API 的含义和使用场景,然后根据 API 文档里的参数描述来分析出 API 可能的单元测试用例有哪一些,并且生成对应的测试数据。

AI 与智能化 API 治理的探索实践

生产出来的测试用例可以一键进行回归测试,或者通过 OpenAPI 的方式对接到流水线里面,在每一次迭代完成之后都触发回归测试。

3. AI+API 生成自动化测试流程

通过 API 的文档来判断 API 的关联关系,对 API 进行分组排序并实现数据关联,从而生成测试的流程。

AI 与智能化 API 治理的探索实践

上述的三个功能目前在进行小范围的用户内测,内测过程中,我们也发现了一些问题要改进。比如通用大模型 AI 由于缺少高质量的 API 的训练数据,没有办法完全理解 API 的使用场景,尤其是一些专业领域的 API,或者是基于内部需求而设计的 API,导致生成出来的 API 单元测试的用例覆盖不全,或者生产出来的正确率比较低,目前我们内测发现正确率在 30% 左右,后期依然需要一些人工进行修正。

AI 与智能化 API 治理的探索实践

另外就是在线的大模型,可能会有一些数据合规的风险,虽然测试用例的数据并不敏感,但不同行业的保密要求不一样,有一些可能没有办法连接外网,因此如果能够在规模稍小一点的离线模型上实现这个需求,使用场景会更广一些。我们预计在第四季度会有正式的功能发布,并且到时候也会逐步同步到开源产品里面。

点赞
收藏
评论区
推荐文章
API 小达人 API 小达人
1年前
如何开发 RESTful、GraphQL 和 SOAP 等不同类型的 API ?
本指南将详尽探讨API开发的基本要素,包括涉及的概念、类型和协议,以及可用的最佳实践和工具。我们将从揭示API在现代软件开发中的作用开始,阐明它们如何促进不同软件组件之间的无缝通信。之后,我们将深入研究各种API类型,如RESTful、GraphQL和SOAP,并分析它们独特的特点和理想用例。接下来将讨论API设计的关键方面,重点关注API安全性、可扩展性和可维护性。我们将讨论常见的身份验证和授权机制、速率限制以及API版本控制等其他基本主题。最后,我们将介绍领先的API开发工具和框架以及文档和测试的价值,确保你具备开发高质量、高效且安全API所需的知识和资源。
API 小达人 API 小达人
1年前
为什么 API 治理需要内部倡导?
要做API治理就要将API作为数字资产来管理。就像一个人如果要投资理财,就必须先清楚自己有多少可利用的资金和资源。何况API作为新时代最重要的数据和服务入口,值得企业和团队投入更多的精力来关注它。第一件事情就是要全面整理公司内部的API资产清单,否则后续的API治理工作都会化为空谈。
API 小达人 API 小达人
1年前
【接口自动化测试】Eolink Apikit 如何生成与导出接口文档?
在API研发管理产品中,几乎所有的协作工作都是围绕着API文档进行的。采用文档驱动的协作模式会比先开发、后维护文档的方式更好,团队协作效率和产品质量都能得到提高。基于文档来进行工作,使用文档驱动方式可以降低大量无意义的沟通成本。创建了API文档之后,可以随时查看API的改动情况、根据API文档发起API测试、编写API测试用例、使用MockAPI等。在EolinkApikit系统中管理的API文档,可以详细的看到API的描述信息、变更历史、测试用例、MockAPI等内容。
API 小达人 API 小达人
1年前
如何进行自动化测试,提高测试效率?
作为测试人员,在进行比较大的项目时,使用自动化测试能帮助我们事半功倍地完成测试工作,提高测试效率,缩短开发周期。EolinkApikit为测试工程师提供API文档管理、快速接口调试、测试用例管理、及自动化测试等功能。协作测试工程师快速查看API文档及变更,以及更快的进行接口测试和自动化测试工作,降低测试用例编辑成本,提升自动化测试效率。
曼成 曼成
11个月前
深度解析IP应用场景API:提升风险控制与反欺诈能力
在当今数字化时代,网络安全和用户数据保护成为企业日益关注的焦点。IP应用场景API作为一种强大的工具,不仅能够在线调用接口获取IP场景属性,而且具备识别IP真人度的能力,为企业提供了卓越的风险控制和反欺诈业务能力。本文将深度解析IP应用场景API,揭示其在提升安全性和业务可靠性方面的重要作用。
E小媛同学 E小媛同学
11个月前
运营商三要素API:简化业务办理流程
随着互联网的快速发展,各行各业都在积极推进数字化转型,以提升业务办理效率和用户体验。在这个过程中,运营商三要素API作为一种高效、安全的身份验证方式,正发挥着越来越重要的作用。本文将探讨运营商三要素API如何简化业务办理流程。
API 小达人 API 小达人
10个月前
从苏州银行的 API 治理,看银行数字化转型的合规性探索
平台与行内相关研发和运维管理系统进行打通,实现API研发、测试、治理和运维一体化管理;实现与Devops系统打通,实现接口的自动化发布和测试;实现与测试数据管理平台、缺陷管理平台打通,实现API接口研发一体化管理。
E小媛同学 E小媛同学
9个月前
天气预警API:提升公共安全与紧急响应效率的关键技术
随着全球气候变化的加剧,极端天气事件的频发对公共安全构成了巨大挑战。为了有效应对这些挑战,天气预警API作为一种关键技术,正在逐渐成为提升公共安全与紧急响应效率的重要工具。本文将探讨天气预警API的工作原理、应用场景以及如何通过集成这些API来增强社会对极端天气事件的应对能力。
E小媛同学 E小媛同学
7个月前
银行卡二要素API:构建更安全的电子商务生态系统
在数字化时代,电子商务已成为我们日常生活的一部分。然而,随着在线交易的增加,交易安全问题也日益凸显。银行卡二要素API作为一种创新的技术解决方案,正在帮助电子商务平台提升交易安全性,防范网络诈骗和金融犯罪,并确保商家遵守相关法规。本文将详细探讨银行卡二要素API的作用和重要性。
智多星V+TNY264278 智多星V+TNY264278
2个月前
电商数据集成:利用API接口实现商品详情自动化获取
在电子商务的快速发展中,数据集成成为提升业务效率和增强市场竞争力的关键。API(应用程序编程接口)作为数据集成的核心工具,允许商家自动化获取商品详情,从而实现高效的商品管理和数据分析。本文将探讨如何利用API接口自动化获取商品详情,并分析其对电商业务的影响