Netflix架构

 

视频巨头NetFlix云存储

使用亚马逊的公有云,两者形成公有云生态环节,互相促进,亚马逊将在Netflix成功方案推广给其他客户服务,Netflix则通过每晚占据全美60%网络下载量的巨大流量检验亚马逊云平台。

netflix 亚马逊


Netflix几个功能块

分发 CDN
存储 包括内存存储和磁盘存储
消息 效率协调。
计算 包括同步计算和异步并发计算
支付 各种支付接口
分析 数据挖掘分析


Netflix遭遇关系数据库瓶颈:

  • 内容 用户资料 产品模型等等都有存储,防止当机丢失。随着用户规模扩大,用户写入数据巨大,需要巨量存储
  • 传统的集中式关系数据库无法水平扩展,分布分区能力很差。
  • 一旦表结构改变,导致停机重启。

Netflix视频数据模型特点:

  • 用户资料 AAA
    多种格式媒体描述,flv MP4
    本地差异化内容
    中心统一推送内容
    用户本地触发内容
    特点:数据的主键比较容易获得。主要是用户主键和视频主键。


需要解决巨量登录Session

  • 用户登录后,必须在服务器保留Session,以确认其已经登录。
    Session数据在服务器间复制,效率差,影响服务器处理正向处理能力
    过去使用负载平衡器将用户发往其Session创建后的服务器,负载实际不均衡。
    容易导致集中式过程编程,一个服务干很多事情

云存储Session

  • Cassandra保存Session,易于修改。
    跟踪终端用户每次操作事件,记录在Session中,可作为其回放缓存。
    Cassandra前端再添加memcached,提高Seesion快速就近读取能力。
    最前端通过负载平衡球进行请求级别的分发。

迁移到健壮的协议

  • 云服务协议:REST + JSON
    支持单个请求包含复杂的数据类型。
  • Apache Avro:数据序列化更加快速,适合在http上更快交换数据。
  • REST结合OAuth

NetFlix持久化方案

  • 将Avro保存在memcached。包括定义
    节省空间,降低延迟(zigzag编码减少一半)
  • Avro能够使用JSon表达,由POJO产生。但是比较难,需要专门工具。

SQS消息中间件

  • 消息异步中间件,提供异步分布式处理能力。
  • 事件监听模式。发布者-订阅者。类似JMS,有Topic和Queue两种。
  • 可实现cron类型 繁重 巨大计算任务。

消息在视频制作流程应用

异步后弹性易于扩展

消息的订阅提醒服务


Amzon EC2

  • 弹性 多租户系统,可评估内存和CPU。
    底层使用IAAS虚拟化
    Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVirt 比较
    Map/reduce计算开源工具:GridGain;GigaSpace 和Hadoop。

Netflix重点自己整合运维监视管理工具

Netflix的监视界面AppDynamics

性能线程实时监视和评估

 

建立大规模的真实世界推荐系统Building Large-scale Real-world Recommender Systems - Recsys2012 tutorial
解剖了Netflix的个性化特点(“一切都是个性化”),在这篇PPT中谈了Netflix的数据模型(包括物流/线性回归,弹性网,矩阵分解和马尔可夫链),消费数据科学(用户离线和在线测试),

Netflix hystrix入门教程

如何基于开源构架设计一个视频平台?

 NetFlix测试Cassandra:-每秒百万次写 

美国视频巨头Netflix的云存储方案 

Netflix开源Hystrix

开源真正分布式实时大数据分析仓库Druid

Blitz4j - 可伸缩的日志框架

Apache Curator :让ZooKeeper使用更容易 

FaceBook大数据架构

集群专题

伸缩性scalable

大数据BigData

云计算Cloud