从工程文化和运维理念理解Netflix
http://www.infoq.com/cn/news/2018/01/netflix-engineering-culture
在技术圈儿,Netflix 是一家非常有特色的互联网公司。他们信奉“自由与责任”的企业文化,鼓励工程师发挥自己的爱好与特长;特别开放,很多内部系统都开源了;所有业务都运行在云上,随之而来,有很多自己的工具,特色的运维文化。
在明年 4 月 20~22 日的 QCon 北京 2018 上,我们有幸邀请到 Netflix 工程总监 Katharina Probst,她将分享 Netflix 的工程文化以及运维方面的理念和经验。
InfoQ 曾有文章介绍 Netflix 的企业文化(技术漫谈:为什么Netflix的企业文化会备受整个硅谷的推崇?),而这次,Katharina 将现场分享《工程文化:挖掘工程师的最大价值》。
丹尼尔·平克的《驱动力》一书,指出了如何提高绩效、焕发热情的三大要素:自主(Autonomy)、专精(Mastery)和目的(Purpose)。本次演讲也将从这三个方面出发,探讨如何让工程师发掘出自己的最大潜能。
- 自主:设定良好的环境,但是不控制目标的日常执行。
- 专精:为每个人提供锻炼技能的条件,并对成长提供反馈。
- 目的:将工程师连接起来,为公司的使命而奋斗。
Katharina 还曾撰文介绍 Netflix 背后独特的运维理念。
在Netflix,“自由与责任”的价值观体现的淋漓尽致。一方面,工程团队可以自由地向产品添加功能和服务,不需要审批和繁琐的程序。另一方面,作为产品的所有者,要负责服务的运维和支持。
优势当然是各团队可以灵活快速地实现新功能。当然,有利就有弊,整个系统的规模也随之爆炸性增长,没有人能记着所有系统的所有变更。
这种情况下,Netflix 是如何保证其服务的高可用性和用户体验的呢?秘密就在于 Netflix 的 CORE SRE 团队。
SRE 是指 Site Reliability Engineer (网站可靠性工程师)。这个概念大家应该并不陌生。
CORE 是几个单词的首字母缩写:Cloud(云)、Operations(运维)、Reliability(可靠性)、Engineering(工程)。一语双关,既可以看成“云运维可靠性工程”,也可以看成“核心”。
这个团队非常小,不到 10 个人。虽然人少,但是都是骨干人才。可以把这个团队看作 Netflix 服务的中枢神经系统。这个团队是干什么的呢?
他们要尽可能多的从整体上把握 Netflix 的系统,进而让系统更好、更可靠。具体而言,其工作是:
- 理解事故(incident);
- 发现事故和健康运维状况下的模式;
- 将模式转变成工具和最佳实践,防患于未然。
理解事故
事故发生时,SRE 往往是第一响应人。这个人要定位问题,深入了解事故,确定严重等级,看看应该找谁来解决问题。要找的人可能是服务的所有者,或者外部合作伙伴(比如设备供应商)。
CORE SRE 团队要根据自己对整个系统的理解,决定在既定情况下,采用哪种缓解策略最好,比如把流量切到其他区域。
发现事故和健康运维状况下的模式
事故解决后,SRE 的工作才算真正开始。下一步是仔细研究事故,提很多问题。比如:
• 事故是什么原因导致的?
• 我们之前怎么做,能够避免这次事故?
• 是不是有某个最佳实践并没有遵守?
• 是不是团队遵守了某个最佳实践,但是没起到预期效果?
• 团队应该怎么做,以避免再次发生类似事故?
• 在事故发生时,我们掌握了哪些信息,能让我们更快地理解事故原因?
• 有什么工具可以帮我们降低事故严重性和持续时间?
• 这种问题之前发生过吗?有没有什么模式?
• 卷入事故的团队,是不是犯了更多主动失误?发生了什么?
除了提问分析,还要分析事故数据,发现模式。
将模式转变成工具和最佳实践,防患于未然
让 Core SRE 团队和关键工程团队配合工作,一方面 SRE 团队可以更好地理解痛点,一方面也可以传达最佳实践等理念。
工具建设,收集各方面指标,这个就不一一具体介绍了。
在现场,Katharina 将为我们具体阐述背后的各种理念和做法。
2018QCon全球软件开发大会北京站目前正在8折报名中,感兴趣的不要错过。有任何问题可咨询购票经理Hanna,电话:15110019061,微信:qcon-0410。
从工程文化和运维理念理解Netflix的更多相关文章
- centos7系统管理和运维实战
centos7系统管理和运维实战 centos7安装配置 yum install -y net-tools >/etc/hostname echo "sqlserver01" ...
- paip.多维理念 输入法的外码输入理论跟文字输出类型精髓
paip.多维理念 输入法的外码输入理论跟文字输出类型精髓 通常,我们的输入法使用的外码是拼音,但是,这个的用户体验很差.. 应该使用多个外码类型... ##按照词汇来源,有如下几个 固有词ati 来 ...
- DevOps的故事(如何整合开发和运维?)
在一个与我们平行的世界中,有一个软件开发公司.这个公司所做的产品用户量近期增长的十分迅猛,但是令CTO头疼的是公司的两大部门:开发部和运维部近期也是“掐”得厉害.为解决这个问题,CTO决定倒入现在十分 ...
- 专访知乎张伟:RFC技术评审机制如何助力知乎实现工程文化落地
2017年5月20-21日,MPD工作坊·上海站将于上海徐汇区光大会展中心举办,本届MPD工作坊请到了知乎工程高级总监张伟进行主题为<工程师文化落地6项指南>的3小时深度分享.在工作坊举办 ...
- dba和运维专家们说有丰富的大型分布式系统架构设计经验纯属扯淡
如果,一开始就从事dba和运维的专家们说他们有丰富的大型分布式系统架构设计经验,那纯属扯淡.除非,他们从是从开发专家或者架构师转型而来,那么他们才有资格说自己有丰富的大型分布式系统架构设计经验. 运维 ...
- Harbor实现容器镜像仓库的管理和运维
本次分享主要讲述了在开发运维中的管理容器镜像方法.为了便于说明原理,较多地使用Harbor作为例子. 内容主要包括: 开发和生产环境中镜像仓库的权限控制: 镜像远程同步(复制)的原理: 大规模应用镜像 ...
- 没有CTO的Netflix有哪些值得我们学习的工程文化?
作者介绍: 杨波,拍拍贷基础框架研发总监.具有超过 10 年的互联网分布式系统研发和架构经验,曾先后就职于:eBay 中国研发中心(eBay CDC),任资深研发工程师,参与亿贝开放 API 平台研发 ...
- 单表60亿记录等大数据场景的MySQL优化和运维之道
此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据 ...
- 【转】单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构
此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据 ...
随机推荐
- 追加XML
追加有两种情况,这个文档可能存在,也可能不存在 XmlDocument doc = new XmlDocument();XmlElement books; //将books声明在外边这样后面的代码才可 ...
- 区别@ControllerAdvice 和@RestControllerAdvice
@ControllerAdvice和@RestControllerAdvice都可以指向控制器的一个子集: // 指向所有带有注解@RestController的控制器 @ControllerAdvi ...
- HDU 1710 二叉树遍历
首先.先序遍历是先访问根节点.然后左节点 然后右节点.从根节点开始 直到它的子节点没有左节点才开始回溯访问上一个节点的右节点.同理.中序遍历 先访问左节点 然后是父节点 然后是右节点.从根节点开始 直 ...
- HDU 4802 && HDU 4803 贪心,高精 && HDU 4804 轮廓线dp && HDU 4805 计算几何 && HDU 4811 (13南京区域赛现场赛 题目重演A,B,C,D,J)
A.GPA(HDU4802): 给你一些字符串对应的权重,求加权平均,如果是N,P不计入统计 GPA Time Limit: 2000/1000 MS (Java/Others) Memory ...
- >CH07-cubemap
使用rendermonkey进行一个天空球的贴图,内容来自<<shaders for gpa>> 不知道是不是用的182版RM的原因,照着书上做一个天空球的CUBEMAP,老不 ...
- Swift网络封装库Moya中文手册之Authentication
Authentication 安全验证可能有点复杂,一些网络请求需要认证,这里我们讨论两种常见的. Basic HTTP Auth HTTP auth是HTTP协议自带的用户名/密码验证.如果你使用的 ...
- 使用MyEclipse开发Java EE应用:EJB项目开发初探(下)
你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] 三.EJB 3.x项目中的持久性支持 当创建EJB 3.x项目时,作为选项您可以添加JPA ...
- spring核心容器
容器:用来包装或装载物品的储存器 web服务器与jsp.servlet的关系: 从程序文件存放的位置 程序文件要放到web服务器上 从程序执行的方式 程序的从初始化到消亡都是web服务器管理的 从以 ...
- Vue 相关难点汇总
1. 父子组件的双向数据绑定,所以在子组件是不允许修改父组件的属性的. // 解决办法 // 在子组件data中定义一个父组件传递过来的副本,再把该副本利用this.$emit("" ...
- 电脑同时安装python2和python3, 如何实现切换使用
由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因此如何让两个版本的Python兼 ...