Day in the Life of a Netflix(SRE) Enginner

Youtube视频链接:https://www.youtube.com/watch?v=aWgtRKfrtMY

2015年讲过一次,主要集中在chaos monkey上,这次是2016年在Re:Invent上的演讲,增加了不少内容。没有过多地去说一些技术,focus在technical thinking, strategy & culture 三个方面。

演讲者是Dave Hahn。Senior Engineer in Netflix's Operations and Reliability Engineering team. 类似我们的SRE团队,因此内容中更多的是operation(deploy、monitor)和reliability相关的内容。

Netflix当前是什么,需要什么样的技术

  • big:
  • 高峰期有100k 台EC2实例
  • 每天有20%业务是AutoScaling进行弹性伸缩
  • ELB Traffic > 50 Gbps / Per Region
  • 网络流量 Peak Time > 37% internet traffic of USA
  • fast:在大体量的同时仍能带来非常多的创新
  • 推出了Airplane, car等渠道的版本
  • 媒体:1 billion hours streamed

于是回到了一个问题:技术和文化如何保障又大又快?

principle of chaos

估计是之前有3-4次因受到AWS故障影响损失惨重,三四年前Netflix已经搞出了ChaosMonkey来模拟各种故障,ChaosMonkey内容网上很多,可以直接参考。

关于Chaos Principle,提到四个点:

1. hypothesize: focus on what the system produce

对所有系统行为都能够以黑盒进行量化,而不是内部属性和设计(这个主要是从SRE视角出发的观察)。 例如当故障或某一个状态发生到恢复期间,系统的吞吐量,错误率,延时分布等。通过Chaos Monkey等线上实验反复论证“系统黑盒”是否符合预期,而不是开发号称的理论上、设施上Metric应该达到多少等等。

Chaos Engineering系列:

类型 范围 目标 工程方法(推测)
Chaos Monkey Region 内 当有大量实例Fail情况下,如何保证服务不受到影响 lots of instance fail should not affect the service
Chaos Kang(KingKang) Region 间 当Region down情况下,不影响所有的流量(如何保证影响可控,并且可以快速从其他Region切换) Region间准实时复制
Chaos Chap(Chaplin) 微服务级 microservice之间的故障不影响相互影响 设置合理Timeout,松耦合设计

2. Vary Real-world Events

考虑现实中的情况,对可能发生的状况根据影响面、以及发生频率制定优先级。例如在分布式系统设计时,我们经常会各种硬件的MTR,以配置最合理的参数和策略在软件层提供服务,例如:

  • 磁盘:年故障率在千分之四,3-Copy是否能在一个5000台规模,保证同时坏盘的概率效率一定的数量级,数据拷贝策略应该在多少时间内完成数据恢复。当过保之后,故障率是否会上升
  • 机器:未过保机器故障率在万分之这个量级,如何通过调度将业务放在多个AZ
  • AZ:因为有多条线路和电源,AZ不可服务概率更小,但可能会发生某些网络链路,或者机架的不可用

除此之外,我们还要考虑用户的影响,例如热门的活动,大流量的脉冲(例如双十一等)的行为是怎么样的。任何可能影响系统稳定性的内部和外部因素,都要考虑到chaos实验中。

3. Run Experiments in Production

从刚才两点可以看到,系统会根据环境、以及用户流量模式引起变化。我们也没办法去提前预测,规模,因此最好的方法还是从线上引流进行实验。在Netflix,Chaos试验是直接在生产环境上做的。

4. Automate Experiments to Run Continuously

有了数据、实验、环境,接下来就是执行。作者认为手动的故障演练是不可持续的,因此,netflix将这些作为常态,通过自动化手段来驱动、分析实验结果。

关于Chaos Engineering,netflix发起了一个网站和Google Group讨论:

Intuition(来自什么,understand the operating and system)

现实中的问题:过多的监控项,太多并且无异议。Netflix根据SRE需求,搞了一套可视化框架:Vizceral,visual framework. to understand the complicated microservice,以下是一些截图:

Global Traffic

在Chaos Kang(Kingkang)中提到,Netflix可以容忍Region级dang当机不影响所有的用户,并且能快速恢复,将Region级流量进行负载均衡。

Region内Traffic

通过流量图,显示Microservice之间的流量,以及如何相互影响。

Vizeral已开源,可以参考 http://netflix.github.io/

Deployment

Spinner:enable veolicty

传统的做法是很多自动化工具连接而成,非常细小琐碎。Spinner是Netflix统一部署系统。

Cluster Management视图:Resize,Clone,ELB Managment
Deck视图:发布、测试、版本管理


Poly(Lots of things)

Lots of language

netflix认为hire people to solve problem (by their own way),而不是限制他们去按部就班开发,所以所有的开发语言都欢迎。

Lots of system

Enable choice & option

因为历史原因,架构一直在演化:从一开始IDC到EC2、到Container。通过Titian + Spinnaker将Container + EC2 很好融合起来,并非直接一次迁移到Microservice。

last not least

  1. Partnership:Use more Amazon Service
  2. Enable Focus: use aws
  3. Culture
  4. Values
  5. Context not control

比较务虚,自行理解吧

时间: 2024-10-21 12:21:41

Day in the Life of a Netflix(SRE) Enginner的相关文章

使用Netflix Hystrix编写弹性可容错的应用程序

弹性指的是在复杂网络环境下,面对各种故障和挑战,仍能提供和维持一个可以接受的服务水平,并正常运作. -来自Wikipedia 自从长期服务和最近的微服务被大家熟知和使用,很多应用程序开发人员已经将整体式的API,转换成简单的.功能单一的微服务.然而,这样的转换,导致为了保证一致的响应时间和弹性,依赖关系变得不可用时,造成额外的损耗.例如,一个单体式的web应用程序,执行一次重试,在一定程度上是弹性的,因为它可以在某些依赖关系(如数据库或其他服务)不可用时恢复.这种恢复能力没有任何附加的网络损耗或

如何利用CombineFileInputFormat把netflix data set 导入到Hbase里

package com.mr.test; import java.io.IOException; import org.apache.hadoop.io.BytesWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.mapreduce.InputSplit; import org.apache.hadoop.mapreduce.RecordReader; import org.apache.ha

云端的SRE发展与实践

本文讲的是云端的SRE发展与实践[编者的话]云是大势所趋,它能把很多底层的问题封装起来,让我们有更多精力去做更重要的事情. [3 天烧脑式基于Docker的CI/CD实战训练营 | 北京站]本次培训围绕基于Docker的CI/CD实战展开,具体内容包括:持续集成与持续交付(CI/CD)概览:持续集成系统介绍:客户端与服务端的 CI/CD 实践:开发流程中引入 CI.CD:Gitlab 和 CI.CD 工具:Gitlab CI.Drone 的使用以及实践经验分享等. 背景 SRE(Site Rel

Netflix 遭勒索,黑客提前发布《女子监狱》第五季前10集

   [图片来源:百度百科] Netflix 是一家美国公司,在美国.加拿大提供互联网随选流媒体播放,定制DVD.蓝光光碟在线出租业务. 蹊跷的是,一般剧集泄露是发生在已经开播的情况下,比如,我国的热门电视剧<三生三世十里桃花>和<人民的名义>都曾在开播后泄露送审版,但是,这次<女子监狱>泄露却是在开播数月之前. 美国时间4月28日晚上10点左右,泄露者在其推特页面发布了一则推文,链接了Pastebin页面.GitHub 页面以及海盗湾上<女子监狱>第五季前

Netflix Conductor:一个微服务编排工具

本文讲的是Netflix Conductor:一个微服务编排工具[译者的话]这篇文章介绍了Netflix Conductor,一个微服务编排工具,为微服务执行复杂业务流程提供了一种思路,希望对读者有一定的启发. [深圳站|3天烧脑式Kubernetes训练营]培训内容包括:Kubernetes概述.架构.日志和监控,部署.自动驾驶.服务发现.网络方案等核心机制分析,进阶篇--Kubernetes调度工作原理.资源管理及源码分析等. Netflix内容平台工程团队运行许多业务流程,这些业务流程是通

阿里SRE体系如何支撑24小时峰值压力、220+个国家“剁手党”?

淘宝点亮了全中国,Aliexpress点亮了全球,在近百个国家的购物类app排名第一.但AE国际只有1-2个物流,峰值压力一度导致多个国家的银行系统.物流系统瘫痪,可以想象,作为Aliexpress的SRE压力多大. 究竟阿里工程师是如何解决这一难题?今天我们通过AliExpress SRE负责人周志伟的分享,揭开这个谜题. 阿里巴巴高级技术专家.AliExpress SRE负责人周志伟 Aliexpress是阿里巴巴集团跨境及国际消费业务,国内大家都知道淘宝,但是走出国门,知道Aliexpre

Netflix开源面向稀疏数据优化的轻量级神经网络库Vectorflow

介绍 随着过去几年来深度学习库和软件创新的蓬勃发展,研究机器学习是一个激动人心的时刻.大多数机器学习的库都是从相当专业的计算代码演变而来的,这些计算代码一般用于解决大密集度问题,例如为稀疏模型提供边缘支持的基于神经网络的图像分类通用框架. 在Netflix公司,我们的机器学习科学家在多个不同的领域处理着各种各样的问题:从根据你的爱好来定制电视和推荐电影,到优化编码算法.我们有一小部分问题涉及到处理极其稀疏的数据:手头问题的总维度数很容易就能达到数千万个特征,即使每次要看的可能只是少数的非零项.对

Google 和 Facebook 如何大规模处理 IT 事件管理 —— 2016 SRE 大会之我见

[编者按]本文作者为 Maria Arbisman,主要介绍 Google 与 Facebook 两大巨头是如何大规模处理 IT 事件管理.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 2016 年举办的可靠性工程师学会大会 (SREcon 2016) 汇聚了来自全球各地的多家企业,探讨企业在继续扩展业务的同时其网站可靠性工程师所面临的各种问题,包括"究竟什么才能成就强大的 SRE 团队"这样的准生存问题.似乎很多公司都会把精干的软件工程师和运营人才拼凑在一起,以此确保网站

Netflix云安全团队的开源项目简介

近日,Netflix云安全团队工程总监Jason Chan在Netflix技术博客上发文回顾了他们3年来发布的15个开源项目.他写道: 我们针对安全的开源软件往往反映出Netflix的独特文化.我们发布的许多工具都旨在保证高速.分布式软件开发组织的安全. 以下是他们3年来发布的开源项目. Security Monkey是他们发布的第一个开源项目,发布时间为2014年6月.这是一款云环境安全监控工具,最初是面向AWS的,2017年3月,谷歌工程师为它添加了Google Cloud Platform