站点可靠性工程与 DevOps 有何不同
软件开发行业在过去几年中有了深刻的发展,出现了新的工具、方法和概念。每次引入新事物时,它都会激起人们的兴趣并引发问题:
站点可靠性工程或 SRE 现在是 IT 和运营公司之间的热门话题,并且近年来获得了很大的关注。然而,它经常被与DevOps 解决方案进行比较,也许只是因为 SRE 在许多站点上被定义,它提供与 DevOps 相同的优势,例如:
现在,我们希望您知道 SRE 与 DevOps 有着相同的目标,例如增强团队之间的协作以及在项目发布周期的每个步骤中采用自动化以确保软件具有弹性和可靠性。但 SRE 不同于 DevOps。正如IBM 所描述的,这是同一问题的两个方面。
在这篇博文中,我们将深入了解为什么在软件开发中需要 SRE 和 DevOps,它们如何相互补充,以及两者共有的根本区别。
为什么需要站点可靠性工程?
站点可靠性工程师的目的是让组织专注于对客户最重要的事情,并确保他们所依赖的平台和服务在他们需要时可用。其他在其组织结构中采用 SRE 方法的公司包括 LinkedIn、Dropbox、Airbnb、IBM、Netflix。
SRE 团队监督代码部署、配置和监控,以及他们提供的服务的可用性、延迟、变更管理、紧急响应和容量管理。
SRE 模型中解决的几个问题:
- 避免劳累
- 消除监管不力
- 建立健康的事件管理系统
为什么需要 DevOps?
根据企业用户不断变化的需求,随着不断增加新功能和服务的需求,这些变化需要更快地实施,但又要避免生产系统因系统变化而中断。
这就是 DevOps 发挥作用的地方,它通过将开发和运营团队合并到一个结构化的工作流中,在一个强大的集成环境中通过更快的部署满足用户的需求。
DevOps 试图解决以下问题:
- 为客户提供附加值
- 降低生产成本
- 提供非常透明的工作环境
- 缩短周期时间
- 改善上市时间
SRE 在 DevOps 中到底扮演什么角色?
作为 DevOps 实施的基础,站点可靠性工程越来越受欢迎。站点可靠性工程侧重于建立一支具有良好运营背景的工程师团队。因此,SRE 的实施更有效地消除了工作流和沟通问题。
此外,当开发人员因操作任务不堪重负并需要更多专业知识时,它还为 DevOps 团队提供支持。基于新特性和代码库,而 DevOps 通过开发通道支持高效运行,SRE 旨在保持创建新特性和可靠性之间的平衡。以下是项目开发和发布周期的四个方面,其中 DevOps 和 SRE 共同提供每一个细节:
1. 监测和修复:
DevOps 总是在故障发生之前讨论情况。此外,它确保条件不会导致系统中断。
另一方面,SRE 团队负责处理失败的后果。他们借助故障排查报告来分析根本原因。SRE 的主要目标是最大化系统的正常运行时间并消除故障以实现长期可靠性。
2、SDLC(Software Development Life Cycle)作用:
DevOps 在软件开发过程中的主要重点是高效创建和交付软件产品,同时确保零停机部署 (ZDD)。DevOps 还强调识别基础架构和应用程序中的盲点。
另一方面,站点可靠性工程师在应用程序部署后有效地管理 IT 操作。因此,它还必须能够承受生产环境中的高应用程序正常运行时间和稳定性。
3.增量变化的价格和速度:
DevOps 是关于快速发布新的更新/功能,快速部署它们,并保持持续的集成和开发。此外,实施所有这些的成本是最低的。
SRE 专注于在新的更新/功能中灌输弹性和健壮性。但是,它确实会定期进行细微修改。它允许有更多空间来跟踪更改并在发生故障时采取纠正措施。此外,底线是有效的测试和维修,以降低故障成本。
4. 基准度量:
CI/CD 位于 DevOps 度量策略的中心。因此,它优先考虑流程监控和工作流程生产力,以保持良好的反馈流。
另一方面,SRE 使用服务水平指标 (SLI) 和服务水平目标 (SLO) 等特定标准来管理 IT 运营。
在过去的几十年中,DevOps 已成为组织中的普遍做法。然而,近年来,有目击者表明组织已经走上了以产品为导向和持续改进可靠性的道路。SRE 帮助组织实现这一目标,将 DevOps 作为系统的一个组成部分,利用实际的微服务和敏捷架构。
站点可靠性工程和 DevOps 之间的根本区别
- 消除组织内的孤岛是 DevOps 的主要目标,SRE 通过促进与开发人员共享生产所有权来增强工作能力。SRE 使用单一工具来确保开发人员和运维人员处于同一基础上。
- DevOps 将失败视为 SDLC 中不可避免的事情,并侧重于预防措施;SRE 强调找到失败的根本原因,并将失败成本纳入预算。
- DevOps 逐渐发布更改,但 SRE 在推动全面发布之前会仔细测试更改。
- DevOps 和 SRE 都支持合并工具和自动化,但 SRE 始终希望通过自动化机会消除冗余。
- DevOps 衡量一切,而 SRE 定义和衡量关键性能指标以跟踪系统的进度和健康状况,例如工作量、中断、正常运行时间和可用性。
结论
为了管理更快的发布并避免失败,组织必须在 DevOps 和 SRE 上进行协作。虽然两者都提倡采用自动化作为一个重要过程,但它们在项目开发和确保组织高可靠性的方法上有所不同。组织必须在其业务中实施 DevOps 和站点可靠性方法之前和之后分析其数据,以获得可衡量的收益。
文章转载自公众号:DevOps云学堂