什么是 SRE(站点可靠性工程)?

复制 URL

站点可靠性工程(SRE)是 IT 运维的软件工程方法。SRE 团队使用软件作为工具来管理系统、解决问题并实现运维任务自动化

SRE 执行的任务以前通常由运维团队手动执行,或者交给使用软件与自动化来解决问题和管理生产系统的工程师或运维团队执行。 

在创建可扩展和高度可靠的软件系统时,SRE 是宝贵的实践。它可帮助您通过代码管理大型系统,对于管理成千上万台机器的系统管理员(sysadmin)来说,代码更具可扩展性和可持续性。  

站点可靠性工程的概念由 Google 工程团队的 Ben Treynor Sloss 率先提出。 

借助 SRE,团队能够在发布新功能和确保用户可靠性之间找到平衡。

在这种背景下,标准化和自动化是 SRE 模型的两大重要部分。在这里,站点可靠性工程师寻求增强和自动化运维任务。

通过这些方式,SRE 有助于提高当今的系统可靠性,并且会随着时间的推移不断提高。    

SRE 支持团队从传统 IT 运维方法改用云原生方法。

了解红帽的 SRE 方法

站点可靠性工程师是一个独特的岗位,要么必须具有系统管理员背景、或有运维经验的软件开发人员;要么必须是有软件开发技能的 IT 运维人员。 

SRE 团队负责部署、配置和监控代码,以及生产服务的可用性、延迟、变更管理、应急响应和容量管理。

SRE 团队根据服务水平协议(SLA)确定新功能的推出,并利用服务水平指标(SLI)和服务水平目标(SLO)定义系统所需的可靠性。  

SLI 测量所提供服务水平的特定方面。关键 SLI 包括请求延迟性、可用性、错误率和系统吞吐量。SLO 基于根据 SLI 指定的服务水平的目标值或范围。

然后,根据确定可接受的停机时间,确定所需系统可靠性的 SLO。这个停机时间称为误差量,即出错和中断的最大允许阈值。 

SRE 并不是要实现 100% 可靠性,而是针对故障做好计划并妥善应对。

一旦建立,开发团队就可以在发布新功能时允许出现这一定量的误差。利用 SLO 和误差量,团队随后可确定产品或服务是否能够在可用误差量的基础上启动。

如果某个服务在运行时处于误差量以内,开发团队可在任何时间发布它,但是,如果系统当前有太多错误或停机时间超过误差量的允许范围,开发团队必须将错误数减少至误差量以内后才能发布。    

开发团队可执行自动化运维测试以验证可靠性。 

站点可靠性工程师的时间要均衡分配给运维任务和项目工作。根据 Google 的 SRE 最佳实践,站点可靠性工程师最多只能将一半的时间花在运维上,所以应该监控确保不会超过这个时间。  

他们应该将剩余时间放在开发任务上,比如创建新功能,扩展系统,以及实施自动化。

额外的运维工作和表现欠佳的服务应重新指定给开发团队,这样站点可靠性工程师就不用将太多时间花在应用或服务的运维上。 

自动化是站点可靠性工程师工作中的重要部分。如果他们一直在反复处理同一个问题,就很可能会实现解决方案自动化。 

保持运维和开发工作之间的平衡是 SRE 的重要组成部分。 

检查清单:站点可靠性工程师为您提供帮助的五大方式

红帽资源

DevOps 是指对企业文化、业务自动化和平台设计等方面进行全方位变革,实现迅捷、优质的服务交付,从而提升企业响应能力和价值。SRE 可视为 DevOps 的实施。

和 DevOps 一样,SRE 也与团队文化和关系密切相连。SRE 和 DevOps 都致力于搭建开发团队和运维团队之间的互通桥梁,以便更快地交付服务。 

DevOps 和 SRE 实践都可以实现更快的应用开发生命周期、更高的服务质量和可靠性,以及更短的 IT 应用开发时间等优势。

然而,SRE 与 DevOps 有所不同,因为它依赖于开发团队中的站点可靠性工程师,这些工程师也要有解决通信和工作流程问题的运维背景。

站点可靠性工程师本身要求职责重叠,兼具开发团队和运维团队的技能。 

DevOps 团队的开发人员常常疲于处理运维任务,需要向具备更专业运维技能的人员寻求帮助,而 SRE 正好可以做到这点。 

在编码和构建新功能时,DevOps 专注于有效完成开发流程,而 SRE 专注于通过创建新功能来平衡站点可靠性。 

在这里,基于容器技术、Kubernetes 和微服务的现代化应用平台是落实 DevOps 实践的关键所在,可帮助企业交付安全的创新软件服务。

了解如何通过 Kubernetes 平台实施 DevOps

平台工程和站点可靠性工程都是关于创建和维护系统的。 这两个概念的区别在于各自实践的侧重点不同。站点可靠性工程重点关注 IT 运维团队,帮助他们使用软件作为工具来管理系统、解决问题并实现运维任务自动化。

平台工程师则重点关注开发团队,帮助他们创建用于管理系统、解决问题和实现开发任务自动化的平台。 

红帽 OpenShift 为平台工程师添翼加速

SRE 要在应用的整个生命周期确保日常运维任务的自动化和标准化。红帽® Ansible® 自动化平台是一个全面的集成平台,可帮助 SRE 团队实现速度、协作和增长的自动化,从而为企业的技术、运维和财务职能提供安全性和支持。 

具体而言,Ansible® 自动化平台可提供: 

  • 云和本地基础架构编排,可用于实例、路由、负载平衡、防火墙等。  
  • 基础架构优化,包括大小适当的云资源,以及根据需要添加或删除中央处理器(CPU)和随机存取存储器(RAM)等资源。 
  • 云运维,包括具有持续集成和持续交付(CI/CD)管道的应用部署、操作系统修补和维护。
  • 业务连续性,包括从云中移动和复制资源,创建和管理备份策略,以及管理中断和故障。

红帽 Ansible 自动化平台:新手指南

SRE 还依赖于为云原生开发风格设计的基础。 Linux® 容器支持集开发、交付、集成和自动化于一体的统一环境。

Kubernetes 是实现 Linux 容器操作自动化的现代方法。Kubernetes 可帮助团队更高效地管理在公共云、私有云或混合云中运行 Linux 容器的集群。

作为支持 SRE 计划的企业就绪型 Kubernetes 平台,红帽® OpenShift® 可帮助团队实施文化和流程转型,从而实现 IT 基础架构的现代化,让企业能够更好地为客户服务并实现业务目标。 

免费试用红帽 OpenShift

中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

什么是平台工程?

平台工程是软件开发中的一门学科,专注于提高生产力、应用周期时间和上市速度。

什么是 CI/CD?

CI/CD 是持续集成和持续交付/部署的缩写,旨在简化并加快软件开发生命周期。

什么是内部开发人员平台?

内部开发人员平台(IDP)由一系列标准化的自助服务工具和技术组成,供开发人员来创建和部署代码。

DevOps 相关资源

相关文章