写点什么

一站式入口服务:爱奇艺微服务平台 API 网关实战

  • 2019-12-07
  • 本文字数:2358 字

    阅读完需:约 8 分钟

一站式入口服务:爱奇艺微服务平台 API 网关实战

写在前面

在互联网业务微服务化改造过程中,按照以往的服务治理体系,各服务需要单独实现限流、鉴权、监控、日志等通用功能,构建入口时资源申请、工单批复、多系统配置等一系列流程对精力消耗极大,学习成本较高,开发者也很难通过全局视角对各服务入口统一管理。爱奇艺微服务平台应运而生,通过组件化和服务化,助力业务解耦,不同微服务独立部署、独立扩展,保证各服务模块边界稳固,帮助业务实现微服务化改造。

作为微服务平台最重要的边界组件,爱奇艺 API 网关诞生于 2016 年底,底层基于开源项目 Kong 实现,旨在为开发者提供稳定、便捷、高性能、可扩展的服务入口功能,一站式管理 API 配置和生命周期,对微服务治理具有重要意义。

关于爱奇艺微服务平台 API 网关

架构总览

类似 Nginx, API 网关通过域名、请求方法、路径匹配规则等定义一个 API,API 转发目标为开发者配置的一个唯一服务。Kong 基于 Nginx 实现,成熟稳定且性能可靠,并拥有灵活强大的插件机制,提供了诸如访问控制、限流、监控等功能。在此基础上爱奇艺技术团队结合内部系统开发了私有插件,以适配内部特殊需求。



API 网关采用靠近客户端的分布式部署方案,在各地区部署独立集群并就近解析;单个 API 网关集群通过负载均衡服务暴露。API 配置需要在多个集群内维护,因此爱奇艺技术团队开发了 API 网关控制器,统一负责集群管理、域名创建、DNS 绑定等操作,整体架构如下图所示。


基础功能

在 API 网关控制流架构设计中,微服务平台 API 网关模块通过内部系统集成及服务化实现,为开发者提供全部所需入口配置及管理功能,且无需代码侵入、工单申请等人工干涉,实现 API 创建即可用。API 网关支持认证、限流、访问控制等通用功能,结构如下图所示。


服务解析

请求进入 API 网关时,Kong 通过 DNS 向 Service Registry 查询服务实例列表,作为请求转发的 upstream。由于 DNS 缓存机制,需要在实例变更时及时清理缓存,确保请求访问至有效的实例。尤其是在私有容器平台 QAE(iQIYIAPP Engine)环境中,访问地址随实例变更而变化,为尽可能保证服务解析成功,系统之间需要完成一些联动。以 QAE 缩减应用副本数操作为例,过程大致如下图所示。


定向路由

API 网关以地域(外网服务则为地域+运营商)为依据配置 DNS 就近解析规则,尽可能靠近客户端;但在现实中,部分 API 考虑服务小运营商网络、靠近服务端等客观条件,或在某些时间段希望对部分地区的服务进行网络隔离。针对此类自定义路由的需求,API 网关为业务域名生成了虚拟网关域名(uuid.domain),如果开发者希望根据运营商配置目标集群,在将业务域名改绑至虚拟域名后即可实现定向路由,如下图所示。



此外,开发者可通过微服务平台配置服务路由解析规则,进一步控制流量至服务实例间路由关系,满足诸如蓝绿部署、缓存更新延迟低容忍等场景下,控制请求目标服务实例的需要。

容灾

作为流量入口,API 网关必须具备足够强大的容灾能力以应对可能的网络故障。除每个 Kong 节点自身及相关依赖的高可用配置之外,API 网关还实现了不同地域、运营商、数据中心、集群之间的多级互备,一旦出现网络故障,可以在最短时间内将流量切换到可用入口。此外,API 开发者认为某集群流量处理异常时,也可以利用虚拟网关域名自助切走流量。


另外,API 网关集群采用蓝绿部署策略完成功能升级等常规运维操作,接入流量前充分实现集群预热,同时提供版本回退、故障现场保留能力。将运维操作带给开发者的影响降至最低。

API 性能追踪

PI 网关提供了监控、报警、日志、调用分析等功能,可帮助开发者完成问题排查。通过接入日志系统,方便开发者筛查日志,以下图排查 499 问题为例,通过筛选发现,短时间内该接口被某外网 IP 频繁访问且请求时间较短,鉴于 nginx 499 状态码表示客户端主动断开连接,判断为疑似外网攻击。



此外 API 网关在消息转发阶段进行了埋点并接入了调用分析系统,开发者可通过分析消息调用链,根据慢响应详情进一步分析问题。以下图为例,开发者排查慢请求过程中,通过调用链分析发现耗时较大处标记是网络延迟。在进一步查看客户、服务端区域后发现,该请求为跨机房调用,服务部署在单个机房导致了该请求时延较高,开发者以此为依据对服务部署进行了调整。



与爱奇艺号的故事

爱奇艺号作为爱奇艺开放平台和内容体系里最重要的载体,为自媒体、网络大电影、网剧、儿童、动漫、教育、文学、漫画、直播等多种内容创作者提供服务。


为适应快速变化的应用场景,爱奇艺号在架构设计时选择了微服务化,拆分出多种自媒体、基础信息等微服务。其中很多服务在认证、限流、追踪、防黑产等方便有着一致的需求,如果单独实现,将导致开发及运维成本大幅度的上升。


为帮助爱奇艺号顺利完成微服务化改造,减轻开发和运维负担,API 网关结合爱奇艺号实际需求,利用 Kong 的插件机制开发或改进了帐号认证、限流、黑产拦截、信息追踪等一系列功能。目前,爱奇艺号使用 API 网关管理着数百个 API,并以此为统一入口连接数十个服务。此外利用 API 网关和 QAE 容器平台的容灾特性,通过多数据中心服务互备,提升了服务整体的稳定性。


总结与展望

API 网关为开发者提供了稳定的入口服务,现已维护超过 4000 个 API,持续吸引新旧业务接入。API 网关当前平均单日 API 访问量超过 300 亿、峰值 QPS 近 100 万。通过充分发挥插件扩展能力,为开发者提供监控、日志、调用链分析等高级功能,有效降低了维护及排障成本。


未来 API 网关面向混合云环境,为开发者提供更加灵活、便捷、高效、稳定的入口服务。


本文转载自公众号爱奇艺技术产品团队(ID:iQIYI-TP)。


原文链接


https://mp.weixin.qq.com/s?__biz=MzI0MjczMjM2NA==&mid=2247485845&idx=1&sn=8ca94a01410d1fbf85cb1eaadca29c3e&chksm=e97695b6de011ca02c9f438ec5246faa06ed176526022308269a2e867743254bfab9572263e9&scene=27#wechat_redirect


2019-12-07 08:003808

评论

发布
暂无评论
发现更多内容

MagicOS 8.0,焕新升级。

荣耀开发者服务平台

AI 智能化 智慧生活 honor 交互模式

Java Chassis 3技术解密:注册中心分区隔离

华为云PaaS服务小智

云计算 华为云

除了OneNote,还有什么值得推荐的手写笔记软件?

彭宏豪95

效率工具 在线白板 办公软件 笔记软件 boardmix

浅谈新一代账务系统的高可用演进思路

鲸品堂

运营商 计费模式 方案设计

字符串操作-逗号分割字符串转树形结构

alexgaoyh

自然语言处理 数据结构 字符串 数据预处理 树形

什么是二维码?带你快速了解二维码的原理

草料二维码

二维码 草料二维码 二维码生成器

深度好文:MySQL体系结构

伤感汤姆布利柏

在 zsh 中找不到刚刚安装的 MySQL 怎么破?

escray

MySQL

深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

小万哥

Python 数据库 程序人生 软件工程 后端开发

【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)

洛神灬殇

Docker 容器 后端 2024年第十二篇文章

公司想做一套数字化管理系统,该怎么做?

天津汇柏科技有限公司

数字化管理

OpenSPG 新版发布:新增大模型知识抽取,3 步快速搭建专属知识图谱

可信AI进展

知识图谱 大模型 LLM

左耳听风 - 程序员修炼之道「读书打卡 day 07」

Java 工程师蔡姬

读书笔记 程序员 个人成长 职业发展

QCA9882: The powerful engine of wireless LAN

wallysSK

让AI看见——Azure OpenAI GPT-4 Turbo with Vision体验

Bruce Talk

AI Azure OpenAI GPT-4 Vision

如何优化k8s中HPA的弹性速率

华为云开发者联盟

k8s 开发 华为云 华为云开发者联盟

华为联合伙伴发布《云端控制平台与物流自动导引车通用接口指南》

华为云开发者联盟

后端 物联网 机器人 华为云 华为云开发者联盟

如果公司业务需要频繁更换IP地址,应该如何处理?

Finovy Cloud

云计算 网络安全 IP IP地址 高防IP

宇宙的尽头是带货,大模型首战在营销

脑极体

AI

极狐GitLab 线下『 DevOps专家训练营』成都站开班在即

极狐GitLab

智算让大模型触手可及

百度Geek说

人工智能 Prompt

精选LED舞台租赁屏的七项关键要素

Dylan

产品 艺术 LED LED显示屏

六个案例搞懂间隙锁

Java随想录

Java MySQL

赋能虚拟教学革命,实时云渲染助力复旦大学打造元宇宙教学

3DCAT实时渲染

元宇宙 元宇宙解决方案 元宇宙教学

稳定性建设实践分享

木小风

稳定性

携获奖产品Crystal参加CES2024,高端头显品牌小派科技体验震撼全场

Geek_2d6073

Zynq7020 使用 Video Processing Subsystem 实现图像缩放

芯动大师

淘宝拍立淘图片搜索接口:轻松找到同款商品!

tbapi

淘宝图片搜索接口 淘宝拍立淘接口 淘宝图片搜索API

一站式入口服务:爱奇艺微服务平台 API 网关实战_技术管理_弹性计算团队_InfoQ精选文章