关于站点可靠性工程你需要知道的

了解在您的组织中建立和维护 SRE 计划的基础知识和最佳实践。
5 位读者喜欢这篇文章。
Working on a team, busy worklife

opensource.com

什么是站点可靠性工程? 第一个站点可靠性工程 (SRE) 计划的创建者,Google 的 Benjamin Treynor Sloss 这样描述它:

站点可靠性工程是当您要求软件工程师设计一个运维团队时会发生的事情。

这是什么意思? 与传统的系统管理员不同,站点可靠性工程师 (SRE) 将可靠的软件工程原则应用于他们的日常工作。 对于外行人来说,一个更清晰的定义可能是:

站点可靠性工程是在大规模构建和支持现代生产系统的学科。

SRE 负责最大化基础设施和软件的可靠性、性能、可用性、延迟、效率、监控、紧急响应、变更管理、发布计划和容量规划。 随着应用程序和基础设施变得越来越复杂,SRE 团队可以帮助确保这些系统能够发展。

[ 阅读下一篇: 2022 年站点可靠性工程师成为最受欢迎的职位之一的 8 个原因 ]

SRE 组织做什么?

SRE 组织有四个主要职责:

  • 可用性: SRE 负责他们支持的服务的可用性。 毕竟,如果服务不可用,最终用户的工作就会受到干扰,这可能会严重损害您组织的信誉。
     
  • 性能: 一项服务不仅需要可用,而且还需要高性能。 例如,一个网站需要 20 秒才能从一个页面移动到另一个页面,这有什么用?
     
  • 事件管理: SRE 管理对影响客户的计划外中断的响应,例如中断、服务降级或业务运营中断。
     
  • 监控: 监控是每个 SRE 的基本要求,涉及收集、处理、聚合和显示关于系统的实时定量数据。 这可能包括查询计数和类型、错误计数和类型、处理时间和服务器生命周期。

有时,发布和容量规划也是 SRE 组织的责任。

SRE 如何维护站点可靠性?

SRE 角色是多样化的,具有许多职责。 SRE 必须能够快速识别问题、进行故障排除并在最大程度减少对运营中断的情况下缓解问题。

以下是典型 SRE 执行的任务的部分列表:

  • 编写代码: SRE 需要使用软件解决问题,无论他们是具有运营背景的软件工程师还是具有开发背景的系统工程师。
     
  • 待命: 这不是成为 SRE 最吸引人的部分,但它是必不可少的。
     
  • 领导作战室: SRE 在事件管理期间促进策略和执行的讨论。
     
  • 执行事后分析: 这是一个很好的工具,可以从事件中学习并识别可以实施的流程以避免未来的事件。
     
  • 自动化: SRE 往往会对手动步骤感到厌烦。 自动化不仅可以节省时间,还可以减少因人为错误造成的故障。 通过自动化任务在工程方面花费一些时间可以获得丰厚的回报。
     
  • 实施最佳实践: SRE 精通分布式系统和 Web 规模架构。 他们将最佳实践应用于服务管理的多个领域。

设计有效的待命系统

待命管理系统简化了将 SRE 团队成员添加到下班后或周末呼叫计划中的过程,为他们在传统工作时间或节假日之外管理警报分配公平的责任。 在某些情况下,组织可能会指定全天候待命的 SRE。

在医疗行业,待命医生不必在现场,但他们必须准备好在待命期间随时出现并处理紧急情况。 SRE 专业人员同样使用待命时间表来确保始终有人响应重大错误、容量问题或产品停机时间。 如果他们无法自行解决问题,他们还有责任升级问题。 对于 SRE 团队为客户期望 24/7/365、99.999% 正常运行时间和可用性的服务运行服务,待命人员配备尤其重要。

设计待命系统时可以使用两种主要的 待命设计结构,它们侧重于领域专业知识和给定服务的所有权:

  • 单团队所有权模型
  • 共享所有权模型

在大多数情况下,单团队所有权将是更好的模型。

待命 SRE 有多个职责:

  • 保护生产系统: 待命 SRE 是他们需要支持的所有生产服务的守护者。
     
  • 在可接受的时间内响应紧急情况: 您的组织可能会选择为 SRE 响应时间制定服务级别目标 (SLO)。 在大多数情况下,5 到 15 分钟的响应时间是可以接受的。 自动化监控和警报解决方案还可以使 SRE 能够立即响应对服务可用性的任何中断。
     
  • 让团队成员参与并升级问题: 待命 SRE 负责识别并召集合适的团队成员来解决特定问题。
     
  • 解决非紧急问题: 在某些组织中,会安排一名辅助待命工程师来处理非紧急情况,例如电子邮件警报。
     
  • 编写事后分析: 如上所述,好的事后分析是记录和学习重大事件的宝贵工具。

有效的待命管理系统的 3 个关键原则:

专注于工程

SRE 应该花费更多的时间设计解决方案而不是应用创可贴。 一般指导原则是 SRE 将 50% 的时间用于工程工作,例如编写代码和自动化任务。 当 SRE 待命时,时间应在大约 25% 的时间管理事件和 25% 的时间用于运营职责之间分配。

平衡的工作量

如果有太多的工单需要处理,待命会很快让工程师精疲力竭。 如果可以进行良好协调的多区域支持,例如美国团队和亚太团队,那么这种安排可以帮助限制重复夜班对健康的不利影响。 否则,每个站点有 6 到 8 个 SRE 将有助于避免疲惫。 同时,确保所有 SRE 至少每季度轮流待命一两次,以避免与生产系统脱节。 对夜间或节假日待命工作的公平补偿,例如额外的休息时间或现金奖励,也有助于 SRE 感到他们的额外努力得到了赞赏。

积极和安全的环境

明确定义的升级和无责事后分析程序对于 SRE 的有效和高效工作绝对必要。 既定协议是强大事件管理系统的核心。 事后分析必须侧重于根本原因和预防,而不是个人和团队行为。 如果您的组织没有明确的事后分析程序,明智的做法是立即启动一个。

SRE 最佳实践

本文介绍了一些 SRE 基础知识和建立和运行 SRE 待命管理系统的最佳实践。

在未来的文章中,我将研究 SRE 的其他类别最佳实践, 所涉及的技术以及支持这些技术的过程。 在本系列文章结束时,您将了解如何实施 SRE 最佳实践来设计、实施和支持生产系统。

更多资源

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

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.