Netflix 是业界微服务架构的最佳实践者,其基于公有云上的微服务架构设计、持续交付、监控、稳定性保障,都为业界提供了大量可遵从的原则和实践经验。

在运维这个细分领域,Netflix 仍然是最佳实践的典范。世界顶级的互联网公司是如何定义运维以及如何开展运维工作的。

Netflix 运维现状

Netflix 是没有运维岗位的,和运维对应的岗位是SRE(Site Reliability Engineer).SRE≠运维,SRE 理念的核心是:用软件工程的方法重新设计和定义运维工作。

改变之前靠人去做运维的方式,转而通过工具体系、团队协作、组织机制和文化氛围等方式去改变,将之前处于研发体系最末端的运维,拉回到与开发肩并肩的同一起跑线上。

为什么 Netflix 会做得如此极致?

可以从 Netflix 的技术架构、组织架构、企业文化等几个方面来看。

1. 海量业务规模下的技术架构和挑战

引入了灵活的微服务架构,提高了开发人员的开发效率。但架构复杂度大大增加,已经无法靠人工去掌控了,为后续的交付和线上运维带来了极大的难度和挑战,所以必须寻求在此架构之上的更为有效和统一的技术解决方案来解决复杂度认知的问题。进而,在这一套统一的技术解决方案之上,开发和运维产生了新的职责分工和协作方式,也就是SRE。这时,微服务架构下的运维就必须要靠软件工程思路去打造工具支撑体系来支持。也就是要求微服务架构既要能够支持业务功能,还要能够提供和暴露更多的在后期交付和线上运维阶段所需的基础维护能力。

简单举几个例子,比如服务上下线、路由策略调整、并发数动态调整、功能开关、访问 ACL 控制、异常熔断和旁路、调用关系和服务质量日志输出等等,要在这些能力之上去建设我们的运维工具和服务平台。

可以看到,微服务架构模式下,运维已经成为整体技术架构体系中必不可少的一部分,而且与微服务架构相关的体系是紧密相连不可拆分的。

DevOps 理念及衍生出来的一系列话题,可以仔细思考一下,其实也是同样的背景和逻辑。DevOps 想要解决的开发和运维之间日益严重的矛盾,究其根本,还是微服务架构背后带来的技术复杂度在不断提升的问题。

  Netflix 带给我们的启示一:微服务架构模式下,我们必须换一个思路来重新定义和思考运维,运维一定要与微服务架构本身紧密结合起来。

2. 更加合理的组织架构和先进的工具体系及理念

上面提到,在微服务架构模式下,运维已经成为整体技术架构和体系中不可分割的一部分,两者脱节就会带来后续一系列的严重问题。

早在 2012 年,甚至更早之前,Netflix 就已经意识到了这个问题。在组织架构上,将中间件、SRE、DBA、交付和自动化工具、基础架构等团队都放在统一的云平台工程(Cloud and Platform Engineering)这个大团队下,在产品层面统一规划和建设,从而能够最大程度地发挥组织能力,避免了开发和运维的脱节。

  Netflix 带给我们的启示二:合理的组织架构是保障技术架构落地的必要条件,用技术手段来解决运维过程中遇到的效率和稳定问题才是根本解决方案。

3. 自由与责任并存的企业文化

Netflix 的企业文化是 Freedom & Responsibility,也就是自由和责任并存,高度自由的同时,也需要员工具备更强的责任心和 Owner 意识。

体现在技术团队中就是,You Build It,You Run It。工程师可以随时向生产环境提交代码或者发布新的服务,但是同时你作为 Owner,要对你发布的代码和线上服务的稳定运行负责。

在这种文化的驱使下,技术团队自然会考虑从开发设计阶段到交付和线上运维阶段的端到端整体解决方案,而不会是开发就只管需求开发,后期交付和维护应该是一个叫运维的角色去考虑。No,文化使然,在 Netflix 是绝对不允许这种情况存在的,你是开发,你就是 Owner,你就要端到端负责。

  Netflix 带给我们的启示三:Owner 意识很重要,正确的做事方式需要引导,这就是优秀和极致的距离。

问题:

现在很多公司在采用了微服务架构后,就没有充分考虑到后续基于微服务架构的运维问题。而且在运维团队设置上,仍然是脱离整个技术团队,更不用说将其与中间件和架构设计等团队整合拉通去建设,自然也就谈不上在产品层面的合理规划和建设了。

因此导致的问题就是运维效率低下,完全靠人工,线上故障频发,但是处理效率又极低,开发和运维都处于非常痛苦的状态之中,运维团队和成员也会遭遇到转型和成长的障碍。

总结:

1.微服务架构模式下,我们必须换一个思路来重新定义和思考运维,运维一定要与微服务架构本身紧密结合起来。

2.合理的组织架构是保障技术架构落地的必要条件,用技术手段来解决运维过程中遇到的效率和稳定问题才是根本解决方案。

3.Owner 意识很重要,正确的做事方式需要引导,这就是优秀和极致的距离。

4.从人工运维转向通过工具体系、团队协作、组织机制和文化氛围等方式去改变。

为什么Netflix没有运维岗位?的更多相关文章

  1. Netflix业务运维分析和总结

    目录 Netflix工作环境的分析和思考 为什么Netflix会做得如此极致? 海量业务规模下的技术架构和挑战 更加合理的组织架构和先进的工具体系及理念 自由与责任并存的企业文化 当前问题: 精选提问 ...

  2. linux运维工作内容及岗位要求

    什么是Linux?大家日常使用电脑听歌.打游戏娱乐或处理日常工作时,接触到最多的就是Windows操作系统,电脑如果不安装Windows系统是无法进行娱乐和工作的,所有的软件程序都必须运行在操作系统之 ...

  3. 云计算和AI时代,运维应该如何做好转型?

    云计算和AI时代,运维应该如何做好转型? 今天我们来聊一聊,在云计算和AI时代,运维应该如何做好转型?今天的内容可以说是我们前面运维组织架构和协作模式转型的姊妹篇.针对运维转型这个话题,谈谈我的思考和 ...

  4. 谷歌SRE运维模式解读

    谷歌SRE运维模式解读 前面我和你分享了一些关于运维组织架构和协作模式转型的内容,为了便于我们更加全面地了解先进的运维模式,今天我们再来谈一下谷歌的SRE(Site Reliability Engin ...

  5. linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装

    如何成为一个优秀的linux运维人员?      如果你有机会和条件:环境能够磨练一个人的能力和意志.      大胆的做你从未做过的项目,每一个项目都是对自身的极大提升.      有好的环境资源不 ...

  6. 转:linux运维工程师

    运维中关键技术点解剖:1 大量高并发网站的设计方案:2 高可靠.高可伸缩性网络架构设计:3 网站安全问题,如何避免被黑?4 南北互联问题,动态CDN解决方案:5 海量数据存储架构 一.什么是大型网站运 ...

  7. 运维人员:走好你的IT运维路

      转自 http://os.51cto.com/art/201303/387120.htm   现阶段,大多数运维人员只是处于被动低效率手工救火的状态,企业对其重视程度不高,导致部分运维人员对自己的 ...

  8. Linux系统运维工程该具备哪些素质

    记得在上高中时,物理老师总是会对我们一句话:"学习是件苦差事."工作后发现,其实做运维也是件苦差事.最为一名运维工程师,深知这一行的艰辛,但和IT行业其他职务一样,那就是付出的越多 ...

  9. 鹅厂优文 | 怎样用AI运维

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由 织云平台团队 团队发布在腾讯云+社区 诞生背景 最近这些年,运维行业提出了不少概念,各种各样的"XX运维"可以说 ...

随机推荐

  1. 1067 试密码 (20分)C语言

    当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死.本题就请你实现这个小功能. 输入格式: 输入在第一行给出一个密码(长度不超过 20 的.不包含空格. ...

  2. 使用Theia——添加语言支持

    上一篇:使用Theia——创建插件 Theia——添加语言支持 Theia中TextMate的支持 使用TextMate语法可以为大部分源文件提供精准的着色修饰,虽然这只是在语法级别上(没有语言本身的 ...

  3. shell正则表达式和cut命令

    正则表达式 符号 描述 $ 匹配输入字符串的结尾位置 () 标记一个子表达式的开始和结束位置 * 匹配前面的子表达式零次或多次 + 匹配前面的子表达式一次或多次 . 匹配除换行符(\n)之外的任何单字 ...

  4. 推荐中的多任务学习-YouTube视频推荐

    本文将介绍Google发表在RecSys'19 的论文<Recommending What Video to Watch Next: A Multitask Ranking System> ...

  5. 手算CRC及其实现

    前言: 这篇文章主要讲的是如何手算CRC以及运用CRC,更侧重方法的步骤,对原理方面不做探讨. 方法也是按照我个人理解的来,所以并不专业~ 一些搬过来的代码我也修改了一下下 如果想了解原理的可参考资料 ...

  6. Map2Shp7专业版新增功能

    Map2Shp7专业版产品在上一版基础上,新增并优化了用户界面.转换对象.专业数据模型等相关功能.具体新增特性如下: 用户界面采用最新流行的Microsoft Office 2016 风格的界面(Ri ...

  7. cf - 920 c 求能否实现交换

    C. Swap Adjacent Elements time limit per test 1 second memory limit per test 256 megabytes input sta ...

  8. java 运行和编译

    一.编译->运行 1.编译 javac  文件名.java  生成 文件名.class 2.运行 java 文件名 注意:正在运行的是 文件名.class 因此:修改源文件后,要先编译,再运行 ...

  9. Filder配置及使用教程

    https://www.cnblogs.com/woaixuexi9999/p/9247705.html

  10. .net Core 2.*使用autofac注入

    创建项目 1.创建一个.net core 项目 2.创建一个类库 2.1创建interface文件夹 2.2创建Service文件夹 好了给大家看项目目录 对的.我创建了一个IUserService和 ...