站点可靠性工程 (SRE) 使用软件工程来自动执行 IT 运营任务,例如生产系统管理、变更管理、事件响应,甚至是本需要由系统管理员 (sysadmins) 手动执行的应急响应。
SRE 背后的原则是以软件代码自动监督大型软件系统是一种比手动干预更具可扩展性和可持续性的策略,尤其是当这些系统扩展或迁移到云时。
SRE 还可减少或消除开发团队与运营团队之间的很多自然摩擦,因为一些团队希望不断将新的或更新后的软件投入生产环境。然而,运营团队则不想发布任何类型的更新或新软件,除非完全确定它不会导致中断或其他运营问题。因此,虽然 DevOps 并未严格要求使用 SRE,但后者却与 DevOps 原则密切相关,并可在实现 DevOps 成功的过程中发挥重要作用。
SRE 的概念归功于 Google 工程副总裁 Ben Treynor Sloss,他曾写过一句名言:“当你要求软件工程师设计一个运营团队时,就会发生 SRE。”
查看 IBM® Robotic Process Automation (RPA) 的成本和收益分析。
阅读有关 IBM 人工智能驱动自动化解决方案的分析师报告
SRE (站点可靠性工程 ) 利用软件工程自动执行 IT 运营任务,例如,生产系统管理、变更管理、事件响应,甚至是应急响应。如果没有 SRE,这些任务则需要系统管理员手动执行。
SRE 背后的原理是利用软件代码自动监督大型软件系统,与手动干预相比,这一策略具有更高的可扩展性和可持续性,当系统扩展或迁移到云端时尤为如此。
SRE 还可以减少或消除开发团队与运营团队之间的很多摩擦:开发团队希望不断将新的或更新的软件发布到生产环境,而运营团队则不希望发布任何类型的更新软件或新软件,除非能绝对保证不会造成停运或其他运营问题。 因此,虽然 DevOps 并未严格要求,SRE 仍严格遵守 DevOps 原则,且对于 DevOps 的成功有着举足轻重的作用。
SRE 的概念由 Google 工程部副总裁 Ben Treynor Sloss 提出,他有一句名言:“SRE 是你要求软件工程师设计运营团队时必然会发生的事”。
SRE 工程师是拥有 IT 运营经验的软件开发者,他了解如何编码,也知道如何保持大型 IT 环境持续运转。
SRE 工程师将不超过一半的时间用于执行手动 IT 操作和系统管理任务,如分析日志、性能调整、应用补丁、测试生产环境、响应事件、进行后期检查,其余时间则用于开发代码来自动执行这些任务。 SRE 工程师的目标是缩短前者所花的时间,逐步将更多时间用于后者。
从更高层面来说,SRE 团队充当开发团队和运营团队之间沟通的桥梁,使开发团队能够尽快将新软件或新功能引入生产环境,同时确保协定的可接受 IT 运营性能和出错风险级别符合组织与客户达成的服务级别协议 (SLA) 。 SRE 团队会根据自己的经验和丰富的运营数据,帮助开发和运营团队建立:
错误预算是 SRE 团队用来自动协调公司服务可靠性与其软件开发和创新速度的一款工具。
假设某家公司的 SLA 承诺每年的正常运行时间达到 99.99%(通用可用性目标)。 这意味着每月的错误预算约为 4 分 23 秒,这是任何给定月份在不承担合同后果的情况下允许的停机时间总长。
现在假设开发团队希望推出一些新功能或对系统加以改进。 如果系统的运行不超出错误预算,那么团队可以交付新功能。 否则,团队无法交付新功能,除非他们与运营团队合作将这些错误或停机降低至可接受的级别。
通过 SRE 这种方式,错误预算可帮助开发团队和运营团队:
DevOps 是一种更快交付高质量应用的现代方式,该方式可自动执行软件交付生命周期,并让开发团队和运营团队共担更多责任,更多参与彼此的工作。
与 SRE 一样,DevOps 适当地平衡了更快交付更多应用和变更的需求与避免“破坏”生产环境的需求,让业务更加敏捷。 不仅如此,DevOps 还与 SRE 一样,都旨在通过确定可接受的错误风险来实现这一平衡。 事实上,SRE 和 DevOps 非常相似,一些专家甚至认为 SRE 和 DevOps 二者完全等同,但大多数人认为 SRE 实践是实现 DevOps 原则的出色方法。 例如:
DevOps 原则:减少组织孤岛,利用工具和自动化
SRE 实践:使用开发人员开发和改进软件所用的同款工具自动执行并改进运营
DevOps 原则:将失败视为正常情况,逐步实施更改
SRE 实践:使用错误预算在可接受级别持续部署新功能部件和功能
DevOps 原则:评估一切内容
SRE 实践:根据 SLA 指标制定新软件发布决策
要了解有关 DevOps 的更多内容,请观看此视频 (5:58):
除了助力 DevOps 取得成功,SRE (站点可靠性工程)还可以帮助公司:
可以在无需人工干预的情况下实时不断地自动执行关键操作,主动为堆栈每一层的应用程序提供最高效的计算、存储和网络资源。
增强应用性能监视,提供更快解决事件所需的环境。
IBM® Consulting 平台工程服务通过支持开发人员实现基础架构自动化自助服务来提高软件交付团队的生产力。
探索将 AI 和自动化技术应用于 IT 运营如何能帮助 SRE 确保企业应用程序的弹性和稳健性,并腾出宝贵的时间和人才来支持创新。
通过 IBM 提供的专业级培训和认证提高 SRE 工作技能。获取有关 IBM Cloud 环境和工具的知识并在虚拟实验室中进行练习。
DevOps 通过将软件开发和 IT 运营团队的工作结合并实现自动化,加快交付更高质量的软件。
云原生应用程序由微服务组成,打包并部署在容器中,旨在在任何云环境中运行。
Kubernetes 是一款开源容器编排平台,可自动部署、管理和扩展应用程序。