巧用API网关构建大型应用体系架构

简介: 近期阿里云重磅发布了BizWorks一体化的云原生应用的开发和运营平台,内置阿里巴巴业务中台构建的最佳技术实践。它已经将API网关作为关键组件融入其中,并且基于API网关为用户提供能力开放平台。那么API网关是如何在BizWorks中起到作用?API网关在实际业务中又起到怎样帮助?本文就此展开详细说明。

近期阿里云重磅发布了BizWorks一体化的云原生应用的开发和运营平台,内置阿里巴巴业务中台构建的最佳技术实践。BizWorks提供的产品能力,普遍适用于企业云原生应用高效开发以及企业业务能力沉淀和复用的场景。BizWorks提供业务架构师一整套的可视化业务建模工具,极大提升设计效率;同时,基于这套建模产出,形成代码框架,让业务中台复杂的变成过程简化为填空题,减低开发难度、提升研发效率,并在部署环节完成设计与实现的一致性校验,保证实现质量。BizWorks已经将API网关作为关键组件融入其中,并且基于API网关为用户提供能力开放平台。那么API网关是如何在BizWorks中起到作用?API网关在实际业务中又起到怎样帮助?本文就此展开详细说明。


阿里云API网关是阿里云自研的一款高性能网关,主要面向公有云用户提供API托管服务、流控、认证、安全等能标准的API网关能力。阿里云的API网关原生对接了阿里云的非常多的标准云产品,能够将阿里云的多款产品聚合起来为用户提供一套整体解决方案,提供业务数据完全打通的能力强大的整套基础设施。本文详细描述了以API网关作为中枢的应用体系架构,用户可以参考本文快捷地搭建一套服务于大型应用的功能全面的服务器侧架构。


1、应用体系架构的主要诉求


我们运营一个成熟的APP,对服务器端大致有五种类型的主要诉求:


  • 处理业务类请求:处理用户自己业务系统的业务,比如客户端向服务器端发送的用户注册、登录、获取用户资料等请求,Web客户端向服务器端发送获取商品描述等请求;


  • 处理文件类请求:这个比较好理解,就是客户端向服务器端发送上传、下载文件的请求,比如图片,语音等多媒体文件;


  • 处理数据统计类请求:运营平台需要统计一些运营数据,业务大屏需要展示一些统计数据等,需要服务器端将业务数据经过聚合等处理后通过接口形式提供给Web客户端;


  • 调用三方接口处理特定请求:比如调用三方的人脸识别接口,三方的天气查询接口等专业接口;


  • 业务可监控,遇到异常情况可以自动报警对业务运行情况的监控和报警是一个服务器端架构必须要考虑的方面,


这五类主要诉求都能通过API网关原生集成阿里云的其他标准产品来统一完成,下面我们来讲讲具体如何实现。


2、API网关作为中枢的应用体系架构


2.1、整体架构

image.png


上图是利用API网关构建一个标准的APP服务器端架构图,我们可以看到API网关处于业务流量入口,原生集成了多款阿里云的标准产品。所有客户端的请求先发送到API网关,由API网关根据用户配置的API元数据将请求路由到不同的类型的后端实现不同类型的业务分发,API网关和这些后端类型产品是原生集成,默认内网通信,大幅降低用户配置难度的同时也提高了通讯效率。同时经过API网关的API调用日志都会被API网关实时同步到用户的SLS日志、云监控和ARMS业务监控中,大幅增强用户的业务监控与报警能力。


2.2、统一的域名接入与业务分发

image.png

API网关提供实用的域名与证书托管能力,用户可以将自有的域名和对应的证书托管到API网关上,所有的API均可以通过统一的自有域名对外提供基于HTTPS的服务,包括业务类请求,文件类请求和数据类型请求,由API网关将不同类型的API请求分发到不同的后端服务中去。API网关的域名与证书托管在业务接入方面为用户提供了一系列增强能力:


  • API网关提供基于标准的跨域插件配置能力,用户可以在自有域名上为不同API配置不同的跨域策略,便于将自己的API提供给第三方或者自有的其他域名在浏览器上进行调用;


  • API网关除了可以托管用户的单域名,还支持托管泛域名及其对应的SSL证书,适配利用泛域名提供业务的平台型业务,比如阿里的个人网盘业务就是使用的API网关进行的接入,API网关可以将泛域名的自定义部分作为参数传递给后端服务;


  • API网关支持HTTP2的接入,可以大幅提高和客户端之间的通讯效率;


  • API网关基于用户的不通需求提供三套不通的SSL接入算法选项,用户可以根据自己的业务安全级别来选择不通的安全策略;


  • API网关同时支持HTTPS双向认证(Mutual TLS authentication),在API网关验证客户端发送的SSL证书是否由用户的根证书颁发的。


3、融合多款标准产品提供整套基础设施


API网关除了可以对接用户自己的后端服务,还可以原生对接多款标准云产品,包括函数计算,OSS,及一系列数据类型的产品,用户可以轻易在控制台进行后端服务进行配置后就能完成对接,提供多款产品融合的强大综合服务能力。API网关与这些后端产品默认使用高效的内网通信。


3.1、函数计算集成


使用API网关与函数计算提供服务是业内标准的Serverless实现,可以充分利用API网关强大的接入能力和函数计算的代码托管能力和弹性收缩能力搭建大规模业务的Serverless服务器侧架构。Serverless架构大幅降低了用户的运维成本,将更多精力聚焦到业务逻辑的开发整合上,大大缩短开发周期。2019 年 双11 过后,世纪联华快速上云,将线上核心业务改造为全 Serverless 架构的中台模式,采用“函数计算+API 网关+OTS”作为计算网络存储核心,弹性支撑日常和大促峰谷所需资源,轻松支撑 618 / 双11 / 双12 大促。


用户可以在API网关上直接配置已经在函数计算中定义的函数,直接选择对应的服务和其中的函数即可,配置非常简便:


image.png


3.2、OSS集成


去年API网关原生集成了OSS产品,用户可以使用API网关对其客户端提供文件管理API。OSS产品本身就对用户提供了文件管理API,为什么还要通过API网关去暴露用户的文件管理API呢,主要有以下几条原因:


  • 用户可以在API网关为每个文件、文件夹设置跨域策略,在Web类场景非常实用;


  • 用户可以通过API网关为每个文件、文件夹设置访问控制策略,可以规定某些文件只能通过鉴权后才能访问,API网关提供的鉴权方式比较丰富,除了AK签名方式,还提供了JWT方式和BasicAuth方式,能适应更多的实际使用场景;同时也可以为每个文件设置IP黑白名单策略;


  • API网关提供了后端文件缓存功能,用户可以通过这个功能将热点文件缓存起来,大幅提升文件访问效率;


  • 统一的日志、监控、报警管理;


用户可以在API网关上直接选择已经在OSS中创建的Bucket,API网关允许将整个Bucket配置成一个API,配置方式非常简便:


image.png


3.3、数据类型产品集成


用户通过自建的应用或者在函数计算上托管的服务对客户端提供业务类请求API,业务数据存储在阿里云的云数据库内。API网关目前已经与Dataworks,Quick BI等大数据分析平台进行原生集成,同时也和数据管理服务DMS进行了集成。用户可以将自己的业务数据通过大数据分析平台得到分析后的数据,然后通过API网关将这些数据能力通过API的形式开放给自己的运营平台或者开放给第三方。Dataworks直接将API网关嵌入到自己的产品中,用户在DataWorks生成数据API默认通过API网关对外开放能力。用户可以在API网关控制台看到这些API,并对其进行精细化管理,比如绑定流控、访问控制等插件来适配不同的业务场景。


image.png


3.3、云市场API类商品集成


API网关与阿里云的云市场做了深度集成,云市场的API类商品都是通过API网关对其消费者提供服务。用户可以将自己的能力、数据通过云市场的API类商品形式上架到阿里云的云市场来获取收益,也可以在云市场上购买三方API类商品,将这些三方公司开发的特定的能力集成到自己的APP中去,比如非常实用的人脸识别API,身份证识别和认证API,天气类API,IP识别API等等,这些通用能力有专业的公司去开发,直接借力这些三方公司的专业能力可以节省自己的研发成本而获得专业的服务。


API网关在为用户生成调用API的SDK的时候,将用户自己API和在云市场上购买的所有API聚合在一起后生成一个统一的SDK供用户下载使用。


image.png


3.4、SLS日志同步与监控报警


用户可以通过配置,将所有经过API网关的调用日志同步到用户自己的SLS日志服务中去,通过SLS日志服务您可以进行实时日志查询、下载、多维度统计分析等,您也可以将日志投递到OSS或者MaxCompute进行远期备份或深度分析。用户还可以使用这些日志作为日志审计的数据源,日志审计是法律刚性需求,是客户安全合规依赖的基础,是一些项目的必选项,可以轻松通过配置实现。用户除了可以在日志中看到调用的基本信息,包括域名、调用者身份、调用耗时,应答状态码等基本信息外,还可以配置记录整个请求和应答,便于排查问题。


image.png


用户将API网关的调用日志同步到SLS后,就可以在SLS中配置监控报警项了,配置内容比较简单:


image.png


3.5、集成云监控


API会自动将调用日志同步给阿里云云监控产品,用户可以在云监控产品上直接配置报警规则,监控报警的指标包括:Http应答码,API响应时间,请求次数,流入流量,流出流量。如果需要对该API分组下的所有API应用相同的报警规则,进入API分组详情页,点击详情页右上角的开启云监控:


image.png


云监控报警可设置多级报警,阈值处于不同区间时,对应Critical 、Warning、Info三个不同级别,不同级别通过不同渠道发送报警通知。


image.png


3.6、全链路追踪平台


用户可以配置将调用日志上传到阿里云链路追踪平台,分析全链路调用情况。链路追踪 Tracing Analysis 提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具,可以帮助用户提高开发诊断效率。


image.png


配置好之后,就可以在全链路追踪平台上看到整个调用链每个节点的耗时情况了:


image.png


4、API网关自身核心能力


API网关除了提供API元数据和API生命周期管理能力外,在API调用环节贡献了一些主流架构中不可缺少的能力,以下任何一项能力要想做好都非常麻烦。API网关在线上为数万公有云用户提供服务的同时,也将自己的基本功打磨到好用的程度。


4.1、流控


流控是标准网关的基本能力,保护后端服务避免遭受过载请求的情况。API网关使用标准的令牌桶算法为用户提供多维度流控能力,下面是API网关提供的流控能力细项:


  • 支持API级别流量控制


  • 支持秒、分钟、小时、天等时间维度流量控制


  • 支持基于APP/用户维度流量控制


  • 根据请求参数(UserId等)、系统参数(IP等)设置流控策略


  • 使用标准漏斗算法,可以选择被流控请求缓存模式或立即返回模式


4.2、鉴权


API网关为用户提供多种形式的鉴权能力:


  • 通过托管用户的Public JWK实现对请求进行JWT认证,并将JWT解密出来的claim作为参数传给后端;


  • 在API网关生成AK/SK并且与API建立授权关系,客户端使用AK/SK对请求进行签名后才能调用授权后的API


  • 支持BasicAuth认证方式


4.3、缓存


用户将后端返回的应答缓存在API网关服务层面,有效降低后端的负荷,增加平滑度:


  • 支持根据请求参数、Header等维度来生成、获取缓存


  • 允许客户端通过Cache-Control头来影响缓存策略


  • 遵守后端应答中的Cache-Control头的约定来处理缓存


4.4、安全


API网关为用户的API调用提供多项安全保障:


  • 支持API级别IP黑名单和白名单


  • 支持前后端支持签名验证来确保请求在链路上不被篡改


  • 具备防重放能力,拒绝重放请求


  • 根据请求参数或上下文,来执行条件判断,用于过滤不希望传递到后端的请求


  • 支持读取JWT解密出来的claim中的参数作为判断条件来过滤请求


4.5、性能


  • API网关连接数和RPS支持无限制扩容


  • 专享实例中,请求在API网关的平均耗时为1ms


5、API网关融入BizWorks成为能力开放平台


image.png


API网关嵌入到DataWorks中,同时承接了BizWorks南北向流量和东西向流量的治理工作。商业能力上架的时候,商业能力下的所有API的元数据会自动注册到API网关,由API网关向外部开放其能力。开发者登录到运营平台的开发者门户去浏览搜索所有商业能力,查看商业能力的API定义,下载商业能力下所有API对应的SDK。API的调用数据也会同步到SLS中,BizWorks的能力运营数据平台会去分析调用数据,将调用数据中的价值挖掘出来,供决策人员参考。


6、总结


API网关是阿里云的一款在线上平稳运行六年多的成熟云产品,为广大用户提供标准的高性能网关服务,它除了能提供API托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等API各个生命周期阶段,还集成了阿里云的众多标准云产品,能够将众多云产品连接起来搭建成一个功能强大的、省心的服务器侧架构。API网关后端原生集成了OSS、函数计算、Dataworks等数据分析类产品,满足用户业务处理,文件处理,数据分析等基本诉求。API网关将调用日志同步给了SLS,云监控,全链路追踪平台,满足用户多维度业务监控报警的需求。API网关同时融入了阿里云最新发布的强大的云原生应用的开发和运营平台BizWorks,成为BizWorks的能力开发平台的核心组件。

目录
相关文章
|
6天前
|
存储 缓存 API
API接口详解及其在电子商务中的应用研究
通过这些内容的详细介绍和实际案例分析,希望能帮助您深入理解API接口及其在电子商务中的应用,提高系统的互操作性和用户体验。
42 14
|
1天前
|
供应链 搜索推荐 API
1688商品类目API接口的开发应用与收益
1688平台作为全球领先的B2B在线交易市场,提供了丰富的API接口,助力企业高效获取商品信息、优化供应链管理。本文聚焦1688商品类目API接口的开发应用,涵盖接口概述、环境配置、Python代码示例及实际案例,展示其为企业带来的显著收益,如提升运营效率、优化市场策略、降低成本和增强用户体验。通过合理调用API,企业可大幅提升竞争力。
18 7
|
5天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
2天前
|
JSON 数据挖掘 API
唯品会按关键字搜索 VIP 商品 API 接口的开发应用与收益
在电商蓬勃发展的今天,精准的商品搜索功能至关重要。唯品会的按关键字搜索VIP商品API接口通过高效、精准的检索,提升了用户购物体验和商家销售业绩。该接口基于RESTful架构,采用JSON格式交互,支持唯品会APP内搜索、第三方平台合作及数据分析等场景,显著提升用户活跃度与忠诚度,拓展销售渠道,增加收入,并挖掘数据驱动的商业价值,助力唯品会持续发展。
14 4
|
7天前
|
人工智能 运维 监控
发现API安全风险,F5随时随地保障应用和API安全
发现API安全风险,F5随时随地保障应用和API安全
23 7
|
10天前
|
人工智能 监控 安全
自学记录鸿蒙 API 13:骨骼点检测应用Core Vision Skeleton Detection
骨骼点检测技术能够从图片中识别出人体的关键骨骼点位置,如头部、肩部、手肘等,广泛应用于运动健身指导、游戏交互、医疗辅助、安全监控等领域。我决定深入学习HarmonyOS Next API 13中的Skeleton Detection API,并开发一个简单的骨骼点检测应用。通过理解API核心功能、项目初始化与配置、实现检测功能、构建用户界面,以及性能优化和功能扩展,逐步实现这一技术的应用。未来计划将其应用于健身指导和智能监控领域,探索与其他AI能力的结合,开发更智能的解决方案。如果你也对骨骼点检测感兴趣,不妨一起进步!
133 9
|
9天前
|
JSON API 开发者
Lazada 商品评论列表 API 接口:开发、应用与收益
Lazada作为东南亚领先的电商平台,其商品评论数据蕴含丰富信息。通过开发和利用Lazada商品评论列表API接口,企业可深入挖掘这些数据,优化产品、营销和服务,提升客户体验和市场竞争力。该API基于HTTP协议,支持GET、POST等方法,开发者需注册获取API密钥,并选择合适的编程语言(如Python)进行开发。应用场景包括竞品分析、客户反馈处理及精准营销,帮助企业提升销售业绩、降低运营成本并增强品牌声誉。
26 2
|
12天前
|
监控 搜索推荐 API
京东按图搜索京东商品(拍立淘)API接口的开发、应用与收益
京东通过开放商品详情API接口,尤其是按图搜索(拍立淘)API,为开发者、企业和商家提供了创新空间和数据支持。该API基于图像识别技术,允许用户上传图片搜索相似商品,提升购物体验和平台竞争力。开发流程包括注册账号、获取密钥、准备图片、调用API并解析结果。应用场景涵盖电商平台优化、竞品分析、个性化推荐等,为企业带来显著收益,如增加销售额、提高利润空间和优化用户体验。未来,随着数字化转型的深入,该API的应用前景将更加广阔。
56 1
|
13天前
|
安全 API 数据安全/隐私保护
速卖通AliExpress商品详情API接口深度解析与实战应用
速卖通(AliExpress)作为全球化电商的重要平台,提供了丰富的商品资源和便捷的购物体验。为了提升用户体验和优化商品管理,速卖通开放了API接口,其中商品详情API尤为关键。本文介绍如何获取API密钥、调用商品详情API接口,并处理API响应数据,帮助开发者和商家高效利用这些工具。通过合理规划API调用策略和确保合法合规使用,开发者可以更好地获取商品信息,优化管理和营销策略。
|
1月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。