为什么组织需要站点可靠性工程师

SRE 是高效组织中软件工程、系统工程、实施 DevSecOps 等方面的重要组成部分。
2 位读者喜欢这篇文章。
Puzzle pieces coming together to form a computer screen

Opensource.com

在本系列文章的最后一篇中,我总结了关于有效站点可靠性工程 (SRE) 的最佳实践,我将介绍站点可靠性工程的一些实际应用。

软件工程和系统工程之间存在一些显着差异。

软件工程

  • 仅关注软件开发和工程。
  • 涉及编写代码以创建有用的功能。
  • 时间花费在开发可重复使用且易于扩展的软件上。
  • 具有问题解决导向。
  • 软件工程有助于 SRE。

系统工程

  • 关注整个系统,包括软件、硬件和任何相关技术。
  • 时间花费在构建、分析和管理解决方案上。
  • 处理定义系统的特征并将需求反馈给软件工程。
  • 具有系统思维导向。
  • 系统工程使 SRE 成为可能。

站点可靠性工程师 (SRE) 利用软件工程和系统工程技能,从而为组织增加价值。

由于 SRE 团队运行生产系统,因此 SRE 会生成最有影响力的工具来管理和自动化手动流程。当 SRE 参与其中时,软件可以更快地构建,因为 SRE 大部分时间都在为自己使用而创建软件。由于 SRE 的大多数任务都是自动化的,这需要大量编码,因此引入了开发和运营的健康结合,这对站点可靠性非常有益。

最后,SRE 使组织能够自动快速扩展,无论是向上扩展还是向下扩展。

SRE 和 DevSecOps

SRE 通过利用日志、指标和跟踪来帮助构建端到端有效的监控系统。SRE 支持快速、有效和可靠的回滚以及根据需要自动向上或向下扩展基础设施。这些在安全漏洞期间尤其有效。

随着云和基于容器的架构的出现,数据处理管道已成为 IT 架构中的重要组成部分。SRE 帮助配置对数据处理管道的最严格访问。

[ 立即下载: 实施 DevSecOps 指南 ]

最后,SRE 帮助开发处理事件的工具和程序。虽然大多数这些事件都侧重于 IT 运营和可靠性,但它可以轻松扩展到安全性。例如,DevSecOps 涉及将开发、安全和运营与高度自动化相结合。这是一个开发、安全和运营团队协同工作以支持和维护组织的应用和基础设施的领域。

设计 SRE 和预生产计算环境

预生产或非生产环境是 SRE 用于开发、部署和测试的环境。

非生产环境是自动化的试验场。但不仅仅是应用程序代码需要非生产环境。任何相关的自动化流程,主要是 SRE 开发的那些流程,都需要预生产环境。大多数组织都有多个预生产环境。通过尽可能地模仿生产环境,预生产环境提高了对发布的信心。您的非生产环境中至少应有一个环境类似于生产环境。在许多情况下,无法复制生产数据,但您应尽力使非生产环境与生产环境尽可能接近。

预生产计算和 SRE

SRE 帮助通过使用自动化和专用工具来启动相同的应用程序服务环境。这至关重要,因为您可以使用 SRE 开发的脚本和工具在几秒钟内快速启动非生产环境。

聪明的 SRE 将配置视为代码,以确保快速实施测试和部署。通过使用自动化的 CI/CD 管道,可以无缝地进行应用程序发布和热修复。

最后,通过开发有效的监控解决方案,SRE 有助于确保预生产计算环境的可靠性。

与预生产计算密切相关的领域之一是内部循环开发。

执行内部循环开发

想象一下两个循环,一个内循环和一个外循环,形成 DevOps 循环。在内循环中,您进行编码、构建、运行和调试。此循环主要发生在开发人员的工作站或其他一些非生产环境中。

一旦代码准备就绪,它就会被移动到外循环,该过程从代码审查、构建、部署、集成测试、安全性和合规性开始,最后是预生产发布。

外循环和内循环中的许多过程都由 SRE 自动化。

Image of a DevOps Loop

(Robert Kimani,CC BY-SA 40)

SRE 和内部循环开发

SRE 通过提供容器化部署工具来加速内部循环开发,从而实现快速迭代开发。SRE 开发的许多工具都围绕容器自动化和容器编排,使用 Podman、Docker、Kubernetes 等工具或 OpenShift 等平台。

SRE 还开发工具来帮助调试崩溃,例如 Java 堆转储分析工具和 Java 线程转储分析工具。

SRE 的总体价值

通过利用系统工程和软件工程,SRE 组织交付有影响力的解决方案。SRE 帮助实施 DevSecOps,其中开发、安全和运营与自动化重点交叉。

SRE 原则通过利用 SRE 组织交付的工具和流程来帮助最大化预生产环境的功能,因此可以轻松地在几秒钟内启动非生产环境。SRE 组织通过开发和提供必要的工具来实现高效的内部循环开发。

  • 改善最终用户体验: 这一切都是为了确保应用程序和服务的用户获得尽可能最佳的体验。这包括应用程序或服务的正常运行时间。应用程序应始终启动并运行,并且应保持健康状态。
  • 最大程度地减少或消除中断: 这对用户和开发人员都有好处。
  • 自动化: 正如俗话所说,您应该始终尝试将自己从当前手动执行的工作中自动化出来。
  • 规模: 在云原生应用和容器化服务的时代,大规模自动化可扩展性对于 SRE 以安全快速的方式向上或向下扩展至关重要。
  • 集成: SRE 组织所秉持的原则和流程可以,并且在许多情况下应该扩展到组织的其他部门,例如 DevSecOps。

SRE 是高效组织中的重要组成部分。正如本系列文章所证明的那样,SRE 的好处影响着许多部门和流程。

进一步阅读

以下是一些 GitHub 链接,指向我最喜欢的 SRE 资源

接下来阅读什么
标签
RobbzCharles
我是一位 Linux 爱好者和开源倡导者,目前正在转型为 SRE 角色。我始终努力学习更多知识,正在攻读红帽认证架构师 - 基础设施路径认证。除了对 Linux 的热爱之外,我还相信帮助他人,并热衷于回馈社区。

评论已关闭。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.