Utilice hábilmente API Gateway para crear una arquitectura de aplicaciones a gran escala

Introducción: Recientemente, Alibaba Cloud ha lanzado BizWorks, una plataforma integrada de operación y desarrollo de aplicaciones nativas de la nube, con mejores prácticas técnicas integradas para la plataforma intermedia de negocios de Alibaba. Ha integrado la puerta de enlace API como un componente clave y proporciona a los usuarios una plataforma abierta de capacidad basada en la puerta de enlace API. Entonces, ¿cómo funciona API Gateway en BizWorks? ¿Cómo ayuda la puerta de enlace API en los negocios reales? Este artículo amplía esto en detalle.

Recientemente, Alibaba Cloud lanzó BizWorks, una plataforma integrada de desarrollo y operación de aplicaciones nativas de la nube, con las mejores prácticas técnicas integradas de la plataforma intermedia de negocios de Alibaba. Las capacidades del producto proporcionadas por BizWorks son generalmente aplicables a los escenarios de desarrollo eficiente de aplicaciones nativas de la nube empresarial y la precipitación y reutilización de las capacidades empresariales empresariales. BizWorks proporciona un conjunto completo de herramientas de modelado de negocios visuales para arquitectos de negocios, lo que mejora en gran medida la eficiencia del diseño; al mismo tiempo, en función de este conjunto de resultados de modelado, se forma un marco de código, que simplifica el complejo proceso de la oficina central de negocios en complete las preguntas en blanco y reduzca los costos de desarrollo Dificultad, mejore la eficiencia de I + D y complete la verificación de consistencia del diseño y la implementación en el proceso de implementación para garantizar la calidad de la implementación. BizWorks ha integrado la puerta de enlace API como un componente clave y proporciona a los usuarios una plataforma abierta de capacidades basada en la puerta de enlace API. Entonces, ¿cómo funciona API Gateway en BizWorks? ¿Cómo ayuda la puerta de enlace API en los negocios reales? Este artículo amplía esto en detalle.

Alibaba Cloud API Gateway es una puerta de enlace de alto rendimiento desarrollada por Alibaba Cloud. Proporciona principalmente servicios de alojamiento de API, control de flujo, autenticación, seguridad y otras capacidades de puerta de enlace API estándar para usuarios de la nube pública. La puerta de enlace API de Alibaba Cloud se conecta de forma nativa con muchos productos de nube estándar de Alibaba Cloud y puede agregar múltiples productos de Alibaba Cloud para proporcionar a los usuarios un conjunto de soluciones generales y un conjunto completo de infraestructura con una poderosa capacidad para conectar completamente los datos comerciales. Este artículo describe en detalle la arquitectura de la aplicación con la puerta de enlace de la API como centro. Los usuarios pueden consultar este artículo para crear rápidamente una arquitectura del lado del servidor con todas las funciones para aplicaciones a gran escala.

1. Las principales demandas de la arquitectura de aplicaciones

Operamos una aplicación madura, y hay aproximadamente cinco tipos de demandas principales en el lado del servidor:

  • Procesar solicitudes comerciales: procesar el negocio del propio sistema comercial del usuario, como solicitudes de registro de usuario, inicio de sesión y adquisición de información de usuario enviada por el cliente al servidor, y solicitudes del cliente web para obtener descripciones de productos y otras solicitudes para el servidor;

  • Manejo de solicitudes de archivos: Esto es fácil de entender, es decir, el cliente envía solicitudes al servidor para cargar y descargar archivos, como imágenes, voz y otros archivos multimedia;

  • Procesamiento de solicitudes de estadísticas de datos: la plataforma de operación necesita contar algunos datos operativos, y la pantalla grande del negocio necesita mostrar algunos datos estadísticos, etc., y el lado del servidor necesita agregar los datos comerciales y proporcionarlos al cliente web a través de una interfaz. ;

  • Llame a la interfaz de terceros para procesar solicitudes específicas: por ejemplo, llame a la interfaz de reconocimiento facial de terceros, la interfaz de consultas meteorológicas de terceros y otras interfaces profesionales;

  • El negocio se puede monitorear y se puede alarmar automáticamente en caso de condiciones anormales.El monitoreo y las alarmas de la operación comercial es un aspecto que se debe considerar en una arquitectura del lado del servidor.

Estas cinco demandas principales se pueden unificar a través de la integración nativa de la puerta de enlace API con otros productos estándar de Alibaba Cloud.Hablemos de cómo lograrlo.

2. Puerta de enlace API como arquitectura de aplicación central

2.1 Arquitectura general

La imagen de arriba es el uso de la puerta de enlace API para construir un diagrama de arquitectura del lado del servidor de la aplicación estándar. Podemos ver que la puerta de enlace API está en la entrada del tráfico comercial e integra de forma nativa una variedad de productos estándar de Alibaba Cloud. Todas las solicitudes de los clientes se envían primero a la puerta de enlace API, y la puerta de enlace API enruta las solicitudes a diferentes tipos de backends de acuerdo con los metadatos de la API configurados por el usuario para implementar diferentes tipos de distribución comercial.La puerta de enlace API y estos productos de tipo backend son nativos integrado Por defecto, la comunicación de Intranet reduce en gran medida la dificultad de configuración del usuario y mejora la eficiencia de la comunicación. Al mismo tiempo, los registros de llamadas API que pasan a través de la puerta de enlace API se sincronizarán con el registro SLS del usuario, el monitoreo en la nube y el monitoreo comercial ARMS en tiempo real mediante la puerta de enlace API, lo que mejora en gran medida las capacidades de alarma y monitoreo comercial del usuario.

2.2 Acceso unificado de nombres de dominio y distribución de servicios

API Gateway proporciona capacidades prácticas de alojamiento de certificados y nombres de dominio. Los usuarios pueden alojar sus propios nombres de dominio y los certificados correspondientes en API Gateway. Todas las API pueden proporcionar servicios basados ​​en HTTPS a través de un nombre de dominio propio unificado, incluidas las solicitudes comerciales. , tipo de archivo solicitudes y solicitudes de tipo de datos, la puerta de enlace API distribuye diferentes tipos de solicitudes API a diferentes servicios de back-end. El alojamiento de nombres de dominio y certificados de API Gateway proporciona a los usuarios una serie de capacidades mejoradas en términos de acceso empresarial:

  • API Gateway proporciona capacidades de configuración de complementos de dominio cruzado basadas en estándares. Los usuarios pueden configurar diferentes políticas de dominio cruzado para diferentes API en sus propios nombres de dominio, lo cual es conveniente para proporcionar sus propias API a terceros u otros nombres de dominio propios para llamar en el navegador;

  • 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的能力开发平台的核心组件。

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

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

Supongo que te gusta

Origin juejin.im/post/7117190157068927006
Recomendado
Clasificación