SRE vs DevOps vs 平台工程

SRE vs DevOps vs 平台工程

本文翻译自 SRE vs. DevOps vs. Platform Engineering

本文涉及到了 SRE 、平台工程和 DevOps 多个层面的比较。可以考察下各自的关键组件。

在过去的几年里,许多科技企业一直在研究一套通用的最佳实践——通过在平台上创建和部署应用程序来利用云技术。这些最佳实践可以分为三个部分,例如分隔或容器化、一致和持续交付,以及开发可观察的系统。

采用云原生的组织有很大的区别,有的包含许多很大的部门,也有原子能开发团队。有两个新方法给这些团队提供支持:

  1. Site Reliability Engineering
  2. 平台工程

可以说 SRE 和平台工程是典型和传统的运维团队的后继。也可以说 SRE 为软件工程领域带来了更多的纪律。

什么是 Site Reliability Engineering(SRE)?

Site Reliability Engineering 是工程师创建系统并可以以一种可靠的风格运维应用的地方。最初的 SRE 概念起始于 Google,并在 Google SRE Book 中整洁的记录。

通过 SRE 的帮助,工程师可以定义服务级别的目标。一旦目标定义,则系统被开发出来去实现这些目标。最终,这些系统进一步扩展为许多平台,分别解决不同领域的问题,例如事故管理、故障缓解甚至是移除单点故障。

SRE 方法的一个非常关键的方面是,每个故障都会被认为是一个故障,必须执行有找到故障原因的详细根因分析。此外,在系统级别引入了在可靠性方面持续进展的修正度量。

什么是平台工程?

此时,平台工程师监控软件开发过程的整个生命周期,也就是从代码到产品。作为这个过程的一部分,平台工程师开发可以帮助软件工程师快速编码和部署软件的工作流。如果我们看一个基础级别的工作流系统,它包含一个源代码系统,可以进一步连接到一个集成系统。

由于应用开发者的数量增长。我们可以推断平台工程师也会相应的逐步发展。平台工程师花费大量时间在许多最佳实践,以及利用平台能力上引导应用开发者。

什么是 DevOps ?

在过去的几十年里, DevOps 获得了极大的欢迎。另一个最近广泛采用的术语是 GitOps。通常情况下,DevOps 和 GitOps 是一组松散编撰的原则。这些原则用于监控和管理基础设施的不同元素。

DevOps 从更广泛的议程开始,以消除运营团队和开发团队之间存在的传统孤岛。因此,基础设施自动化和工程应用等策略得到了更广泛的接受。

SRE vs DevOps

DevOps 的重点主要放在自动化的内容方面,而 SRE 则更多地放在方法部分。以下三个差异可帮助您更好地了解两者:

  1. 新功能:DevOps 负责创建新功能,而 SRE 必须确保不会因为这些新功能而进一步失败。
  2. 流程:DevOps 团队的视角是将应用程序从开发转移到生产,所以他们知道涉及的流程。而 SRE 团队只从生产的角度来看。
  3. 重点领域:DevOps 团队主要关注产品开发的速度和连续性。但是,SRE 团队专注于可靠性、可扩展性和可用性。

SRE 和平台工程的差异

  • 工具

在 SRE 角色中,最常用的工具 Prometheus 和 Grafana 主要用于收集不同的指标,例如内存消耗和处理器使用率。然而,平台工程师使用 Crossplane 等工具来管理基础设施,使用 Qovery 来帮助他们获得生产环境的预览,以及使用 GitLab CI 用于持续开发应用程序。

  • 角色

为 SRE 和平台工程建立独立团队的一个关键因素是角色的差异。虽然 SRE 和平台工程师都需要强大的系统工程技能,而不是编程知识,但角色实际上是不同的。 SRE 在危机管理方面表现更出色,并且在进行故障排除时会产生某种肾上腺素激增的感觉。相反,平台工程师更像是一个典型的软件工程师。他们更喜欢处理大型复杂问题,不喜欢被打扰。

  • 目标

虽然听起来很相似,但 SRE 团队的目标是为极其可靠的应用程序提供基础架构。平台工程师的目标是创建和交付纯粹用于快速应用程序开发的基础设施。

DevOps 和 SRE 团队的通用工具

如果我们谈论 SRE,其中最常用的工具是 Prometheus 和 Grafana。这两个用于收集和可视化各种指标。这些指标包括 CPU 使用率、内存和磁盘空间。此外,SRE 还使用事件报告工具,例如 OP5、PagerDuty、xMatters 等。

但是,如果我们看一下 DevOps 工程师的角色,使用最广泛的工具包括集成开发环境、用于持续集成和开发的 Jenkins、用于变更管理的 JIRA、SVN 和 GitHub。

SRE、DevOps 和平台工程如何协同工作

如果我们仔细观察每个团队的工作,SRE 团队主要专注于构建可以可靠运行的应用程序。平台可确保工程师在运行这些应用程序的基础设施上无缝运行。 DevOps 是一组有助于加快上述两个过程的过程。因此,这三者必须一起发挥作用,才能交付可靠的软件应用程序。

平台工程与 DevOps

虽然有人说 DevOps 只是平台工程的另一个奇特名称,但二者还是有一些区别。正如我们所知,DevOps 就是利用工具来简化部署过程,并通过自动化和可视化进一步管理和监控应用程序。

平台工程使用这些工具、最佳实践和流程来创建可重用的服务和工具,供组织中的不同团队使用。

虽然这三种技术方法具有各自独立的功能,组织可以选择其中的任何一种;然而,在理想情况下,最好同时拥有这三者,以确保您的技术驱动的自动化项目在经过一系列流程和最佳实践后能够快速、可靠地交付。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注