飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

SRE 工程师到底是做什么的?

  • 2019-02-27
  • 本文字数:2625 字

    阅读完需:约 9 分钟

SRE工程师到底是做什么的?

尽管站点可靠性工程已经存在了一段时间,但也只是最近才在业界获得一些名声。但人们对于站点可靠性工程师(SRE)的作用仍然存在很多疑问。我们所知道的大部分内容来自谷歌的《站点可靠性工程》一书。我们将在这篇文章中多次提到这本书。


人们将 SRE 与运营、系统管理员等进行比较,但这种比较不足以说明他们在现代软件环境中所发挥的作用。他们承担的责任多于运营。他们通常具有系统管理背景,同时也具备软件开发技能。SRE 结合了所有这些技能,确保复杂的分布式系统能够顺利运行。


那么他们是怎么做到这一切呢?

自动化一切

自动化是 SRE 角色与传统运营团队之间的一个区别。在过去,运营人员会通过执行脚本、按下按钮和其他手动操作来让软件系统保持运行。然而,在 SRE 世界中,人们非常重视自动化。这种驱动力来自 SRE 角色的工程方面。


当软件开发人员处于日复一日重复相同功能的境地时,他们将被迫实现自动化。这就是软件开发人员最擅长的事情。自动化并不仅限于对软件构建和一些验收测试进行自动化,还包括 CI/CD 和基础设施的创建和修补,以及监控、警报和自动响应某些事件。在谷歌的《站点可靠性工程》一书中,这也被称为消除辛劳:


辛劳是一种与运行生产服务相关的工作,它往往是手动的、重复的、可自动化的、战术性的,缺乏持久的价值,并随着服务的增长呈线性增长。


那么为什么我们要如此关注如何减少辛劳呢?减少工作量不仅使流程可重复和自动化,而且还为 SRE 提供了更多的时间用于构建工具和研究基础设施变更以便进一步提高站点可靠性。总之,工作量越少,用于确保软件生态系统可靠运行的时间和资源就越多,你就能越快地实现业务价值。

监控分布式系统

随着分布式系统的普及,对监控的需求也在增长。仅仅启动和运行应用程序是不够的。我们还需要确保基础设施运行正常,并确保所有其他内部依赖项都可访问且运行正常。此外,应用程序的业务功能应该提供适当的监控功能,以验证它们是否运行正常。

提供待命支持

与传统的运营角色类似,SRE 也有轮班待命的职责。除了监控基础设施和他们自己的服务之外,开发团队还可以向他们咨询和请他们一起进行故障排除。


轮班待命看起来是怎样的?通常,SRE 根据计划表进行轮班待命,计划表可以让其他 SRE 专注于工程方面,而且不会导致轮班待命工程师感到倦怠。轮换待命可以从几天到一周不等,或者更长时间。


在发生高优先级的事件时,SRE 需要调查和诊断问题。他们还可能会要求其他工程师或软件开发人员一起来解决问题。根据系统的 SLA,他们可能需要一起工作才能在几分钟内解决问题。对于低优先级问题,SRE 通常会在工作时间内处理它们。对于那些不喜欢在凌晨 3 点钟起床的工程师来说,这是一个好消息。

管理事件

管理事件时 SRE 角色的另一个重要部分。你可能会说这与轮班待命没有什么两样。找到问题然后解决它,这能有多难?


好吧,在管理事件时,SRE 需要运用额外的专业技能来确保一切顺利。例如,在发生中断时,可能有很多方法来诊断和解决问题。因此,为了妥善管理事件,必须有人监督和促进所有相关人员的行为。这就需要定义明确的角色。


虽然并非所有公司都包含谷歌推荐的角色,但我们至少应该考虑它们。这些角色包括:


  • 一名事件指挥官,对所发生的一切都保持高度关注;

  • 处理或修改基础设施或系统的工程师;

  • 将正确的信息传递给客户和管理层的沟通者角色;

  • 负责规划会议、交接和后勤需求的规划者角色;

  • 如果 SRE 没有明确定义的角色,那么当他们在尝试不同的解决方案时,如果没有前期协调和沟通,就容易发生混乱。

事后调查

我们已经经历并解决了一个事件,现在准备好进行事后调查。通常,SRE 会促进或参与这些事后调查。


在进行事后调查时,所有相关方都被汇聚在一起​​,目标是分析事故期间都发生了什么,并找出根本原因。参与者还将决定将来如何防止或修复同样的事件。下面列出了事后调查将产出的内容:


  • 提高可靠性的故事或监控;

  • 附加文档,以协助未来事件的处理;

  • 进一步调查或测试,以证实与事件有关的任何假设。

跟踪中断

SRE 的另一个职责是跟踪中断。这最终有助于识别长期趋势和创建合理的 SLO 和 SLA。


跟踪中断的用途包括监控低优先级事件。这些事件可能不会给消费者带来真正的问题,但是观察长期趋势和时间可以帮助隔离和解决那些似乎找不到原因的烦人 bug。

与开发团队合作

除了在轮班待命期间为开发团队提供支持,SRE 还提供咨询和故障排除服务。这样可以帮助其他 SRE 团队和软件开发团队,这些团队苦于处理运营或可靠性问题。


在这种情况下,SRE 将评估当前问题,并确定哪些可以通过自动化或工程工作进行改进。SRE 还可为可靠性问题提出解决方案。最重要的是,SRE 将推动团队流程的变革。这些变化将确保站点可靠性工程团队能够增强团队交付价值的能力。

创建服务水平指标和目标

当你听到有人说服务已经达到或正在努力达到 99.99%的正常运行时间时,他们指的是服务水平目标(SLO)。服务水平指标(SLI)用于衡量这些目标。换句话说,SLI 是关于如何衡量 SLO 的协议。SRE 通过提供历史服务性能数据来协助这些工作。它们还有助于为未来提供切合实际的目标,并可能为客户提供适当的 SLA 建议。


然后,SRE 会确保你的应用程序满足(但不超过)规定的 SLO。现在你可能会认为没有超过 SLO 会很奇怪。然而,制造超出实际需要的东西是对资源的浪费。SRE 平衡了客户需求和所提供服务的目标。

职责可能会有所不同

在这篇文章中,我们讨论了站点可靠性工程师参与的各种活动。虽然这些活动是由 SRE 完成的,但并不是一成不变的。公司会根据需要改变 SRE 的角色和职责。一般而言,处于 SRE 过程不同阶段的公司可能有不同的需求。


例如,新公司可能需要 SRE 的支持才能控制一般性中断。大部分能量都趋向于可靠性的基本水平。但是,在这一过程中走得更远的其他公司可能已经消除了公司范围的中断。他们可能会花更多时间来改进或验证与业务相关的服务指标。例如,在网站的普遍可用性达到稳定和可靠的状态之后,你的披萨店应用程序可能需要对披萨推荐机制进行新的监控。

结论

正如你所读到的,SRE 将时间花在技术和流程方面的职责上。他们不仅仅是运营或系统管理团队。他们利用自己的工程技能自动化和减少管理任务所需的人工干预。此外,他们还与其他工程团队合作,提供适当的监控、事件响应和管理。


随着时间的推移,这些职能提高了分布式系统的可靠性并降低维护成本。最后,他们通过组织传播站点可靠性工程文化,让所有团队都能学会在做出决策时以可靠性作为出发点。


英文原文:https://www.scalyr.com/blog/site-reliability-engineer/


2019-02-27 14:1313824
用户头像

发布了 731 篇内容, 共 459.6 次阅读, 收获喜欢 2004 次。

关注

评论 1 条评论

发布
用户头像
这是用百度翻译的吗?😂
2021-08-12 19:56
回复
没有更多了
发现更多内容

夯实基础,踏步云升 | 云原生 DevOps 入门必读

CODING DevOps

DevOps 云原生 CODING

智能合约系统开发|智能合约DAPP搭建

Geek_23f0c3

DeFi去中心化系统开发 DAPP智能合约交易系统开发

网络安全行业真的内卷了吗?

网络安全学海

网络安全 信息安全 网络 渗透测试 安全漏洞

实时音视频,是一门好的ToB生意吗?

ToB行业头条

GitHub上火了这份堪称神级的SpringBoot手册,竟出自滴滴之手

Java~~~

Java 架构 面试 微服务 Spring Boot

支持高性能计算场景,博云容器云打造智能算力引擎

BoCloud博云

容器 高性能计算

让GitHub炸锅的深入理解MySQL实战手册,竟出自阿里云“藏经阁”

Java~~~

Java MySQL 数据库 架构 面试

投资ipfs挖矿有风险吗?投资ipfs挖矿要多少钱?

投资ipfs挖矿有风险吗 投资ipfs挖矿要多少钱

阿里首本凤凰架构竟要付费,构建大型分布式系统的指南这么宝贵吗

Java~~~

Java 架构 面试 分布式 高并发

云原生的数据云,下一个十年的数字化转型趋势

星环科技

数字化转型 云数据库

信息过载,加班无度的时代,我们需要「洞穴空间」

非著名程序员

个人成长 提升认知 思维 8月日更

音频技术及行业的发展

声网

音频技术

QDS06 Iperf 测网速

耳东@Erdong

8月日更 qds iperf

架构实战营毕业总结

9527

#架构实战营

爆赞!GitHub上首本IntelliJ IDEA操作手册,标星果然百万名不虚传

Java~~~

Java 架构 面试 IDEA 架构师

在科技圈流行的冥想,为什么没有全民推广?

脑极体

更智能更高效,区块链打造更美服装行业

CECBC

浅谈云上攻防——对象存储服务访问策略评估机制研究

腾讯安全云鼎实验室

云原生 对象存储 数据安全 云上安全攻防

面对物联网安全隐患高墙,熵核科技如何实现突围

熵核科技

物联网安全

趁着课余时间学点Python(十二)面向对象的理解(结局)

ベ布小禅

8月日更

百度程序员:面试官看过我的博客,所以没敢问我多线程

今晚早点睡

Java 百度 程序员 面试 计算机

出自清华大神之手的JVM实战手册,刚上架GitHub点赞就达到85k

Java~~~

Java 架构 面试 JVM 多线程

前端之算法(三)归并排序

Augus

数据结构与算法 8月日更

JDK从8升级到11,使用 G1 GC,HBase性能下降20%。JDK 到底干了什么

Summer

Java 学习 程序员 架构 jdk

红黑树的理解与 Java 实现

编程菌

Java 编程 程序员 计算机 技术宅

了,来了!Nacos 2.0的Spring Boot Starter终于来了

Summer

Java 学习 程序员 架构 springboot

【得物技术】初探 OpenResty

得物技术

nginx 性能 openresty tengine

决定论:区块链的哲学

CECBC

中国如何应对中美科技博弈?

石云升

科技革命 8月日更 启发 中美博弈

干货分享!通过Dapr快速落地DDD,实现高并发

行云创新

腾讯三面:哨兵挂了,Redis还能正常工作吗?

Summer

Java redis 学习 程序员 架构

SRE工程师到底是做什么的?_DevOps & 平台工程_Erik Dietrich_InfoQ精选文章