UpYun CDN
INTRO
2013.08.25
Numbers
全国 53 个节点 / 200 多台服务器
平均每节点承载 300m+ 带宽 / 大节点承载 1g+ 带宽
200+ 个 Nginx / 平均每个 Nginx 承载 100m+ 带宽 / 1800+ qps
Softwares
Nginx
Apache Traffic Server / Squid
Development
Nginx/
防盗链
流量统计
一致性哈希
缓存调度
防攻击
外围功能:
防盗链模块
问题:
域名太多 (2w+)
防盗链规则复杂、数量多
把规则写入 nginx.conf 不现实
1. 数量庞大
2. 需 -s reload 重启
解决方案:
流量统计模块
问题:
53个地方节点 / 200多台服务器
以1800/qps计算
每秒产生40多万条访问记录,接近200MB数据
如何才能实时按空间计算流量?
解决方案:
利用前端CDN节点服务器进行初步计算、汇总
每间隔分钟上报数据中心进行合并输出
数据量缩小到之前的千分之一
一致性哈希
问题:
Nginx upstream 负载均衡随机性
因此降低缓存命中率
且浪费存储空间
解决方案:
注意事项:
缓存调度
问题:
如何提高小文件的读写性能?
区分大小文件 / 区分冷热文件
解决方案:
Nginx 上存有200万条热门记录
可把SSD磁盘完全消化
防攻击模块
跟缓存调度模块算法一样,
但是把超过正常阀值的记录做 444 禁止访问处理
另有访问频率控制模块,
可自定义计算器算法,可把访问量控制在一个稳定的阀值内
Additional
- 缓存刷新系统
(多层加速架构,刷新任务量庞大)
- 访问统计 (Hadoop)
- 访问日志
(主要是按空间/时间对 CDN 节点的日志文件进行合并和切分)
- 镜像 CDN 系统
- CDN 文件处理(缩略图/音频压缩)
- CDN DDoS 防护
Future
- 运维自动化
- 节点服务标准化
- 软件标准/中心化
- 监控自动化
- 灰度更新