DevOps 与 SRE:定义和异同

发表于 2023-2-3 15:29:28
应用程序开发变得越来越复杂,导致组织采用更多方法来支持可扩展、可靠的软件。DevOps 和站点可靠性工程 (SRE) 是通过改进自动化、协作和监控来增强产品发布周期的两种方法。了解 DevOps 和 SRE 的异同可以帮助您决定哪个角色最适合您。

比较 DevOps 与 SRE
在比较 DevOps 与 SRE 时,您可能会注意到 SRE 可以与 DevOps 一起工作以实现持续改进。没有单一的方法来实施 DevOps,这意味着您可以将其视为一种思维方式,同时将 SRE 视为一种角色。DevOps 和 SRE 当然有重​​叠,但它们并不相同。下面详细介绍了 DevOps 的核心原则以及 SRE 如何与它们保持一致:

打破孤岛
打破部门或团队之间的壁垒并鼓励协作和沟通是 DevOps 的核心作用,它改进了开发管道。DevOps 专业人员对整个软件开发流水线有独到的见解,并将他们的开发和运维知识结合起来,让开发人员能够洞察运维。SRE 通过创建整个组织都可以使用的文档来实现这一点。团队成员可以通过事件回顾将任何事件反馈到开发实践中。

接受失败
有时软件可能会失败,这就是专业人员进行测试的原因。DevOps 团队降低风险并确保相同的错误不会发生两次。这就是测试自动化成为 DevOps 核心功能的原因。它有助于发现错误并在发布周期的早期发现它们,这样更容易修复。SRE 接受失败,同时也庆祝并使用它。SRE 可以通过战略性地使用错误预算来加速开发,同时保持可靠性。

逐渐改变
DevOps 部署较小的增量更改,而不是将重大更改部署到生产中。他们更频繁地部署这些微小的变化。这样可以更轻松地查看任何更改。这些控制错误可能会发生并在必要时回滚更改。SRE 提倡 A 和 B 测试以及增量部署。这使得更改更加渐进,并实现了减少任何故障影响的相同目标。

利用工具和自动化
优化软件的发布管道对于使频繁发布成为可能并确保高质量水平至关重要。使用自动化等工具构建发布管道是 DevOps 的职责。这提高了准确性和速度,同时也最大限度地降低了人为错误的风险。自动化有助于消除不必要的手动重复性工作,这些工作容易出错,并允许更快的反馈循环。自动化以组织在软件生产中所需的速度交付。

当组织自动化或简化流程时,它会提高一致性。它还可以加快流程,这有助于实现 DevOps 目标。许多 SRE 工具减少了手动工作的需要。

衡量一切
如果无法衡量结果,就很难定义结果。DevOps 使用指标和数据来了解其计划的结果,例如使用自动化来提高效率。SRE 实践鼓励监控一切并开发深度指标。这些可以为组织提供做出更明智决策所需的洞察力。

什么是 DevOps?
DevOps 是一个将软件开发与其运维联系起来的过程。该名称反映了两个部分,开发和运营。DevOps 源于一系列实践,包括敏捷开发系统和精益制造。DevOps 的主要目标是在不对可靠性产生任何影响的情况下,缩短更改代码和将更改送达客户的时间。它希望将发展目标与组织需求保持一致以创造价值。下面提供了有关 DevOps 的更多详细信息:

持续部署
DevOps 旨在提高新代码部署的速度。更快的增量更改可以对客户的要求做出更标准的响应。它还可以减少因大规模、不频繁的部署而发生任何重大事件的可能性。

开发运营协作
DevOps 的核心功能是消除开发和运营团队之间的孤岛。这允许团队在整个软件生命周期中高效地合作。以下是鼓励开发和运营之间合作的做法:

目标一致: DevOps 确保两个团队都了解他们的目标。这些团队分享他们同意的路线图和指标,以帮助他们保持一致。

以运营为重点的开发:通常,开发和运营会就如何推进开发进行协作。运营提出建议以帮助他们在生产中维护代码。
资源和数据的可用性

DevOps 的监控数据是必不可少的,因为 DevOps 支持衡量有价值的数据并将其用作决策的基础。默认情况下,整个组织都可以访问数据。拥有大量可用数据不足以做出明智的决策。DevOps 团队将他们的指标置于背景中以提供深入的洞察力。他们确保设置监控以帮助了解他们的系统。

什么是 SRE?
SRE 是 DevOps 的一种实现,具有类似的思维过程。SRE 的目标是使工程目标与客户满意度保持一致。团队通过关注可靠性来实现这一目标。以下提供了有关 SRE 的更多详细信息:

SLI 和 SLO
可靠性是一种与客户体验相一致的品质。SRE 允许专业人员使用服务水平指标 (SLI) 来衡量客户的满意度。SLI 是显示组织的服务在用户旅程的关键点期间如何执行的指标。服务级别目标 (SLO) 为客户可以容忍 SLI 的不可靠性设置了限制。

事件响应
SRE 表明不可能有 100% 的正常运行时间,一些故障是不可避免的。这使得事件响应成为 SRE 最佳实践的重要功能。更快地响应事件可以减少它们对客户的影响。拥有能够实现更快速响应的流程至关重要。以下是事件响应的组成部分:

对事件进行分类:该组件根据严重性和区域将事件分为不同的类别。这允许团队分配事件并提醒正确的团队成员。

警报:这决定了可用于快速响应事件的人员。它为谁接听电话以及何时接听电话设定了准则。

准备运行手册:运行手册是一组指导响应者完成特定任务的文档。它们有助于事件响应,包括要查找的方面以及针对每种可能性的必要步骤。

审查事件回顾:回顾记录关键通信、时间表、资源和相关监控数据。SRE 团队将这些作为一个整体进行审查,以确定任何后续任务或修改其他资源。

预算错误
客户可以接受少量的不可靠性。如果性能满足组织的 SLO,客户可以对组织的服务保持满意。错误预算是组织在其服务违反其 SLO 之前拥有的空间量。错误预算可以帮助组织做出优先级决策。例如,错误预算较大的服务可以加速开发。当开发团队利用错误预算时,他们知道是时候关注可靠性了。SRE 允许运营团队通过此过程影响开发以反映客户的需求。

DevOps 和 SRE 的区别
比较 DevOps 和 SRE 时,您会发现它们共享相似的目标和方法。下面详细介绍 DevOps 和 SRE 之间的本质区别:

开发者角色
SRE 使用与开发人员相同的思维方式和工具来解决 IT 运营的挑战。例如,通过建立错误预算,团队可以提高服务水平。在这些情况下,SRE 从软件工程师的角度执行大部分任务。DevOps 更侧重于结合 ITOps 工程师和开发人员的技能,而不是用一个来取代另一个。

DevOps 实施与文化
通常,DevOps 可以更多地关注文化优先事项和目标,而不是具体的实施流程。在 DevOps 中,没有任何特定的工具可供使用或遵循。做 SRE 没有具体的流程,但是它提供了更严谨的方法来解决问题。它还可以提供要使用的工具类型。

组织架构
在许多情况下,DevOps 不会取代现有的 IT 和开发人员运营角色或部门。组织可能会聘请一些 DevOps 工程师来指导 DevOps,但他们不会用 DevOps 工程师取代每个 IT 角色。在 SRE 中,组织有时可以将角色视为取代 IT 运营的一种方式。

扩展到其他 IT 角色
DevOps 增加了组织使用 DevOps 的方式,而不仅仅是 IT 运营和开发团队。很少听到关于 QAOps 的讨论,QAOps 将 QA 工程师带入 DevOps,或者 DevSecOps 将 DevOps 与安全相结合。SRE 没有这种类型的使用扩展。

帮助中心|标签云|免责声明|申请修改|世界地图|锐阔网

Copyright©GMT+8, 2024-9-20 01:14

京ICP备2021033201号

京公网安备11010502050698号

快速回复 返回顶部 返回列表