回到主页

SRE vs DevOps:它们有共同点吗?

原文by Stefan Thorpe

软件工程师试图通过大量的研究来简化软件的开发过程和生产过程。当然,这些努力会使软件的性能不断地发生变化,毋庸置疑, 这种变化会消耗大量的时间、人力和物力。

以上这种现象的发生,强调了软件管道开发和维护的必要性。所以,软件开发团队集思广益,力求为监控和维护软件应用程序寻找到最佳地解决方案。

多年来,IT团队用DevOps和可靠性工程(SRE)这两种方法,致力于提高软件工程的性能和质量。那么,如何在书面上对两者进行比较,分出伯仲呢?

什么是现场可靠性工程?

现场可靠性工程(SiteReabilityEngineering,SRE)是施工单位委托软件开发人员在软件的开发过程中对其应用程序不间断进行日常操作的一个过程。此种情况一般发生在施工方要求软件工程师协同团队一起作业时.

现场可靠性工程的发展历程

现场可靠性工程的概念始于2003年谷歌的一项计划。当时,谷歌正处在成长阶段,举步维艰,关于google的进一步发展壮大,最具争议的问题就是是否支持大规模软件系统的开发,以及跟软件开发相关的一些问题。

为了完成此项目标,Google组建了一支具有划时代意义的软件研发团队。该团队以开发软件新功能为主要目标,SRE是谷歌公司实现这一目标的主要措施,当然,此项措施在谷歌以外的领域也发挥了积极的作用。关于SRE小组的组建,主要考虑到以下两点 :

  1. 聘用“对编程语言、数据结构和算法以及性能有足够了解的软件工程师,编写软件”。
  2. ”组建一个有软件专业背景,以及系统工程背景的50人的专业团队” 摘自<<与工程部副总裁本·特雷诺尔谈SRE>>.

SRE努力缩短运营团队和开发团队之间的差距。当开发团队可能专注于快速生产时,操作团队将重点放在防止生产崩溃的措施上。SRE负责协调这两种不同的观点。

关于SRE的双面观点

SRE的正面观点

  1. SRE以客户需求为市场导向,这将有助于优化生产成本以及提高客户满意度。
  2. SRE所特有的可用性和可靠性优点,非常有助于使故障最小化并减少时间浪费。
  3. SRE避免不必要损失的发生,对事故的发生有极强的预见性,并采取最佳解决方案减少业务费用。
  4. 使用SRE技术有助于最小化故障的发生时间和消除早期功能故障对资源的影响。
  5. 故障减少将导致备件减少、分配系统成本降至最低、服务人力成本和备件储存成本降至最低。

SRE的反面观点

  1. 要找到合适的现场可靠性工程师并不容易,因为在编码和系统工程技能方面,门槛太高。
  2. 由于SRE是一门新的独特学科,当前关于如何建立和管理SRE团队的信息有限。
  3. 采取完全的、非正统的SRE方法,打破固有的传统模式,采取强有力的管理措施管理团队。

什么是DevOps?

DevOps是一种文化框架,在这个框架中,开发和运营人员之间的协作在整个产品或服务中发挥着至关重要的价值。这种方式改变了以往人们对工作的看法,开始重视技能的多样性在团队中发挥的作用。

为加快业务收益的回报率,DevOps鼓励实现必要的操作流程。同时,衡量技术调整的效果以及工作环境中的社会和文化变化。

DevOps的双面观点

DevOps的正面观点

  1. DevOps的主要目标是为提高产品质量,进一步增强客户满意度。
  2. 该方法旨在通过提高产品质量和客户满意度以及最终用户体验的输出等,改善技术价值流中的文化环境和完善工作流程。
  3. DevOps通过削除开发、操作过程中的障碍,打破了分层组织模式(部门墙)带来的弊端。
  4. 这些做法使业务目标与信息技术保持一致。每一项努力都是为了缩短反馈回路,实现持续改进,并根据客户的需求提供服务。
  5. DevOps支持并加快业务绩效,转变和鼓励IT团队,以提供创新,从而顺利实现业务目标。
  6. DevOps带来了数字变革。它包括技术创新,从而提高客户体验的满意度和增强员工的生产力。

DevOps的反面观点

  1. 对于新团队而言,DevOps的实施并不会很顺利。同时,DevOps转换会给组织带来新的挑战,并且可能不适合特定的工作环境。
  2. DevOps的优势是需要经过很长一段时间才能体现出来的。因此,这一过程需要耐心。
  3. DevOps与深刻的文化变革相联系,人们很难彻底改变以往的旧观念,所以经常遇到阻力。

SRE vs. DevOps 两者的不同之处

  1. 现场可靠性工程师一方面负责在部署应用程序后,做好相关的监视和服务工作,另一方面,DevOps工程师从一开始就负责执行开发自动化愿景。从项目开始到成果,DevOps工程师发挥着显而易见的作用。
  2. DevOps和SRE在开发过程中有共同之处。DevOps工程师在创建文化和在开发自动化任务交付系统的过程中占据了最高的位置。SRE是对DevOps的一种扩展,因为它在体现了DevOps的原理的同时,通过明确的测量方式来实现DevOps的可靠性。
  3. DevOps缩小了软件开发和软件操作之间的差距。通过大量实验,SRE得出了如何在各种DevOps实践中取得成功的办法 。两者都可以达到消除团队障碍以交付更好的产品的效果。这两个组织在目标上有着共同的立场,相互配合。

译者介绍:

刘劲辉,优维科技高级解决方案架构师 曾就职于阿里巴巴移动事业群,具有多年的业务运维和运维研发经验。曾负责开发建设基于阿里游戏中心 JWS 框架的自动化运维平台,对 DevOps 实践落地有丰富经验。