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


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

640?wx_fmt=png&wxfrom=5&wx_lazy=1

principle of chaos

640?wx_fmt=png&wxfrom=5&wx_lazy=1

关于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内部也通过该工具监控。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

Spinner是Netflix统一部署系统。

640?wx_fmt=png&wxfrom=5&wx_lazy=1


设计原则

在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桑德伯格称为“硅谷最重要的文件”。这里摘录几条,尝试解读。

价值观

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

640?wx_fmt=png&wxfrom=5&wx_lazy=1

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


640?wx_fmt=png&wxfrom=5&wx_lazy=1

自由和责任

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


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


来源:中生代技术

原文链接

相关文章
|
4月前
|
架构师 安全 前端开发
阿里P9架构师推荐的Spring领域巅峰之作,颠覆了我对Spring的认知
你第一次接触spring框架是在什么时候?相信很多人和我一样,第一次了解spring都不是做项目的时候用到,而是在网上看到或者是听到过一个叫做spring的框架,这个框架号称完爆之前的structs和structs2,吸引了不少人的注意。
|
4月前
|
架构师 Java 数据库连接
震精!十年系统架构师每天熬夜到天明,竟在写Spring企业开发详解
回顾Spring的光辉岁月,一路与时俱进,引领时代之潮流。即便发生了多次版本的升级,其整体框架依然是向下兼容的,在这一点上,Spring明显区别于Struts、Hibernate 等框架的升级风格。
|
负载均衡 监控 前端开发
SpringCloud Netflix学习从练气到化虚
这篇文章是总结SpringCloud NetFlix的,其中使用的Eureka、Hystrix、zuul、feign等技术已经停更,目前是不推荐使用的,但是为了弄清楚微服务的架构演进,以及不同组件之间的差异性,笔者感觉还是需要学习这些已经过时的技术的,循序渐进式的学习才是最好的学习方法。
181 0
SpringCloud Netflix学习从练气到化虚
|
UED 流计算
Netflix 是如何做决策的? | 1. Netflix 的决策制定
Netflix 是如何做决策的? | 1. Netflix 的决策制定
83 0
Netflix 是如何做决策的? | 1. Netflix 的决策制定
|
Java Spring
SpringCloud Gateway 的使用(一)(建议收藏)|牛气冲天新年征文
一. Springboot 对应的 Springcloud 版本如下~ 官网地址 : spring.io/projects/sp… 各位大佬 请注意下~ ,最后一句英文还说 不再支持 Dalston, Edgware, Finchley, Greenwich 这四个版本啦 二. 使用 pom 文件 <properties> <spring.cloud-version>Hoxton.SR8</spring.cloud-version> </properties> <dependencyManagement> <dependencies> <dependency
179 0
|
弹性计算 运维 监控
Netflix的牛是如何炼成的?
Netflix的牛是如何炼成的?
185 0
Netflix的牛是如何炼成的?
|
SQL 机器学习/深度学习 人工智能
顶尖架构师能从Google、Facebook、Netflix等公司学到哪些技术?
  架构设计到底是做什么?每个人都有不同的答案,毕竟在不同的时间,不同的系统层级,不同的需求背景上,架构设计的任务都有所不同。那么换另外一个问题,如何成为顶尖的架构师?   先使用程序员的拆分技能:成就优秀需要划分两个阶段,先成为普通的架构师,然后再想办法成就优秀。   虽然 2022 年已经过了六分之一,但我们的新年也就刚开始,常言道种树最好的时间是十年前,其次是现在,学习架构也是一样,希望以下的学习小结可以给你帮助。
161 0
|
敏捷开发 安全 架构师
Spotify的牛是如何炼成的?
编著者按:笔者近期在思考工程文化相关的内容,除了自我总结以及对Google、Facebook的一些探索外,目光再次投向了Spotify这家公司。这是一个高速增长的故事,这是以一个工程文化知名的故事,同时这也是敏捷圈在讲的故事。
326 0
Spotify的牛是如何炼成的?
|
大数据 新制造 iOS开发
想做Netflix的苹果,可以向猫眼学什么?
想做Netflix的苹果,可以向猫眼学什么?
想做Netflix的苹果,可以向猫眼学什么?
|
前端开发 JavaScript Web App开发
Netflix 网站性能优化案例学习
本文主要给大家分享Netflix.com 桌面版是如何提升交互时间的,欢迎阅读。
818 0