写点什么

聊聊 Netflix 那些大胆的技术创新

2021 年 8 月 19 日

聊聊Netflix那些大胆的技术创新

Netflix 这家公司不知道你有没有听说过,《纸牌屋》这样的风靡全球的原创剧就是他们出品的。但我了解这家公司,还是从一个介绍他们公司文化的 PPT 开始的,那个 PPT 的第一句就写着,“我们只招成年人,并愿意为大家支付行业的最高薪资”,如果你想看这个 PPT,可以在视频号给我私信。


因为这周六我要和 Netflix 的资深架构师徐振中老师直播连麦,所以又开始看这家公司的故事了。不看不知道,一看吓一跳,原来这公司这么厉害。这周真的强烈推荐大家一定要看下这场直播,我们可以一起了解世界顶级的技术组织在技术、架构、组织和文化方面的创新。


下面是极客时间老师杨波总结的 Netflix 比较牛逼的点,你可以先看看。直播的话,点击下方红色按钮就可以预约了。我请这位老师废了老大功夫,估计一年就这一次了。


1、微服务很多公司(eBay、Amazon、BAT)都有,甚至比 Netflix 做得更早,但 Netflix 大概是大规模生产级微服务做得最杰出的。100s 范围的微服务,1000s 范围的每日生产变更,10,000s 范围的实例,1,000,000s 范围的活跃客户数,1,000,000,000s 范围的度量。但是只有 10s 范围的运维工程师,没有自己的数据中心 NOC,应该算微服务 DevOps 的最高境界了。


2、Netflix 微服务技术栈的核心组件基本上都是开源的。Pivotal 在 2~3 年前把 Netflix 开源的这摊东西封装一下改头换面,再拼凑一些其它东西(配置中心,调用链监控等)就变成了 Spring Cloud。现在大家耳熟能详的 Zuul 网关,Eureka 服务发现注册中心,Hystrix 熔断限流,Archaius 配置等组件,Netflix 在 2012 年左右就都开源出来了。


3、开放开源是 Netflix 的一种竞争战略。Netflix 为啥热衷于要搞开源?第一,他们想将自己的解决方案建立为行业标准和最佳实践。第二,开源可以帮助建立 Netflix 技术品牌,这有利于他们雇佣、留住和吸引顶级工程师。第三,Netflix 可以从共享生态中获得反馈输入并受益。


4、大致在 09 年左右, Netflix 就开始启动上公有云战略(当然背后也是吃了自建数据中心的苦头),应用逐步向 AWS 迁移,这个过程一共持续了将近 5 年,到 15 年的时候,迁移完毕,全部应用上到 AWS。09 年左右的 AWS 还不太成熟,别说当时,即使现在也没有几个大公司不掂量一下敢提全部迁移公有云的战略。


5、Netflix 在 AWS IaaS 的基础上封装打造了自己的 PaaS 云平台服务 (大部分组件开源),包括平台运行时服务 (Eureka、Zuul、Edda、Atlas),平台库和框架 (Karyon/Ribbon、Hystrix、RxJava、Governator、Servo、Archaius、Astyanax),平台大数据和缓存服务 (Cassandra/ES/Hadoop Platform as a Service、EVCache、S3)。平台工具和服务 (Asgard/Aminator、SimianArmy/ChaosMonkey、ICE),这些都某种意义上代表了硅谷的技术风向标。


6、业内最近开始提出云原生架构的理念,Pivotal 是这个理念的主要推动者(背后主要是要推它的 Cloud Foundry 产品)。其实 Netflix 在 2013 年就提出了 Cloud Native 理念,而且它的整个平台 (AWS IaaS + PaaS) 就是云原生的。


7、Netflix 原来用 Oracle 等传统 SQL 数据库,但是受到扩展性挑战。公司架构管理层大胆颠覆性提出使用 Cassandra NoSQL 作为主要的持久化化存储机制,Netflix 在 2012 年就做到大部分数据存放 Cassandra 和 S3 等非关系数据库上。这个架构决策也是非常大胆有魄力,一般没有几个公司敢这么干的。Cassandra 本质上是一种 KV 数据库,更像 sorted map 存储,不支持事务,不支持 join。在 CAP 理论中,Cassandra 是展现 AP 特性,无中心分散式高可用,天然支持跨数据中心数据同步,这大概是 Netflix 最看重的特性。Cassandra 是读慢写快的特性(一般数据库是读快写慢),Netflix 大量使用 Memcached 做缓存补偿。


8、近年容器技术大火,大家都在谈不可变基础设施的理念,本质就是镜像部署。Netflix 在 2012 年前就已经实现镜像部署,发布的单位是 AMI(Amazon Machine Image) 镜像,通过持续交付工具 Asgard(现在升级版叫 Spinnaker)直接将镜像推到 AWS 云中部署,支持蓝绿(需要至少两倍虚机),灰度和金丝雀等部署模式。


9、Netflix 的发布管道叫 Paved Road,就是平台团队铺好的路,由提交,构建,AMI 镜像烘焙 (Image Baking) 和发布四个阶段组成。金丝雀发布之后,系统会自动生成金丝雀健康报告和分数(背后需要统计上千个 metrics + 复杂智能算法),达到一定的分数,比如 80 分,才能继续 roll out。这个也称发布自动刹车。


10、Netflix 大胆提出反脆弱架构的理念。为了让你的系统更加健壮,不是将它们严格保护起来,而是主动随机性地的增加一些破坏性测试,逼迫研发人员做好高可用。Netflix 从周一至周五,上午 9 点到下午 3 点,混乱猴子军团会随机杀生产实例,这个叫 Chaos Monkey,还有增加延迟的 Latency Monkey。


11、Netflix 的技术这么牛逼,但它是没有技术 CTO 职位的,只有首席产品 CPO,工程团队和产品团队的 VP 都向 CPO 汇报。这样做更多是为了产品导向,便于技术和产品沟通合作,避免两边扯,避免业务驱动还是技术驱动的悖论,大家都是产品驱动。Netflix 把它称为 BusDevOps 组织架构。


12、Netflix 也没有独立的运维团队,架构 + 中间件 + 运维 + 大数据闭环统称为云平台工程 (Cloud and Platform Engineering) 团队,一个 VP 总负责,更好地对接 DevOps 文化。Netflix 的产品导向文化非常浓厚,连平台工程团队开源出来的产品都是整整齐齐的,PaaS 云平台是整个云平台工程团队最大的产品输出。


13、无论公司兴衰,始终支付市场最高工资。不用多解释,这大概是 Netflix 最有霸气底气和牛逼的一点。据我在米国的同学讲,去 Netflix 基本是硅谷顶薪,博士毕业去给开了超过 30 万美金的年薪(这还是前几年的行情)。一般进去难,去了留下来也不容易,不胜任的被客客气气劝退的有。能留下来的一般也不跳,因为再跳也没有更高的待遇了。


怎么样,震惊不?虽然我们并不在 Netflix 工作,也没法建立 Netflix 那样的文化,但他山之石,可以攻玉,Netflix 的很多技术、架构、组织和文化思路值得我们学习和借鉴。8 月 21 日,周六,早上 9 点 30 分,我会连麦他们的资深架构师来聊聊具体的细节,记得预约



2021 年 8 月 19 日 09:423075
用户头像
郭蕾 关注我视频号:极客时间小盖

发布了 219 篇内容, 共 118.7 次阅读, 收获喜欢 158 次。

关注

评论 3 条评论

发布
用户头像
错过直播,想看录播
2021 年 08 月 23 日 14:12
回复
没有了,下次的你关注视频号吧:极客时间小盖
2021 年 08 月 23 日 21:34
回复
用户头像
有点意思
2021 年 08 月 23 日 13:42
回复
没有更多了
发现更多内容

Here I come

Dreamer

C++ primer --第十一章 使用类

Dreamer

c++

C++ primer -- 第18章 探讨C++新标准

Dreamer

c++

week2- 作业二,学习总结-框架设计

未来已来

c++ primer -- 第14章 C++中代码重用

Dreamer

c++

写文档太麻烦,试试这款 IDEA 插件吧!

程序员小航

Java markdown IDEA idea插件 文档

C++ primer -- 第十三章 类继承

Dreamer

c++

C++ primer -- 第17章 输入,输出和文件

Dreamer

c++

EDA最强攻略,如何为EDA选择存储?

焱融科技

分布式 高性能 存储 半导体 EDA

架构师训练营 第六周作业

haha

架构师一期

6.8Doris分析案例(三):扩容伸缩设计

张荣召

架构师训练营第 6 周:技术选型 (二)

子青

Week 2 :框架设计(学习总结)

shuyaxx

C++ primer -- 第16章 string类和标准模版库

Dreamer

c++

C++ primer -- 第十五章 友元,异常和其他

Dreamer

c++

学习笔记--week06

张荣召

架构师训练营第一期 - week6

习习

C++ primer -- 第十章 对象和类

Dreamer

c++

极客大学 - 架构师训练营第一期 - 第六周作业

Black Eyed Peter

极客大学架构师训练营

C++ primer -- 第十二章 类和动态内存分配

Dreamer

c++

Caffe 安装踩坑记录

Dreamer

caffe

C++primer-函数探幽

Dreamer

c++

Ubuntu常见问题解决方案与使用技巧

jiangling500

ubuntu

第二周作业-学习总结

jingx

架构师训练营第六周学习笔记

一马行千里

学习 极客大学架构师训练营

架构师训练营第一期 - 第六周学习总结

卖猪肉的大叔

极客大学架构师训练营

C++ 第九章 内存模型和名称空间

Dreamer

c++

目标检测综述

Dreamer

6.6Doris分析案例(一): NoSQL案例

张荣召

第二周学习总结

刘洋

极客大学架构师训练营

6.7Doris分析案例(二):高可用和集群扩容设计

张荣召

亚马逊云科技 Webinar 电商专场

亚马逊云科技 Webinar 电商专场

聊聊Netflix那些大胆的技术创新-InfoQ