关于后端:巧用API网关构建大型应用体系架构

39次阅读

共计 5519 个字符,预计需要花费 14 分钟才能阅读完成。

简介:近期阿里云重磅公布了 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、整体架构

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

2.2、对立的域名接入与业务散发

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 网关上间接配置曾经在函数计算中定义的函数,间接抉择对应的服务和其中的函数即可,配置十分简便:

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,配置形式十分简便:

3.3、数据类型产品集成

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

3.3、云市场 API 类商品集成

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

API 网关在为用户生成调用 API 的 SDK 的时候,将用户本人 API 和在云市场上购买的所有 API 聚合在一起后生成一个对立的 SDK 供用户下载应用。

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

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

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

3.5、集成云监控

API 会主动将调用日志同步给阿里云云监控产品,用户能够在云监控产品上间接配置报警规定,监控报警的指标包含:Http 应答码,API 响应工夫,申请次数,流入流量,流出流量。如果须要对该 API 分组下的所有 API 利用雷同的报警规定,进入 API 分组详情页,点击详情页右上角的开启云监控:

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

3.6、全链路追踪平台

用户能够配置将调用日志上传到阿里云链路追踪平台,剖析全链路调用状况。链路追踪 Tracing Analysis 提供了残缺的调用链路还原、调用申请量统计、链路拓扑、利用依赖剖析等工具,能够帮忙用户进步开发诊断效率。

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

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 成为能力开放平台

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

6、总结

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

原文链接:http://click.aliyun.com/m/100…

本文为阿里云原创内容,未经容许不得转载。

正文完
 0