SRE的基础知识以及SRE待命管理系统的最佳实践

315 阅读7分钟

了解在你的组织中建立和维护SRE项目的基础知识和最佳实践。

Working on a team, busy worklife

什么是网站可靠性工程?第一个站点可靠性工程(SRE)项目的创建者,谷歌的Benjamin Treynor Sloss这样描述它。

网站可靠性工程是当你要求一个软件工程师设计一个运营团队时发生的事情。

这意味着什么呢?与传统的系统管理员不同,网站可靠性工程师(SREs)将坚实的软件工程原则应用于他们的日常工作。对于普通人来说,一个更清晰的定义可能是。

网站可靠性工程是一门建立和支持现代生产系统规模的学科。

SRE负责最大限度地提高基础设施和软件的可靠性、性能可用性、延迟、效率、监控、应急响应、变更管理、发布计划和容量规划。随着应用程序和基础设施的日益复杂,SRE团队帮助确保这些系统能够不断发展。

一个SRE组织是做什么的?

SRE组织有四个主要职责。

  • 可用性。SRE对他们支持的服务的可用性负责。毕竟,如果服务不可用,最终用户的工作就会中断,这可能会对你的组织的信誉造成严重损害。

  • 性能。一 项服务不仅要可用,而且要有很高的性能。例如,一个需要20秒才能从一个页面移动到另一个页面的网站有多大作用?

  • 事件管理。SRE管理对影响客户的非计划性中断的反应,如停电、服务退化或业务运营的中断。

  • 监测。每 个SRE的基本要求,监测涉及收集,处理,汇总,和显示关于系统的实时定量数据。这可能包括查询数量和类型,错误数量和类型,处理时间,和服务器的寿命。

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

SRE如何维护网站的可靠性?

SRE的角色是一个多样化的角色,有很多责任。一个SRE必须能够快速识别问题,排除故障,并以最小的干扰来缓解它的运作。

以下是一个典型的SRE承担的部分任务清单。

  • 编写代码。一个SRE需要使用软件来解决问题,无论他们是具有运营背景的软件工程师还是具有开发背景的系统工程师。

  • 随叫随到。这不是作为一个SRE最吸引人的部分,但它是必不可少的。

  • 领导一个作战室。SRE在事件管理中促进战略和执行的讨论。

  • 执行事后分析。这是一个很好的工具,可以从一个事件中学习,并确定可以实施的程序,以避免未来的事件。

  • 自动化。SRE往往会对手动步骤感到厌烦。自动化不仅可以节省时间,而且可以减少由于人为错误造成的失败。通过自动化任务花一些时间在工程上,可以有一个强大的投资回报。

  • 实施最佳实践。SRE精通分布式系统和网络规模的架构。他们在服务管理的几个领域应用最佳实践。

设计一个有效的待命系统

一个随叫随到的管理系统简化了将SRE团队成员加入下班后或周末的呼叫时间表的过程,为他们分配公平的责任来管理传统工作时间以外或假期的警报。在某些情况下,一个组织可能指定全天候待命的SRE。

在医疗行业,待命医生不必在现场,但他们必须准备好在待命班期间随时出现并处理紧急情况。SRE的专业人员也同样使用待命时间表,以确保总是有人在那里应对重大的错误、能力问题或产品停机。如果他们不能自己解决这个问题,他们也要负责升级这个问题。对于运行客户期望24/7/365、99.999%正常运行时间和可用性的SRE团队来说,随叫随到的人员配置尤为关键。

在设计随叫随到系统时,有两种主要的随叫随到设计结构,它们侧重于领域的专业知识和特定服务的所有权。

  • 单一团队所有权模式
  • 共享所有权模式

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

待命的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最佳实践。