API经济时代:打造面向未来竞争力的关键 API管理、设计的思考与实践 阿里云API网关小组 云原生API网关介绍 •API经济 •API网关的创新 •全生命周期的API管理 •APIFirst设计实践 •案例与展望 API带来的企业业务变化 •API(ApplicationProgrammingInterfaces,应用程序编程接口)。简单地说,就是用来管理应用程序之间沟通的一套要求和约定,用来规范和约束系统间的交互。 提高效率 提高企业内部、企业和企业之间的运作效率 低成本集成 集成对接成本低,便于各个时期的系统打通 推动创新 组合、跨界应用,产生化学反应 打造生态 能够更快的吸引更多合作伙伴和客户 企业内高效生产 -依靠API的内部系统隔离和交互,只要API约定不变,每个系统都可以根据自己需要进行升级改造,而不会影响其他人。同时API也是业务中台化的基石。 企业间自动协同 -大大的降低开发成本,降低创业门槛,让你聚焦在核心业务点上,去玩花,而不是种花。大大缩短从启动到上市的时间,而时间就是金钱。 和开发语言无关 -API本质是一种要求和约定,目前主流的基于HTTP/HTTPS的REST风格API,任何开发语言都很容易实现。 兼容性好 -每个API提供的是原子动作,无论是功能升级、模块加功能加逻辑,或者基于API的二次开发,API都能够轻松升级向下兼容。 API即能力 -当前很多AI能力是通过API方式提供的,如OCR识别技术。使用者无需掌握复杂的图像识别知识,知需将图片通过API发送过去,即可获取相应的内容。 API即数据 -通过API可以将高价值数据进行开放,跨界应用。如出行类应用、快递送货业务,通过调用天气数据类API,对业务进行优化,提供更好的体验。 Twitter -合伙人BizStone表示,和传统网站相比,API为Twitter带来十倍以上的流量。 Salesforce -其拥有超过80万的开发者和超过250万个应用程序,其流量大约6成来自API的贡献。 API数据与能力变现 9 9 API调用Api调用 云原生 API网关 10计量 2 8 7 获取消费者凭证 数1 6 交 据生成消费者凭证 互 4 Consumer 订阅API API开放平台 3上架API商品 5 审批/授权 Provider API管理及网关的挑战 •API粘合了企业内外部的多种系统,API和用户数量越来越多,但放养式的开发模式下,API缺少一致的定义、分发与治理规范;各种API设计、测试工具数据互通难,且没有和日常、预发、生产环境的发布有机联动,API作为核心资产未受到有效管理。 《CSDN2023中国开发者调查报告》:云原生技术下,40.1%的开发者认为,规范API接口排在亟待改善问题的首位。 •根据不同的业务需要和后端服务类型,用户需要部署流量网关、微服务网关、API网关等多层组件,带来很高的运维成本,而性能及稳定性也难以保障。 管理成本 API版本混乱API设计与发布割裂API生命周期无管控 开发效率 缺少API统⼀规范多⼯具切换难协作前后端联调低效 运维复杂度 多网关导致诊断困难监控告警不集中灰度发布难实现 性能及稳定性 多层网关性能受损多种开源技术兜底难 配置或发布变更业务抖动 云原生API网关介绍 •API经济 •API网关的创新 •全生命周期的API管理 •APIFirst设计实践 •案例与展望 应用网关发展历程与未来趋势 单体应用,Web1.0 1990~2000 软硬件负载均衡 F5,HAProxy 单体应用,Web2.0 2004 应用交付控制器 Nginx,ADC SOA,RESTAPIs 2005~2010 RESTAPI网关 Apigee, APIGateway 微服务架构 2014~现在 微服务网关SpringCloudGateway,Kong 容器化,Serverless 2018~现在 云原生网关 Ambassador,Envoy 以开发者为中心 AI业务 流量入口及API经济 零信任安全 API优先的开发协同声明式规则配置 适配LLM负载API开放及货币化 API管控、异常调用 /篡改/注入防护全链路mTLS 阿里云API网关产品演进 按场景选择API网关和MSE网关融合成“云原生API网关” API网关-2016年商业化 •聚焦API管理及服务开 放,覆盖设计、开发、测试、发布、运维监测、安全管控、下线各阶段。 •帮助用户快速建设以API为核心的系统架构,将后端服务或数据对外开放并进行鉴权流控。 MSE网关-2021年商业化 •以路由为核心,兼容 K8sIngress标准,将传统流量网关和微服务网关功能合并。 •支持ACK和Nacos等多种服务发现方式,提供多种认证鉴权,以及自定义插件扩展能力。 云原生API网关-2024年7月公测,9月商业化 •深度集成ACK/MSE/FC/大数据服务,兼容K8sIngress标准,提供多种认证鉴权和安全防护方式,面向微服务和AI场景提供丰富的流量管控和插件功能。 •提供API全生命周期管理,帮助用户以统一规范进行API设计,并对多版本迭代、多环境发布进行有效的管理。 •提供API开放平台,助力用户管理API资产的开放、订阅、 鉴权、配额管理。(规划中) •实现多云场景下API及网关规则的统一管理。(规划中) 云原生API网关-助力网关架构升级 •将API管理、Ingress网关、微服务网关融为一个产品,对接多种后端服务。用户只需按业务划分网关实例,无需维护多种网关技术栈,业务请求链路更短。 60%100%100% C端用户 B端合作方 C端用户B端合作方 公网 内网 Ingress 网关 Ingress网关 公网 B端业务 网关实例 C端业务网关实例 内网 云原生 API网关 微服务网关 微服务网关 Pod Pod Pod Pod Pod Pod Pod Pod 应用服务1 应用服务2 应用服务1 应用服务2 API网关 应用服务3 数据服务 应用服务3 数据服务 南北向流量东西向流量 云原生API网关介绍 •API经济 •API网关的创新 •全生命周期的API管理 •APIFirst设计实践 •案例与展望 APIFirst提升研发效率 •一次API定义,测试/预发/生产/灾备等多个环境可复用。API各个版本信息、发布记录一目了然。 •不同角色围绕在同一个平台操作,使用同一份API定义。避免多个系统及工具造成API规范不统一、版本错乱、文档不一致。 API设计者 后端 开发 云原生API 网关 前端 开发 测试工 程师 •同时适用于API优先的大型项目,及代码优先的小型项目。 YApi Insomnia Swagger Mock.js APIDoc JMeter Gatline Postman 线上发布 API定义 API优先 后端代码开发 前端代码开发 Mock 前后端联调测试 后端代码开发,API定义自动生成 前后端联调 测试线上发布 代码优先 前端代码开发 Mock API全生命周期管理 客户需求 •支持APIFirst开发模式,支持一套API定义发布到不同环境,对接不同后端 •在内外部系统合作中,支持API及接口级别的定义与管控 方案描述 •云原生API网关支持API定义及Swagger文件导入,同时支持配置Mock策略,可支持 APIFirst的开发模式。 •云原生API网关支持多环境管理,不同环境可归属于不同网关实例,实现一套API定义,发布至不同环境中,对接不同环境的后端服务。 •针对API及接口,支持设置不同的认证、流控策略,实现接口级别的访问管控 产品优势 •云原生API网关将API设计与运行解耦,可灵活适配APIFirst及CodeFirst开发模式。 •云原生API网关提供高性能数据面引擎,可将设计好的API直接发布到引擎上,实现API的快速对外暴露。 •云原生API网关集成多种云产品,如容器服务、函数计算FC、MSE注册中心等,可快速将不同后端服务的API发布至网关 API生命周期管理涉及功能点 API设计研发/测试发布上线运维监控升级迭代下线消亡 API管理过程中的主要工作 制订API规范:风格、参数、错误信息、安全要求等 •分析API调用现状 •下线API •API版本升级/回滚 •发布历史管理 •蓝绿发布 •API可观测。日志、 监控、告警、Trace •故障排错与恢复 •访问控制、限流 •安全/内网访问、API 调用权限、限流 •发布审批 •业务可用性保障:设定限流、熔断降级策略等 •协作:如前后台并 行开发 •更方便的API调用 •系统对接:多种后端服务、现有认证系统 •环境隔离。研发环境、预发环境、线上环境。 设计API:定义API对象、输入、输出,形成API文档 确定API认证方式 导入现有API定义 •控制台API设计 •Swagger导入导出 •Request/ResponseBodySchemaAI辅助生成 云原生 API网 关提供 •自定义域名、 •API日志查询 •API下线 •API版本管理 •发布历史管理 •版本切换 •灰度发布 •API日志收集与查询 •API监控与告警 •全链路追踪 •访问控制、流量控 制 •Mock •在线调试 •JWT、第三方鉴权对接 •多环境管理与发布 •API文档/多语言SDK •Mock数据AI生成 HTTPS •内网访问/公网访问、专线 •API鉴权 •流控、断路器 云原生API网关介绍 •API经济 •API网关的创新 •全生命周期的API管理 •APIFirst设计实践 •案例与展望 核心操作流程 通过API接口对外提供服务 创建或导入 API定义 配置 API策略 发布API 应用服务 已部署 应用服务未开发 创建网关 添加服务 开发并部署 后端服务 添加服务 配置 API策略 发布API 开发并部署 前端代码 Mock 创建网关 定义API及接口 通过路由(如Ingress)对外提供服务 配置 路由策略 发布路由 创建路由 元原生API 网关操作 开发及CICD 工具操作 通过路由对外提供服务(推荐步骤) 创建网关 是创建服务来源 对于注册在容器集群的服务,自研Multi-IngressController组件支持多容器集群复用同一个网关实 创建域名 ACK/ Na cos服务 将自定义域名CNAME至 环境二级域名 否 配置策略 限流/重写/超时/重试/跨域/… 配置鉴权 /黑白名单 创建路由添加服务 单服务/灰度/重定向 发布路由调试压测 根据日志/监控 调整服务及策略 通过ACK/MSENacos实例发现后端 FC/固定地址/DNS 服务 可直接添加 例。 配置告警 •方式一:在网关控制台完成整个配置流程。 •方式二:在网关控制台创建服务来源时监听 K8sIngress资源,在容器服务侧配置Ingress规则。 •容器集群内的服务及规则自动同步生效。 •原生兼容K8sIngress规范,且支持NginxIngress核心注解无缝转换。 设计API并通过接口对外提供服务(推荐步骤) 创建API 添加接口 创建网关 Mock 创建域名 ACK/ Nacos服务 是 创建服务 来源 •可在API管理页面进行API定义,或导入swagger文件。 配置授权 将自定义域名CNAME至环境二级域名 配置API策略 限流/重写/超时/ 重试/跨域/… 否 添加服务 通过ACK/MSENacos实例发现后端 FC/固定地址/DNS 服务 可直接添加 •API设计完毕后,研发以API文档为中心进行协同。 •应用开发完毕后,部署并添加服务至网关,发布API并进行测试。验证完成后进行生产部署及发布。