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