阿 里 云 CDN 技 术 演 进 之 路 阿 里 云 - 核 心 系 统 部 -Web 平 台 朱 照 远 ( 叔 度 ) 2014-12-19
大 纲 简 介 历 年 技 术 架 构 现 有 架 构 和 实 现
什 么 是 CDN 内 容 分 发 网 络 (Content Delivery Network) 在 不 同 的 地 点 缓 存 内 容, 通 过 负 载 均 衡 等 技 术 将 用 户 请 求 定 向 到 最 合 适 的 缓 存 服 务 器 上 获 取 内 容, 加 速 用 户 对 网 站 的 访 问 速 度
阿 里 云 CDN 的 特 点 和 优 势 稳 定 节 点 资 源 丰 富, 全 球 260+ 节 点 7Tbps 带 宽 处 理 能 力 技 术 领 先, 自 主 开 发 的 缓 存 调 度 安 全 业 务 管 理 等 系 统 安 全 全 网 部 署 安 全 防 护 模 块,1.6Tbps 的 DDoS 防 护 能 力 基 于 大 数 据 分 析, 快 速 准 确 识 别 攻 击, 实 时 阻 断 易 用 自 助 化 业 务 部 署, 全 程 无 需 人 工 审 核 可 通 过 Open API 管 理 低 成 本 按 需 计 费, 根 据 实 际 使 用 流 量 后 付 费
客 户 评 价 阿 里 云 CDN 除 提 供 卓 越 的 速 度 体 验 外, 同 时 提 供 企 业 级 的 安 全 防 护, 为 我 们 的 服 务 保 驾 护 航 7*24 小 时 的 售 后 工 程 师 快 速 响 应, 帮 助 业 务 健 康 持 续 的 增 长 崩 坏 学 园 阿 里 云 CDN 按 量 付 费 这 个 特 点, 让 我 们 避 免 像 传 统 视 频 业 务 那 样 一 次 性 投 入 高 额 成 本 同 时 OSS+CDN 的 方 案 完 美 解 决 我 们 海 量 内 容 存 储 和 分 发 的 业 务 场 景 趣 拍 阿 里 云 OSS 与 CDN 的 无 缝 连 接 为 CDN 的 卓 越 表 现 奠 定 了 基 础, 稳 定 可 靠 的 产 品 性 能 保 障 了 唱 吧 数 据 的 快 速 可 靠 访 问 完 善 的 售 后 服 务 也 保 证 了 问 题 的 快 速 解 决 唱 吧
历 年 技 术 架 构
阿 里 云 CDN 的 前 世 今 生 2008 年 ~2011 年, 淘 宝 CDN 由 淘 宝 技 术 部 发 起 为 淘 宝 网 提 供 服 务 2011 年 ~2014 年 2 月, 阿 里CDN 淘 宝 CDN 发 展 成 阿 里CDN 为 阿 里 巴 巴 集 团 所 有 子 公 司 提 供 服 务 2014 年 2 月~, 阿 里 云 CDN 阿 里CDN 发 展 成 阿 里 云 CDN 为 阿 里 巴 巴 集 团 所 有 子 公 司 提 供 服 务 同 时 将 自 身 的 资 源 技 术 以 云 计 算 的 方 式 输 出, 对 外 服 务
2009 年 之 前 2008 年 之 前 使 用 商 业 CDN 提 供 的 服 务 2008 年 淘 宝 技 术 团 队 开 始 自 建 CDN 商 用 软 件 不 能 满 足 大 规 模 系 统 的 需 求 采 用 开 源 软 件 与 自 主 开 发 相 结 合, 有 更 好 的 可 控 性 和 更 大 的 优 化 空 间, 系 统 上 有 更 高 的 可 扩 展 性 规 模 效 应, 研 发 投 入 都 是 值 得 的
2009 年 之 前 技 术 架 构 关 键 组 件 3DNS NetScaler Squid NetCache
2009 年 ~2011 年 规 模 2008-2009 年 67Gbps 14 个 节 点 2010 年 318Gbps 43 个 节 点 单 节 点 容 量 10G 2011 年 861Gbps 103 个 节 点 单 节 点 容 量 10G
2009 年 ~2011 年 的 技 术 架 构 关 键 组 件 GTM LVS HAProxy Squid
2012 年 ~2013 年 规 模 2012 年 2100Gbps 130 个 节 点 单 节 点 容 量 20-30G 2013 年 3400Gbps 230 个 节 点 单 节 点 容 量 40G
2012 年 ~2013 年 的 技 术 架 构 关 键 组 件 Pharos LVS HAProxy Traffic Server Tengine Swift
2014 年 ~ 全 球 30 个 国 家 260+ 个 节 点 7Tbps 服 务 能 力 储 备 1 机 柜 单 节 点 40Gbps 服 务 能 力 处 于 业 界 前 沿 的 开 源 技 术 研 究 及 开 发 阿 里 云 CDN 于 2014 年 2 月 正 式 对 外 提 供 服 务
现 有 架 构 和 实 现
阿 里 云 CDN 大 图
组 件 分 层
阿 里 云 CDN 的 大 脑 : 全 局 流 量 调 度
DNS 服 务 器 :Pharos 自 主 研 发 的 调 度 系 统, 可 控 性, 协 议 扩 展 性 都 更 好, 也 省 下 了 采 购 商 用 设 备 的 成 本 单 机 高 性 能, 支 持 百 万 级 别 的 域 名 支 持 多 级 的 策 略 调 度, 节 点 故 障 不 会 造 成 用 户 的 不 可 用 支 持 EDNS 扩 展 协 议 多 系 统 联 动, 与 安 全 防 御 系 统, 刷 新 系 统, 内 容 管 理 系 统 联 动 Portal,API,tcheck 等 多 种 管 理 方 式
实 时 调 度 系 统 :CMOS 数 据 化 的 调 度 流 量 完 全 可 控, 降 低 了 抖 动 造 成 的 带 宽 成 本 LDNS 级 别 节 点 级 别 的 流 量 预 测, 流 量 峰 值 到 来 前 提 前 应 对 精 确 准 实 时 的 流 量 调 度 平 均 误 差 小 于 15%, 精 度 可 以 到 5M 级 别 单 个 Local DNS 级 别 的 调 度 5 分 钟 级 别 的 准 实 时 调 度 质 量 准 确 度 的 提 升, 直 接 影 响 着 用 户 体 验 自 动 化 的 调 度 只 要 描 述 调 度 的 场 景, 设 定 约 束 条 件, 自 动 计 算, 生 成 适 应 的 策 略, 更 新 pharos
Pharos+CMOS 架 构
调 度 准 确 性 的 重 要 基 础 :IP 地 址 库 数 据 采 集, 多 个 数 据 源 数 据 运 算 与 评 估 ( 加 权 投 票 评 估 体 系 ) 对 各 个 数 据 源 的 数 据 质 量, 设 置 不 同 权 重, 进 行 投 票 权 重 的 设 置, 是 根 据 数 据 源 质 量 的 评 估 结 果 进 行 设 置, 质 量 高, 权 重 高, 否 则 相 反 根 据 淘 宝 包 裹 地 址 和 IP 做 数 据 校 验 根 据 上 次 的 结 果 进 行 迭 代
阿 里CDN 节 点 系 统 : 内 部 架 构 图 关 键 组 件 LVS 做 四 层 负 载 均 衡 Tengine 做 七 层 负 载 均 衡 安 全 业 务 逻 辑 处 理 Swift 做 HTTP 缓 存 高 性 能 cache 磁 盘 (SSD/SATA)
四 层 负 载 均 衡 :LVS DR 模 式 IN 的 流 量 经 过 LVS,OUT 的 不 经 过 负 载 均 衡 算 法 采 用wrr 双 LVS 做 Active-Active 互 备, 中 间 有 心 跳 监 测
七 层 负 载 均 衡 :Tengine 阿 里 基 于 Nginx 开 发 的 高 性 能 HTTP 服 务 器 已 经 开 源 于 :http://tengine.taobao.org 一 致 性 hash(consistent hashing) 提 高 命 中 率 降 低 抖 动 主 动 健 康 检 查 SPDY v3 支 持 SO_REUSEPORT 支 持 提 高worker 进 程 之 间 的 均 衡 性 降 低 CPU 使 用 热 点 对 象 发 现
阿 里HTTP 缓 存 服 务 器 :Swift 基 础 功 能 HTTP/1.1 协 议 proxy 功 能 内 存 缓 存 磁 盘 存 储 HTTPS 协 议 关 键 特 性 的 支 持 业 务 功 能 精 确 purge/dir purge/ 正 则 purge 鉴 权 X-Referer-Acl ESI+gzip 运 维 和 配 置 相 关 功 能 按 照 域 名 配 置 的 功 能 if 变 量 支 持 磁 盘 容 错 磁 盘 为 只 读 不 再 进 行 写 操 作 ; 磁 盘 不 可 读 将 磁 盘 摘 掉 丰 富 的 统 计 信 息
Swift 总 体 架 构 图 HTTP 处 理 引 擎 回 源 存 储 索 引 内 容 管 理 子 系 统
Swift 性 能 优 化 点 多 线 程 事 件 驱 动 网 络 模 型 减 小 线 程 间 上 下 文 切 换 内 存 命 中, 一 个 请 求 只 需 要 一 个 线 程 来 处 理 消 除 在 万 兆 网 卡 上 网 络 处 理 的 瓶 颈 304 的 请 求 没 有 Disk I/O 使 用trie 树 实 现 快 速 匹 配, 减 少 ACL 字 符 串 匹 配 使 用 完 美 hash 计 算 header id, 实 现 批 量 拷 贝 删 除 响 应 头 使 用libaio(Linux 内 核 AIO) 优 化 IO 操 作 大 文 件 分 片 不 同 片 可 以 分 到 所 有 的 磁 盘 上, 可 以 按 片 做 热 点 七 层 负 载 均 衡 热 点 cache 分 级 存 储 和 热 点 迁 移
Swift 的 文 件 存 储 系 统 TCOSS(Taobao Cyclic Object Storage System) 基 于 Squid 的 COSS 系 统 做 的 定 制 开 发 支 持 裸 盘 热 拔 插 COSS 对 象 访 问 导 致 平 均 2.13 次 I/O 访 问 TCOSS 对 象 访 问 导 致 平 均 1 次 IO 访
Swift 热 点 迁 移 算 法 三 层 存 储 内 存 SSD SATA 根 据 对 象 热 度 决 定 到 哪 层
Tengine+Swift 性 能 优 化 集 群 的 大 文 件 分 片 缓 存 功 能 基 于 HTTP 分 段 压 缩 算 法 利 用SPDY 的 多 路 复 用 技 术 减 少 三 路 握 手 和 慢 启 动 的 影 响 减 少 对 本 地 端 口 的 占 用 HTTP SPDY 对 比 QPS 33.5K 33.4K 基 本 相 同 User CPU 15.00 12.83 14.47%( 优 化 降 低 ) Sys CPU 16.20 12.77 21.17%( 优 化 降 低 ) Sirq CPU 10.04 8.48 15.53%( 优 化 降 低 ) Total CPU 41.25 34.10 17.33%( 优 化 降 低 )
TCP 协 议 栈 优 化 改 进 措 施 基 于 时 间 序 的 丢 包 发 现 机 制 主 动 的 丢 包 发 现 机 制 自 适 应 的 初 始 窗 口 更 激 进 的 拥 塞 避 免 算 法 更 小 的 连 接 超 时 时 间
TCP 协 议 栈 优 化 效 果 : 抗 抖 动
TCP 优 化 效 果 : 减 少 连 接 时 间
页 面 优 化 Trim: 去 除 页 面 的 空 格 回 车 换 行 TAB 注 释 等, 以 减 少 页 面 的 大 小 智 能 gzip: 某 些 用 户 的 浏 览 器 实 际 支 持 gzip 但 是 却 被 防 火 墙 或 者 proxy 给 改 掉 智 能 gzip 功 能 会 对 这 个 过 程 进 行 测 试, 从 而 允 许 gzip, 减 少 用 户 传 输 内 容 的 大 小 SDCH: 压 缩 算 法 优 化, 降 低 传 输 大 小 Combo: 组 合 多 个 JavaScript/CSS 文 件 成 一 个 请 求, 从 而 减 少 请 求 数 目
阿 里 四 层 防 攻 击 系 统 :AliGuard 基 于 DPDK 之 上 的 网 络 框 架 支 持 集 群 部 署 流 量 牵 引 四 层 DDoS 攻 击 防 护 DNS 攻 击 防 护
七 层 防 攻 击 :TMD 系 统 架 构
TMD 一 些 关 键 技 术 模 块 化, 如 防 CC 模 块 hotpatch 模 块 等 socketpair 实 现 多 进 程 间 配 置 更 新 通 知 共 享 内 存 hash 表 实 现 黑 白 名 单 漏 桶, 令 牌 桶 算 法 实 现 QPS 限 流 LRU, 红 黑 树 实 现 CC 统 计 算 法 多 线 程,libev 实 现 网 络 通 信 框 架
TMD 防 CC 攻 击 的 一 个 例 子 原 页 面60KB 攻 击 9 万 QPS 计 算 带 宽 41Gbps 实 际 节 省 200 倍
七 层 防 攻 击 :Web 应 用 防 火 墙 基 于 Tengine 的 模 块 (WAF) 高 效 的 规 则 匹 配 引 擎 防 止 攻 击 SQL 注 入 XSS Web Shell
可 运 维 性 改 进 海 量 域 名 管 理 Tengine 不 再 依 赖 配 置 文 件 HTTP 接 口 去 configserver 拿 域 名 对 应 的 配 置 lazy 更 新, 只 记 录 访 问 过 的 有 cache 时 间 失 效 接 口 不 需 要 reload
我 们 求 贤 若 渴! 一 流 的 技 术 环 境, 一 流 的 技 术 挑 战 招 聘 职 位 资 深 CDN 系 统 研 发 工 程 师 (C/C++) 资 深 Web 服 务 器 开 发 工 程 师 (C/C++) 资 深 Java 开 发 工 程 师 欢 迎 发 送 简 历 到 邮 件 :shudu@taobao.com 新 浪 微 博 :@ 淘 叔 度 来 往 : 叔 度