写点什么

Netflix 企业文化与架构设计

  • 2015 年 11 月 23 日
  • 本文字数:2273 字

    阅读完需:约 7 分钟

高可扩展性一直是信息产业相关的公司在快速发展过程中所需要面对的问题。MaxCDN 的首席执行官、ScaleScale 的创始人 Chris Ueland 近日给出了关于 NetFlix 高可扩展性背后的技术架构的报告,本文主要总结和介绍 Chris 提到的企业文化和架构设计方面,希望读者可以从中有所借鉴。

随着我们越来越深入的研究扩展性的问题,我们越来越关注 Netflix。他们很愿意分享他们的故事。此文章是在 Bryan 的帮助下,根据互联网上的信息整理得来。如果你希望阅读此方面信息,我们会继续追加相关内容。否则,文章就到此为止了!
——Chris

Netflix 是如何发展壮大的?

Netflix 是由 Marc Randolph 和 Reed Hastings 在 1997 创建的。公司位于加州的斯科茨谷,初始拥有 30 个固定员工和 925 个临时工。目前,作为世界上领先的互联网电视网络,Netflix 每月为 50 个国家的 6 千 9 百万订阅者提供了超过百亿小时的 TV 节目和电影。该公司非常透明,放置了很多的信息在网上。例如,Netflix 的总体技术架构可以分为应用与数据、业务工具、基础服务、研发和 Open Connect CND 五个大类。如上图所示,每一个大类都包含了若干核心工具或项目。

重要通知:接下来 InfoQ 将会选择性地将部分优秀内容首发在微信公众号中,欢迎关注 InfoQ 微信公众号第一时间阅读精品内容。

Chris 收集并分享了他认为最有意思的内容:Netflix 技术栈高可扩展性的秘密主要包含高可扩展性的企业文化、倚重多种 Amazon 服务、支持多种设备、自身研发的 Netflix Open Connect CDN 以及高可扩展算法等。

高可扩展性的企业文化

Netflix 有一份有关企业文化的著名演讲。该演讲包含了 Netflix 对于 HR 的重新思考。而这些想法正是指导了 Netflix 以后在人员方面的扩展。以下为该演讲的部分内容。从中,读者可以理解 Netflix 如何扩展其软件栈,而这些软件栈为什么可以很好的工作。

如上图所示,Netlfix 注重的是员工的实际工作成果,而非工作时间。不管员工付出努力的多少,只要成果能够获得公司认可,Netflix 就愿意给予较高的薪水或奖金。

而且,Netflix 更多的希望员工能够参与到策略或者决策中,清楚知道项目的来龙去脉和自己在项目中的定位。
点此,读者可阅读演讲的全文。

倚重多种Amazon 服务

Netflix 的框架运行在 Amazon EC2 中,其数字电影的主要拷贝存储在 Amazon S3 中。根据视频分辨率和音频质量,Netflix 需要将每一个电影利用云端编码为 50 多个版本。因此,共计超过 1PB 的数据存储在 Amazon 中。这些内容通过内容传输网络(CDN)发送到不同 ISP 中。

Netflix 在其后端采用了包括 Java、MySQL、Gluster、Apache Tomcat、Hive、Chukwa、Casandra 和 Hadoop 等在内的很多开源软件。

支持多种设备

在 Netflix,不同编译码器和比特率的组合意味着,相同内容需要经过 120 次不同的编码才能被发送到流平台中。

尽管 Netflix 采用了自适应的比特率技术来调整视频和音频质量,以适应客户的下载速度,他们还额外提供了在网站中手动选择视频质量的选项。

用户可以通过计算机、DVD、蓝光播放器、HDTV、家庭影院系统、手机和平板电脑等任何包含 Netflix 应用的联网设备来观看视频。

为了适应不同设备和连接速度,Netflix 提供了以下编解码方式:

Netflix Open Connect CDN

Netflix Open Connect CDN 用于拥有超过 10 万个订阅者的大型 ISP。为了减少网络传输代价,ISP 的数据中心中专门包含了低功耗、高存储密度的 Netflix 内容缓存器。该缓存器运行 FreeBSD 操作系统、nginx 和 Bird 互联网路由程序。

点此可观看有关Open Connect 的视频。

高可扩展算法

在2009 年,Netflix 举行一场名为 Netflix Prize 的竞赛。该竞赛提供了大量匿名数据供参赛团队参考并推导出更好的算法。最终,Netflix 利用此竞赛的获奖作品将其算法效率提高了 10.06%。本来,Netflix 准备再次举行类似的比赛。但是,因为 FTC 担心用户隐私可能被泄露,比赛最终并未举行。

Netflix 的推荐系统包含了很多算法。在其产品系统中所使用的两个核心算法就是 Restricted Boltzmann Machines(RBM)和 SVD++。这两个算法通过线性混合的方式形成了一个超高精度的评估系统。其中,RBM 是被修改用于协同过滤的神经网络技术。每个用户拥有一个 RBM,其中的输入节点就代表了他所点评过的电影。而 SVD++ 是 SVD (Singular Value Decomposition) 的一种非对称形式,使用类似于 RBM 的隐形信息。该算法正是由 Netflix Prize 竞赛的获胜团队所研发。读者可以点此阅读Netflix 工程博客中有关定制化主页的内容。

开源项目

Netflix 拥有专门的 GitHub 网址,并维护了一个专门的工程博客(有关 Netflix 开源改革的文章就包含在其中)。其工具涵盖大数据、开发和传输、通用运行时服务和库、数据存储和持久化、性能分析和安全方面等等,感兴趣的读者可以参考 InfoQ 稍后发出的专门谈论 Netflix 开源工具的文章。

读者反馈

Chris 的文章公开后,引起了网友的相关热烈讨论。其中,读者广泛反应的问题就是该文章缺少对 Spring Node.js Guice Docker Groovy 编程语言以及 ElasticBox 等相关框架或工具的分析。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

立即免费注册 AWS 账号,获得 12 个月免费套餐:点击注册

有云计算问题?立刻联系 AWS 云计算专家:立即联系

2015 年 11 月 23 日 18:004146
用户头像

发布了 268 篇内容, 共 107.0 次阅读, 收获喜欢 23 次。

关注

评论

发布
暂无评论
发现更多内容

中国首位 K8s ingress-nginx reviewer 同时提名成为 Apache APISIX committer

Apache APISIX 中国社区

开源 Kubernetes 采访 APISIX

肝到头秃!阿里爆款的顶配版Spring Security笔记

Java spring 程序员 架构 计算机

这套Github上40K+star面试笔记,可以帮你搞定95%以上的Java面试

Crud的程序员

Java spring 编程 架构

课余时间学点python(一)Python基础之了解,下载,使用

ベ布小禅

8月日更

香港云服务器的运行原理以及是微小创业公司的最具性价比的选择

九河云安全

IE 退出后,苹果 Safari 成为了开发者最讨厌的浏览器?

百度开发者中心

产品 最佳实践 开发者 方法论 浏览器

通过EasyRecovery如何恢复被永久删除的音频?

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

开发者进阶宝典,HarmonyOS 职业认证全奉上

科技汇

jackson1处理特殊字符有什么问题?

BUG侦探

json Java 开发 jackson特殊字符

斩获阿里P7Offer,这一份Java面试文档,送给换工作的程序员

Crud的程序员

Java spring 编程 架构

剑指大厂!阿里内部疯传的Java面试与学习进阶宝典我粉了

Crud的程序员

Java spring 编程 架构

多数元素

Memorys

Java 面试 算法

Apache ShardingSphere:由开源驱动的分布式数据库中间件生态

SphereEx

数据库 开源

Vue进阶(幺柒贰):应用 @fullcalendar/vue 实现日程日历

No Silver Bullet

Vue 8月日更 Fullcalendar

SpringBoot使用Junit5

Rubble

springboot JUnit 8月日更

架构实战训练营存储架构设计

Clarke

学会这十招,轻松搜索github优质项目

Java架构师迁哥

Linux-Vim 编辑器和恢复 ext4 下误删除文件-Xmanager 工具

学神来啦

vim Linux 学习 运维

阿里云 Centos7安装ssh+nginx+mysql 傻瓜式教程

九河云安全

勒索软件、网络钓鱼、零信任和网络安全的新常态

九河云安全

刘擎:如何在迷失中找到自我?

石云升

哲学 自我 8月日更

字节三面+微信四面+PayPal四面,大厂面经分享

Java 程序员 架构 面试 计算机

DBA:这有一份对接NBU备份故障排除指南,请查收!

华为云开发者社区

故障 DWS 备份 NBU NetBackup

书单 | 7月畅销新书情报,看谁是最大黑马

博文视点Broadview

模块九毕设

c

架构实战营

Nginx 内存池似懂非懂?一文带你看清高性能服务器内存池

Linux服务器开发

nginx Linux服务器开发 Linux后台开发 高性能服务器 内存池

基于ECS搭建FTP服务

若尘

阿里云 ftp服务 8月日更

高防云服务器与云服务器的区别以及如何去更好的选择?

九河云安全

Vue进阶(幺玖肆):VantUI 实现 Dialog 弹框动态显示 message

No Silver Bullet

Vue eCharts 8月日更

学习Java开发的步骤,先睹为快

Java 程序员 后端

学了阿里P8级架构师的7+1+1落地项目,万字长文!

Java 程序员 后端

Netflix企业文化与架构设计_语言 & 开发_张天雷_InfoQ精选文章