淘宝开放平台网关技术解密

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. Alibaba Group 淘宝开放平台网关技术揭密 顾风胜
2. Alibaba Group 目录 01 | 开放平台概览 02 | API网关介绍 03 | API接入自动化 04 | 开放平台工厂 05 | 开放平台安全
3. Alibaba Group 第一部分
4. Alibaba Group 开放平台大图 服务 市场 门户 生活导购 无线应用 百万级 开发者 百川 开放 千牛插件 C2B定制 互动插件 千牛 开放 手淘 开放 SAAS软件 ERP/WMS/CRM 聚石塔 电商云 千级应用 亿级订单/天 90%+ 淘宝卖家 授权使用 百万级 上线应用 放 5000+ API 百亿级/天 综合业务 内部 应用 安 开 全 阿里 开放平台 1000+ Topic 百亿级/天 授权使用 98%+ 天猫商家 tasp 淘系 阿里云 菜鸟网络 支付宝 B2B …
5. Alibaba Group 开放平台技术架构 共享服务 数据推送 发票平台 千牛平台 二方应用 ISV控制台 文档中心 支持中心 沙箱环境 三方应用 应用层 运营管理 SDK 应用接入层 数据中心 HTTP1/2 控制中心 计费中心 授权中心 数据访问 API 协议 消息 协议 协议转换 访问控制 API接入 API编排 HSF 阿里集团 WebSocket 安全控制 服务调用 API管理 API统计 Dubbo HTTP Notify 蚂蚁金服 菜鸟网络 合作公司 SPI 协议 协议层 HTTP1 日志统计 流程与工具 网关层 服务接入层 Map/Reduce 大数据 服务层
6. Alibaba Group 开放平台产品架构 用户 ISV 面 向 开 发 者 提 供 应 用 生 态 闭 环 门 户 首 页 业务 定制门户 支 持 中 心 组 件 API接入 API 文 档 组 件 开 发 者 社 区 iOS/Android市场 分发 APP 订购 开放平台 统一门户 文 档 中 心 组 件 下载 淘宝服务市场 发布 开发、测试、部署、上线、监控 开 发 者 控 制 台 服务端 SDK 移动端 SDK API网关 + 消息网关 + 数据推送 + 登录授权 数据中心 面向服务提供方(ISP)提供一站式API接入与管控平台 沙 箱 环 境 外部 云环境 聚石塔 + EWS 运营管理 ISP
7. Alibaba Group 第二部分
8. 如何打造高可靠的API网关 API请求全异步化 API元数据无阻塞调用 API网关升级插件化 API访问控制透明化 丰富的API流量控制 API弱网高效访问 Alibaba Group
9. Alibaba Group API网关技术架构 三方应用 内部应用 通讯协议 HTTPS HTTP/1 HTTP/2 HSF 网关协议 API协议 其他协议 日志与监控 权限控制 Local Cache Database 批量协议 访问控制(LBAC) HDCC Remote Cache 消息协议 数据 源 流量控制 黑白名单 安全控制 参数校验 参数映射 参数转换 服务调用 日志打点 服务协议(Mapping) HSF 阿里集团 HTTP DUBBO 蚂蚁金服 其他 菜鸟网络 调用记录查询 日志 上传 实时分析统计 离线分析统计
10. Alibaba Group API网关部署架构 https://eco.taobao.com http://gw.api.taobao.com http(s)://apigw.taobao.com HTTP1.1短连 HTTPS短连 HTTP2(C/S)长连 LVS Cluster VIP Group1 VIP Group3 VIP Group2 SSL Proxy Cluster AServer Cluster Nginx Nginx with VipClient with VipClient HTTP短连 API Gateway Cluster HTTP短连 API Gateway API Gateway API Gateway Nginx Nginx Nginx HTTP短连 HTTP短连 Jetty HTTP短连 Jetty Jetty HSF/Dubbo长连接 Internal Service Cluster IC TC LC UC …
11. Alibaba Group API请求全异步化 API Gateway API Gateway Jetty IO Thread Jetty Servlet Thread Pool APP 3 1 2 1 APP 5 2 4 core*2 500 API Gateway Jetty IO Thread Jetty Servlet Thread Pool 500 sync async API Worker Thread Pool RPC/HTTP IO Thread 3 APP 2 1 4 6 5 core*2 API Worker Thread Pool Jetty Servlet Thread Pool 500 core*2 200 释放网络等待引起的线程占用,线程数不再成为网关的瓶颈 彻底隔离API请求之间的影响,慢API不会引起网关的不稳定 200
12. Alibaba Group API元数据无阻塞调用 ISV APP Nginx API Gateway API信息 APP信息 权限包 信息 布隆过滤器(QPS上千万) ACL 本地缓存(QPS上千万) HDCC 用户授权 信息 本地调用 本地调用 BloomFilter LRUMap RPC LOG 分布式缓存 (QPS几十万) ISP RPC调用 (QPS几万) 远程调用 远程调用 RDS 消灭99.9%的IO等待,CPU只用于计算资源 网关耗时降低到1~2毫秒,较少的DB资源支持高并发 Cache DB
13. API插件化体系 — Alibaba Group 运行时升级网关 分流插件 自定义分流规则 API请求 协议识别 签名插件 入参重写插件 远程 调用 入参 检验 校验APP 校 验 权 限 黑白名单 校验授权 自定义入参检查规则 调用地址重写插件 结果转换 API分流 流控插件 自定义流控规则 流量 控制 入参 转换 校验API 出参重写 日志打点 API响应
14. API访问控制体系 — Alibaba Group LBAC Role Based Access Control(RBAC) 举例:getUser接口只允许 官方应用从内网发起调用 聚石塔 API请求 淘宝助理 getUser 主体 规则指派 APP/API 规则 标签 规则校验 规则校验 官方+内网 官方+内网 访问允许 控制 控制指派 操作 目标 会话 API请求 标签计算 官方、内网 访问拒绝 Label Based Access Control(LBAC) API请求 getUser 标签计算 官方 进 化 阿里内网 淘宝助理 好处:透明化、可复用、热生效
15. Alibaba Group API流量控制 流控类型 基本 流控 流控场景 API流控(支持QPS、QPD) 流控手段 集中流控 (QPS超过百万要分片) 高于 运营 流控 APP流量包(支持QPM) APP + API/Group的流量包(支持QPM) APP + API + User的流控(支持QPS) 集中流控 高于 大促 流控 APP访问API的权重流控(支持QPS) 单机流控 降级
16. Alibaba Group API弱网环境调用优化 调用优化 网络优化 HTTP1.1长连 ATS A-synchronize Task Service 异步任务服务 TQL Taobao Query Language 淘宝查询语言 SPDY3.X HTTP2C/S HTTP DNS API Proxy 批量API 异步 请求 并行 任意组合 响应
17. Alibaba Group 第三部分
18. 如何打造高效的API接入管理平台 持续的演进 低学习成本 零二次开发 零测试成本 强一致性保证 完善的监控与统计 Alibaba Group
19. Alibaba Group API接入自动化演进 纯手工(2009年) 半自助(2011年) 全自助(2015年) 学习 无从下手,只能找人 看文档和教程 流程化接入,无学习成 本 编码 依赖业务方Jar包,手写 依赖网关Jar包,手写 零依赖,零编码,支持 XML与JSON映射 Mapping,配置Spring HSF、Dubbo、HTTP 联调 远程Debug,手写HTTP 部署应用,部署API, 智能部署,自动化测试 代码调用API API测试工具 审核 无 靠自觉,旺旺电话催 BPM流程、移动审批 发布 与应用一起发布 开放平台小二发布API 自主发布,灰度发布, 一键回滚 文档 手工写Wiki文档 自动生成(对外文档) 自动生成(对内文档, 对外文档,PDF文档) SDK 手工写JAVA SDK 自动生成(.NET&JAVA) 自动生成,Maven自动 上传,主流语言支持 一个月 一周 一天
20. API接入低学习成本 — Alibaba Group 流程化与自助化 服务注册 参数映射 多环境测试 测试用例 规范审核 数据对外 自动化 批露审核 访问控制 一键生成 预发回归 沙箱环境 安全审核 策略审核 (TAML) 自动化 自动构建 API录入 API测试 API审核 Beta发布 API升级 API上线 API启用 线上回滚 API 监控与统计 API下线 API统计 回收权限 API 使用与管控 APP统计 SDK生成 API流控 多维度统计 下线监控 开放大盘 文档生成 API权限 回收流控 用户统计 回收配置 正式发布 监控告警
21. API接入的零二次开发 — Alibaba Group 映射中央化 后端服务 TOP SDK Request Response TOP网关 HTTP URL Parameters 访问控制 Top Mapping MethodCall Parameters 反射调用 HSF服务 MethodResponse Json/Xml Json/Xml Object Result  依赖网关的jar包  编写Mapping文件  配置Spring服务 中央化 TOP网关 后端服务 TOP SDK HTTP URL Request Response 访问控制 参数转换 Json/Xml Map Map Top Mapping Request Response Struct Map 泛化调用 HSF/DUBBO/HTTP服务 Result Map 零依赖零配置, Mapping文件自动生成
22. API变更零测试成本 — Alibaba Group 回归测试自动化 线上请求 ISP提交API测试 线上 环境 API请求流程 预发 环境 API正式网关 Mock返 回值 回归测试工具 API 入参 关键点: 请求拦截器 API 网关 消息监听器 配置规则 入参映射 线上参数 线上结果 命中规则 请求复制 公网消 息队列 RPC 入参 消息处理器 ISP线上服务 • • • • • 线上请求复制到预发 自动生成测试用例 API请求重放(读API) API结果Mock(写API) API测试结果比较 优势: RPC 服务 读执行器 写执行器 线上参数 反推RPC出参 重试请求 API预发网关 ISP预发服务 N RPC 出参 出参映射 ISP预发Mock Y 结果比较器 测试报告 API 出参 • • • • 测试用例全面 快速发现问题 零测试成本 变更稳定性保障
23. API元数据强一致性保证 — Alibaba Group 自动化生成文档、SDK、工具 RPC服务 对内文档,对外文档,离线文档 API 元数据 Java/C#/PHP/Python/C/C++/NodeJS API文档自动生成 API描述 API入参 API出参 API请求示例 SDK自动生成 多语言SDK模板 Core + Req + Rsp + Domain 多语言SDK编译 JDK, Mono, Zip 多语言SDK打包 API响应示例 API错误码解释 多语言SDK下载 API测试工具自动生成
24. API接入自动化演示 — 三分钟接入一个API Alibaba Group
25. Alibaba Group 第四部分
26. 开放平台工厂 — 多租户与配置化门户(前端) Alibaba Group Header oAuth登录 开发者(ISV) 开发者门户 开发者控制台 文档中心模块 开发者管理 首 页 + 产 品 页 普通 文档 组件 文档 首页 接 口 文 档 组 件 支 持 中 心 组 件 开 发 者 社 区 导航(首页、产品、文档、支持、社区) 淘宝账号 三方账号 多租户配置化门户 申请入驻 身份管理 信息维护 API收费 Footer 应用管理 应用创建 应用设置 权限申请 SDK下载 自建账号 SSO登录 支持中心模块
27. 开放平台工厂 — Alibaba Group 定制化开放与垂直化管理(后端) 服务提供方(ISP) API开放 API协议 消息协议 运营管理 业务开放策略 SPI协议 API接入 访问控制 开发者管理 应用管理 API文档 多语言SDK 文档管理 API管理 测试工具 网关域名 工单管理 通知中心 通用工具与服务 数据统计&用户画像 定制化开放与垂直化管理 垂 直 权 限 划 分
28. Alibaba Group 第五部分
29. Alibaba Group 开放与安全 开放 安全 易用、灵活 难用、限制
30. Alibaba Group 安全控制手段 网关安全 数据安全 应用安全 用户身份认证(OAuth2) 对外数据披露审批流程 ISV入驻规范、安全技术要求 API协议安全(SSL、防篡改、防重放) 数据分级(API级,字段级) APP创建申请、API权限包申请 API权限控制(APP级,用户级) 数据脱敏(模糊化) 应用安全配置(IP绑定、用户绑定) 多维度流控(APP+API+User) 数据混淆(Open Security ID) 应用安全扫描(黑盒扫描、白盒扫描) 黑白名单控制(应用级、用户级) 数据加密(API响应,RDS数据) 安全托管环境(聚石塔、千牛、TAE) 日志打点与分析(API级、字段级) 安全保镖(行为监控,异常报警) 人机识别防刷(无线安全保镖)
31. 《尽在双十一》 Alibaba Group
32. Alibaba Group 联系作者:winwindg 诚邀志同道合的朋友加入淘宝开放平台:fengsheng@alibaba-inc.com

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-26 12:43
浙ICP备14020137号-1 $Carte des visiteurs$