Netflix的牛是如何炼成的?

简介: Netflix的牛是如何炼成的?

Netflix是一家在线影片租赁提供商。公司能够提供Netflix超大数量的DVD,而且能够让顾客快速方便的挑选影片,同时免费递送。Netflix已经连续五次被评为顾客最满意的网站。可以通过PC、TV及iPad、iPhone收看电影、电视节目,可通过WiiXbox360PS3等设备连接TV。


Netflix的牛在哪里?

可以看几个信息。

使用AWS之前,Netflix使用的是Oracle和IBM的技术来支撑其业务发展的。而现在,Netflix基于AWS构建自己的技术生态。 Netflix已经开源的许多基于全球PaaS平台下的组件以提供在云端的创建和运行高可用服务的最佳实践。


Netflix已经成为Acme Air的一家技术供应商(Acme Air这个产品采用了Netflix OSS的技术,特别是Karyon, Eureka, Hystrix和Ribbon)


ps:full set of NetflixOSS components is at http://http://netflix.github.io


Netflix面临的挑战


  • big:
  • EC2 Instances >100,000
  • CPU Cores >800,000
  • 每天有20%业务是AutoScaling进行弹性伸缩
  • ELB Traffic > 50 Gbps / Per Region
  • 网络流量 Peak Time > 37% internet traffic of USA
  • 大量的Accounts
  • fast:保持创新速度,出新业务很快
  • 1,000s changes
  • 1,000,000s new customers
  • 1,000,000,000s hours streamed

他们如何做到又big和fast呢?


牛是如何炼成的


在AWS re上,Dave Hahn(CORE Team / Netflix)分享了一个话题"Another Day in the Life of a Netflix Engineer (DEV209) ”,从中可以窥见一些端倪。

ps:link https://www.youtube.com/watch?v=aWgtRKfrtMY&feature=youtu.be


牛的背后尽是苦,不幸总是相似的。他们也曾遭遇无奈的宕机!!!


image.png


关于Chaos Principle,网上有参考资料:


1:Build a Hypothesis around Steady State Behavior


把系统当成黑盒,chaos专注在系统does work,而不是尽量验证它如何工作。 例如当故障或某一个状态发生到恢复期间,系统的吞吐量,错误率,延时分布等。


Focus on the measurable output of a system, rather than internal attributes of the system.  Measurements of that output over a short period of time constitute a proxy for the system’s steady state.  The overall system’s throughput, error rates, latency percentiles, etc. could all be metrics of interest representing steady state behavior.  By focusing on systemic behavior patterns during experiments, Chaos verifies that the system does work, rather than trying to validate how it works.


Chaos Monkey是最受关注的一个产品,顾名思义就是用来捣乱的,怎么捣乱?


把某些运算设备定制掉;把系统延迟时间调长等等。。。Chaos系列还可以模拟单机房故障、


 Chaos Monkey 最新版本依赖于Spinnaker这个持续发布平台。下面就不翻译了...


This version of Chaos Monkey is fully integrated with Spinnaker, the continuous delivery platform that we use at Netflix. You must be managing your apps with Spinnaker to use Chaos Monkey to terminate instances.

Chaos Monkey should work with any backend that Spinnaker supports (AWS, GCP, Azure, Kubernetes, Cloud Foundry). It has been tested with AWS and Kubernetes.


2:Vary Real-world Events


实际创造真实环境的事件,比如硬件fail,软件不可用来观察演练。


3:Run Experiments in Production


系统的行为取决于环境和通讯模式,采样真正的流量是唯一的方法来可靠地捕获请求路径。为了保证系统运行的真实性和当前部署的系统的相关性的真实性,chaos喜欢直接在生产流量实验。


4:Automate Experiments to Run Continuously


Running experiments manually is labor-intensive and ultimately unsustainable.  Automate experiments and run them continuously.  Chaos Engineering builds automation into the system to drive both orchestration and analysis.

chaos工程师任务手工的故障演练不可持续,因此构建自动化演练的机制。


强大的监控和部署


监控采用Vizceral,Vizeral已开源,可以参考 http://netflix.github.io/

可以将error的流量负载到多个zone,清晰化管理;zone内部也通过该工具监控。


image.png


Spinner是Netflix统一部署系统。


image.png


设计原则

在Mastering Chaos-- A Netflix Guide to Microservices  分享中,Josh Evans(Engineering Leader) 再次总结了netflix公司的设计原则,涵盖架构、运维及组织。


Dependency

ps:从单体架构演进到微服务架构,依赖会增加;复杂度增加则熵增加。

提供以下几种解决方案。

Circuit breakers, fallbacks, chaos ---保护、故障注入演练

Simple clients

Eventual consistency  --放弃分布式事务,最终一致性

Multi-region failover--跨机房FO能力


Scale

Auto-scaling  自动扩展,扩展都会做,要自动扩展、弹性也不简单

Redundancy – avoid SPoF  

Partitioned workloads

Failure-driven design

Chaos under load---对负载做chaos


Variance

Engineered operations

Understood cost of variance

Prioritized support by impact


Change

Automated delivery  

Integrated practices


Organization & Architecture

Solutions first, team second


文化

早在2009年, Netflix的CEO和首席人才官就做了一份127页的PPT,命名为《自由&责任的文化》,这份PPT在网上被查阅超过了600万次,甚至被Facebook公司的COO桑德伯格称为“硅谷最重要的文件”。这里摘录几条,尝试解读。

价值观

价值观不是挂在墙上的,公司真正的价值观应该是具体通过哪些人被奖励、被提升来体现。


image.png


真正的价值观是被员工所重视的行为和技能,该公司包括了9条:判断力、沟通力、影响力、好奇心、创新、勇气、热情、诚实、无私



image.png


自由和责任

作为一个软件工程师你有充分的自由做出各项选择。Netflix每个工程师都可以在部署和生产环境做出调整改变,这些操作不需要IT人员任何操作。什么是责任,你要为你做的每个错误选择而负责,你可能因为一个错误选择造成这个系统不稳定或者其他系统不稳定,那么你要尽快想办法找出解决方案把影响降到最低,另外一个责任是尽快把这个缺陷修好并且发布一个新的软件。自由与责任最好的体现是Netflix的休假制,任何人任何时间都可以修长的假期,这也是我站在这里的原因之一,休假是你的自由,但是你相应的责任是什么,你休假之前要把你该做的事情做好。而且你的休假不能给公司带来任何负面影响,其实你已经开始休假了,如果你的系统发生问题你也有责任在任何时间任何地方解决这个问题。


总结:Netflix独创了自己的企业文化、工程师文化,但成功的公司有相同的,就是都有确定的使命和价值观,雇佣优秀的人。在架构体系上,深度使用云平台,搭建多中心,面向失败设计、自动化故障演练测试、持续发布等对于大型互联网应用是非常好的示范。我们team曾创新故障注入组件,现已下沉到中间件。演练包括稳定性和资金安全case!


参考资料:互联网

自由&责任的文化

Mastering Chaos-- A Netflix Guide to Microservices  

Another Day in the Life of a Netflix Engineer (DEV209)

相关文章
|
4月前
|
人工智能 算法 前端开发
AI 应用软件的外包开发
2026年国内AI英语类APP外包开发市场成熟但陷阱多:价格分三档(5万起MVP、20–50万专业级、80万+专家级),核心看TTFT<400ms、Token成本优化、数据安全及备案支持。避坑关键:验Agent编排能力、音视频工程经验、Prompt资产归属,慎防黑盒交付与算力转嫁。(239字)
|
5月前
|
弹性计算 小程序 固态存储
云服务器租用价格多少钱一年?用于搭建小程序费用清单,2026最新整理
2026年阿里云小程序服务器最新报价:入门级2核2G轻量服务器低至38元/年(含200M峰值带宽、50G系统盘),99元/年ECS经济型实例续费同价;香港地域25元/月起。覆盖GPU、按量付费及带宽/云盘明细,性价比高,适合个人开发者与中小企业快速部署小程序。
1610 17
|
13天前
|
人工智能 移动开发 小程序
0 代码也能一键上线应用!阿里云 Meoo 秒悟,一句话生成网站 / 小程序全链路开发工具
阿里云Meoo秒悟是国内首款面向非技术人群的AI闭环开发平台,支持“一句话生成应用”——自动产出前后端、数据库、云资源,并提供可视化编辑与一键部署。覆盖H5、小程序、官网等全终端,运营、学生、个体户皆可零代码快速上线商用应用。
|
Linux 容器 Docker
环境异常解决方案-CentOS安装软件包找不到镜像
  今天准备搭建一套Docker环境,先安装了一个CentOS 7.2的虚拟机,然后使用【yum】命令来装其他的软件包,出现了如下消息: Loaded plugins: fastestmirror, langpacks One of the ...
2650 0
|
2月前
|
存储 缓存 边缘计算
AIWCLOUD:CDN在AIGC大模型推理服务中的KV-Cache加速与显存卸载技术
本文提出面向AIGC推理优化的新型CDN架构,突破传统静态缓存局限,创新实现边缘侧KV-Cache语义共享、显存卸载与Prompt去重,显著缓解高并发下的显存墙与重复计算瓶颈,在不增GPU成本前提下提升吞吐与响应速度。(239字)
338 0
|
6月前
|
数据安全/隐私保护 iOS开发 网络架构
保姆级教程: 超强体验iPhone 隔空传送文件到Win11 设置共享文件夹就是这样简单轻松!
无需任何第三方软件, iPhone直接就能“隔空投送数据文件到”Windows系统
1189 0
保姆级教程: 超强体验iPhone 隔空传送文件到Win11 设置共享文件夹就是这样简单轻松!
|
6月前
|
传感器 安全 机器人
2025年商用轮式机器人技术解析与选型指南
轮式机器人凭借成本低、能耗少、适配性强等优势,已占据商用服务机器人市场80%以上份额。本文从技术演进、核心指标、品牌对比到场景选型,系统解析导航精度、交互能力、续航性能等关键要素,结合TCO分析与行业趋势,为不同场景提供科学选型框架,助力实现高效智能化升级。
|
7月前
|
JSON 缓存 API
【剪映小助手】向现有草稿中添加关键帧
向现有草稿中添加关键帧。该接口用于在指定的片段上添加关键帧动画,支持多种属性类型的关键帧设置,如位置、缩放、旋转、透明度等。关键帧可以用于创建复杂的动画效果,增强视频的视觉表现力。
|
机器学习/深度学习 自然语言处理 算法
文心4.5系列模型,正式开源!
6月30日,百度文心大模型4.5正式开源,魔搭社区在开源首日快速接入文心大模型,提供真正可用、好用、可落地的大模型解决方案,现已面向广大企业、开发者下载体验!
697 1
|
网络协议
Diameter协议
【本文转载于Diameter协议】 Diameter是计算机网络中使用的一个认证、授权和审计协议。它从功能更少的RADIUS协议进化而来,并且取代之。        Dimater应用通过添加新的命令或属性扩展基础协议,例如使用扩展认证 协议(EAP)。 与RADIUS协议比较        名字是一个单词游戏(从RADIUS,半径到DIAMETER,直径),从
6410 0