SRE与DevOps比较


SRE代表站点可靠性工程(或有时称为站点可靠性工程师),它是一种IT操作方法,优先考虑软件开发常用的工具和方法。
换句话说,您不会使用传统的IT策略(例如手动部署)来处理IT任务(例如应用程序部署和监视),而是使用基于代码的自动化工具(例如“基础结构即代码”解决方案)。
同时,可以用不同的方式定义DevOps,但是大多数定义可以归结为DevOps是一种促进开发人员与IT团队之间协作的哲学。DevOps还与某些与SRE紧密相关的方法(例如持续部署/连续交付)紧密结合。
因此,在较高的层次上,SRE和DevOps都(至少部分地)强调了核心思想,即开发人员应在IT运营工作中扮演更重要的角色。但是,当您仔细研究这两个概念时,会出现某些差异。
 
SRE和DevOps的历史
这些差异之一是这两个概念的历史演变。
从概念上讲,SRE是一个较旧的想法。它起源于2003年在Google内部,当时该想法如此强大,以至于创建了一个专门用于SRE微型网站,并提供了几本SRE全长书籍
DevOps有点新。它可以追溯到2008年左右(确切的时间表有些模糊),在此之后的几年中才开始成为主流。(与SRE不同,DevOps概念在其背后没有Google的支持。)
SRE和DevOps的独特历史渊源和叙述反映了它们是不同概念的事实。从历史的角度来看,提出SRE仅仅是DevOps的扩展或“下一个阶段”是非常错误的。
 
连续性区别
SRE和DevOps之间的另一个区别是“连续性”在每个概念中扮演的角色。
无论是应用程序开发,测试,部署还是监视,过程都应该是连续的,这是DevOps不可或缺的一部分。当然,大多数DevOps流程实际上并不是连续的,但DevOps的主要目标是使流程尽可能一致和稳定。
SRE概念当然不会拒绝连续过程。实际上,它在大多数方面都暗中鼓励他们。但是连续性不是一个明确的目标。
听起来好像DevOps只是简单地将“ 连续性continuous”变成了流行语,而SRE却没有。
但是这里所涉及的不仅仅是语义,术语上的差异更重要,因为在DevOps中,有许多特定的工具与连续过程一起使用。为了“执行” DevOps,您将依赖于持续集成服务器,测试自动化,发布自动化套件等。相比之下,与SRE相关的工作流程并不一定需要那种为DevOps提供动力的连续自动化工具集,尽管它们绝对兼容。
 
开发与运营
最后,也许SRE和DevOps之间的最大区别在于,在SRE中,开发人员的观点是主要观点。通常,SRE就是要采用对开发人员有意义的工具和概念,并将其应用于IT运营。
相比之下,DevOps通常试图使开发人员与IT Ops的关系更像一条双向路。与其说要向IT工程师强加开发人员的工具和思维方式,不如要确保两个团队都了解彼此的问题和方法,以便他们可以更有效地相互支持。
实际上,有些开发人员会让您相信DevOps通过使用IT Ops工具和方法将其置于IT Ops角色中,从而“杀死了开发人员”。我还没有收到关于SRE损害开发人员的类似抱怨,这可能是因为SRE对开发人员的思维方式的特权比DevOps更为重要。
 
总而言之,很难说SRE代表DevOps的下一阶段,或者这两个概念的含义完全相同。另一方面,SRE和DevOps之间几乎没有什么明显的区别。每个想法背后的思想可能会有细微差别,以及与之相关的术语和(在较小程度上)工具。但是,很难说除了在对待开发人员方面有些不同的方式之外,还有一些基本的概念上的区别。
这就是说,不必担心SRE和DevOps之间的差异。两者都是可塑的概念,其含义在很大程度上取决于旁观者。