阿里巴巴高级技术专家,淘宝开放平台技术负责人 顾风胜 - 淘宝开放平台网关技术揭秘

澄飞航

2017/11/14 发布于 技术 分类

淘宝开放平台(TOP)成立于 2009 年,是国内最早做开放的公司之一,经过多年的发展,已经沉淀出一整套业界领先的开放平台网关技术体系,包括 API 网关、消息网关、数据网关,API 接入自动化,开放工厂等。目前是服务于整个阿里集团最大的开放平台,网关日均访问量数百亿,双十一峰值访问量达到千亿。本次演讲将主要从以下几个方面介绍淘宝开放平台网关的核心技术: 开放平台网关的组成部分,重点介绍整体的技术架构和业务架构; 网关技术分解,重点介绍 API 网关,包括网关的架构设计,访问控制,安全控制,异步请求,泛化调用等; API 接入自动化,如何做到 3 分钟完成一个标准 API 的开放,如何实现 SDK 自动生成,API 文档自动生成; 开放平台工厂,如何把平台的基础能力组件化,输出给各子公司,搭建自主品牌的开放平台。

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