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 多AZ间备份,通过ELB Load Balance
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级流量进行负载均衡。

screenshot

Region内Traffic

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

screenshot

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

Deployment

Spinner:enable veolicty

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

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

screenshot
screenshot

Poly(Lots of things)

Lots of language

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

screenshot

Lots of system

screenshot

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

比较务虚,自行理解吧

目录
相关文章
|
5月前
|
Dubbo Java 调度
揭秘!Spring Cloud Alibaba的超级力量——如何轻松驾驭分布式定时任务调度?
【8月更文挑战第20天】在现代微服务架构中,Spring Cloud Alibaba通过集成分布式定时任务调度功能解决了一致性和可靠性挑战。它利用TimerX实现任务的分布式编排与调度,并通过`@SchedulerLock`确保任务不被重复执行。示例代码展示了如何配置定时任务及其分布式锁,以实现每5秒仅由一个节点执行任务,适合构建高可用的微服务系统。
90 0
|
消息中间件 SpringCloudAlibaba Java
SpringCloud Alibaba 框架背后的故事
Spring Cloud Alibaba是Spring Cloud的一个子项目,它是由阿里巴巴公司推出的,用于构建基于微服务架构的分布式应用程序的开源框架。它与Spring Cloud的其他组件(如Netflix OSS)相结合,为开发人员提供了丰富的工具和功能,以便更轻松地构建、部署和管理分布式系统。
|
消息中间件 Kubernetes Java
Spring Cloud Alibaba 生态发展和近期规划 | 学习笔记
快速学习 Spring Cloud Alibaba 生态发展和近期规划
Spring Cloud Alibaba 生态发展和近期规划 | 学习笔记
|
UED 流计算
Netflix 是如何做决策的? | 1. Netflix 的决策制定
Netflix 是如何做决策的? | 1. Netflix 的决策制定
146 0
Netflix 是如何做决策的? | 1. Netflix 的决策制定
|
消息中间件 Kubernetes Java
Spring Cloud Alibaba 生态发展和近期规划
Spring Cloud Alibaba 的诞生得益于过往数十年处理淘系电商高并发大流量业务所积累的技术经验,阿里巴巴内部沉淀了一套包括限流降级、分布式配置、注册中心、分布式消息、分布式事务等完整的微服务解决方案,比如 Sentinel、RocketMQ 等。 2015 年 6 月, Spring Cloud 第一个正式版本发布后,得益于 SpringBoot 奠定的用户群体基础,再加上 Spring Cloud 本身较为完善的解决方案能力和简单易上手的特点,迅速成为微服务技术圈热点。
Spring Cloud Alibaba 生态发展和近期规划
|
弹性计算 运维 监控
Netflix的牛是如何炼成的?
Netflix的牛是如何炼成的?
230 0
Netflix的牛是如何炼成的?
|
安全 定位技术 Android开发
2014 AVOS Cloud Hackathon 成果回顾
AVOS Cloud 联合创新工场、优才网、SegmentFault 和腾讯科技,举办的是一场基于 AVOS Cloud 的黑客马拉松。举办方为开发者们提供舒适的场地、充足的饮料和食物,现在气氛也融洽而忙碌。活动历时两日一夜,诞生了不少创意十足的产品,这里是当时活动进行时的直播帖,以下是获奖的产品:
202 0
2014 AVOS Cloud Hackathon 成果回顾
|
Cloud Native 架构师 Java
贡献的 PR 数仅次于阿里团队,我是如何成为 Spring Cloud Alibaba committer 的?
Spring Cloud Alibaba 开源两年时间,已经成为了最受开发者关注、最活跃的 Spring Cloud 实现。它之所以能这么快的受到开发者的认可,一方面是它生态中的组件丰富且经过阿里 双11 验证,但更重要的还是社区中各位贡献者、广大用户的贡献和反馈。
贡献的 PR 数仅次于阿里团队,我是如何成为 Spring Cloud Alibaba committer 的?
|
机器学习/深度学习 Dragonfly Cloud Native