SRE是什么,与传统运维有什么不同?

米饭5个月前行业资讯279

SRE,Site Reliability Engineering,中文翻译为站点可靠性工程师,这个词诞生于谷歌内部。将这个词语展开来说:首先,SRE的关注点在于可靠性;其次,SRE中的"S"指的是google.com网站(站点)。简单的从这个词来看,SRE就是负责维护google.com运行可靠性的工程师,当然随着时间的推移,SRE的维护对象不再局限于单一的网站服务,也包括非网站类的基础设施和系统。从以上解释来看,这不就是我们平常说的运维工程师嘛!那么SRE与我们传统认知的运维工程师有什么不同呢?


传统运维模式

传统运维模式的普遍做法是招聘运维工程师来运维计算机系统。运维工程师负责将现成的软件组件部署在生产环境中,主要工作在于应对系统中产生的各种需要人工干预的事件,以及来自业务部门的变更需求。随着系统变得越来越复杂,组件越来越多,用户流量不断上升,相关的事件和变更需求也会越来越多。于是公司需要招聘更多的运维工程师来应对日益增多的事件。可以看出,传统运维工程师的日常工作与研发工程师相差甚远,他们通常分属两个不同的团队:开发(Dev)和运维(Ops)。


优势

很多第三方工具厂商及系统集成厂商都有现成的工具和软件解决方案帮助一个相对初级的运维团队应对简单的系统维护操作,避免重新发明轮子。


劣势

直接成本。传统的运维工程师大部分依赖人工操作来处理系统维护事件以及变更的实施。随着系统复杂度的增加,部署规模的扩大,团队的大小基本与系统负载成线性相关,共同增长。

间接成本。从本质上来说,由于研发团队和运维团队背景各异,技术能力与工具使用习惯差距巨大,工作目标也截然不同。两个团队对产品的可靠程度要求理解不同,具体执行中对某项操作的危险程度评估与可能的技术防范措施也有截然不同的理解。这些细节上的分歧累积起来,最后逐渐演变成目标与方向上的分歧并形成内部沟通问题,这就是所谓的开发与运维之间的“混乱之墙”。


混乱之墙

混乱之墙

传统的研发团队和运维团队分歧的焦点主要在软件新版本、新配置的变更的发布速度上。研发部门最关注的是如何能够更快速地构建和发布新功能,而运维部门更关注的是如何能在他们值班期间避免发生故障,因为绝大部分生产故障都是由于部署某项变更导致的,不管是部署新版本,还是修改配置,甚至有时只是因为改变了用户的某些行为。

这两个团队的目标从本质上来说是互相矛盾的。极端的说,研发团队想要“随时随地发布新功能,没有任何阻拦”,而运维团队则想要“一旦一个东西在生产环境中正常工作了,就不要再进行任何改动”。


SRE模式

针对以上传统运维模式带来的问题,SRE模式从Google内部诞生:通过招聘软件工程师开发软件系统来维护系统运行以替代传统运维模式中的人工操作。换句话说,SRE就是在用软件工程的思维和方法论,通过设计、构建自动化工具完成以前由运维工程师手动操作的任务。


SRE和DevOps的关系

DevOps旨在打破IT组织中开发、运维、测试和安全各自为政的局面,它不是一个平台,不是一个岗位,也不是什么组织团体和角色,它是一种基于人与技术互动以改善关系和结果的指导原则和文化运动。SRE可以是一个工作岗位,也是我们探索的一系列工作的实践方式,如果认为DevOps是一种理念和工作方法,那么就可以认为SRE实现了DevOps中所描述的部分理念,换句话说,SRE是DevOps文化的具体实践。


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!  

云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:

《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq

想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ


相关文章

什么是 SRE?一文详解 SRE 运维体系

什么是 SRE?一文详解 SRE 运维体系

可观测性系统在任何有一定规模的企业内部,一旦推行起来整个SRE的运维模式,那么对于可观测性系统的建设将变得尤为重要,而在整个可观测性系统中,通常我们会分为如下三个方面:指标监控:即各种指标监控,比如基...

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

1.TCP相关API 和前一期的UDP基本是大差不差的,但是这里提供的方法来模拟对于网卡的操作是有一定的区别的,所示API如下:ServerSocket是Socket类对应到网卡给服务器使用...

Linux 导入MySQL数据库(四)

Linux 导入MySQL数据库(四)

一、导出数据库一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1、导出数据和表结构:mysqldump -u用户名 -p密码 数据库名...

Docker:容器化和虚拟化

Docker:容器化和虚拟化

虚拟化虚拟化是一种资源管理技术,它将计算机的各种实体资源(如CPU、内存、磁盘空间、网络适配器等)予以抽象、转换后呈现出来,并可供分割、组合为一个或多个电脑配置环境。这些资源的新虚拟部分是不受现有资源...

微服务保护和分布式事务(2)

微服务保护和分布式事务(2)

1.2 Sentinel:微服务保护的技术有很多,但在目前国内使用较多的还是 Sentinel,所以接下来我们学习 Sentinel 的使用。1.2.1 介绍和安装:Sentinel 是阿里巴巴开源的...

Linux CGroup资源限制(概念&限制进程CPU使用)

Linux CGroup资源限制(概念&限制进程CPU使用)

Linux CGroup资源限制(详解)最近客户认为我们程序占用cpu过高,希望我们限制,排查之后发现是因为程序频繁gc导致,为了精细化、灵活的的限制,想到了使用Linux CGroup。0...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。