菜单

什么是站点保障工程 (SRE)?

放大镜

站点保障工程 (Site Reliability Engineering, SRE) 是一门将软件工程实践应用于基础架构和运维问题,以此来打造超可扩展和可靠软件系统的学科。专家级站点保障工程师可以制定在开发团队和运营团队之间实现平衡的解决方案。Google 开创了这一角色;要获得进一步的解释,请阅读 Google 电子书《站点保障工程》。

站点保障工程与 DevOps

站点保障工程师 (SRE) 的职责介于开发和运营之间,但不一定是在 DevOps 内部。SRE 的概念早在 2003 年就已出现,这意味着它要早于 DevOps。这个词是由一手打造 Google 站点保障团队的 Ben Treynor 提出的。根据 Treynor 的说法,SRE 就是“让软件工程师来负责过去被称为运营的工作”。

DevOps 和 SRE 这两个学科的目标都是通过帮助开发和运营在整个应用程序生命周期内相互了解各自在流程中的作用来缩短发布周期。它们还倡导自动化和监控,从而缩短从开发人员提交变更到将其部署到生产的时间。SRE 和 DevOps 旨在在不影响代码或产品本身质量的前提下实现此结果。

SRE 和 DevOps 提出两个不同但同样有价值的问题:

DevOps 询问需要完成什么

SRE 询问如何完成。

站点保障工程师日常工作

站点保障工程师负责衡量服务级别指标 (SLI) 和服务级别目标 (SLO),而 DevOps 团队则负责衡量一段时间内的失败率和成功率。SRE 分担与以下基础架构改进的 DevOps 要素相关的责任:

减少组织孤岛

SRE 不会讨论公司中存在多少孤岛,但会鼓励其他人讨论这一问题。通过在整个公司内借助工具和技术完成此讨论,从而帮助将所有权分散给各个员工。

正常接受故障

SRE 需要确保错误或故障不会过多。为此,他们使用由 SLI 和 SLO 得分组成的公式。SLI 通过计算请求延迟、每秒请求吞吐量或每次各请求故障数来计算每个请求的故障数。SLO 是根据阈值和百分比派生的,表示一定时间内的 SLI 成功。

实施渐进式变革

SRE 的职责是要改变的,但要有条不紊地慢慢进行。由于企业希望加快发展步伐,要求频繁发布并持续更新产品,因此,DevOps 和 SRE 必须做到把控节奏,稳中求快。

利用工具和自动化

只要通过删除手动任务为开发人员和运营提供价值,就可以实现自动化。

衡量一切

SRE 团队需要确保一切都朝着正确的方向发展。为此,可以针对各种情形设置警报、接受对等代码审查和/或使用单元测试。

站点保障工程 (SRE) 的未来

站点保障工程 (SRE) 和 DevOps 是两个热门学科,它们之间存在相当多的重叠;它们的基本目标是了解如何衡量成功或失败,以及如何在每个应用程序中获得持续可靠性。可靠性不仅仅在于基础架构,从应用程序质量到性能再到安全性,它还与涉及到的每一步息息相关。SRE 关注从源代码到部署的每个流程;这让他们享有“开发和运营之间的真正桥梁”的荣誉。

继续阅读