SRE如何支持DevOps原则和哲学
随着应用程序开发的日益复杂,组织越来越多地采用支持可靠的、可伸缩的软件的方法。
DevOps和site reliability engineering(SRE)是通过增强协作、自动化和监视来增强产品发布周期的两种方法。
这两种方法都利用自动化和协作来帮助团队构建弹性和可靠的软件。
但是在这些方法提供的内容以及它们如何运作方面存在根本的差异。
因此,在本文中,我们将了解DevOps和SRE的基础知识以及它们的用途。
DevOps基础知识
DevOps不是一种技术,而是一种方法,一种旨在确保快速发布稳定、安全的软件的总体概念和文化。
它位于敏捷开发和企业系统管理(ESM)实践的交叉点。
因此,在DevOps之前,开发团队和运营团队都在孤岛中工作,这导致了开发缓慢和部署不稳定。
为了解决这个问题,DevOps方法将应用程序中的所有利益相关者集成到一个高效的工作流程中,从而能够快速交付高质量的产品。
此外,DevOps还能提供可靠的服务,提高客户满意度。
DevOps实践和方法
DevOps实践基于自动化支持的持续、渐进的改进。虽然完全的自动化很少可能,但对于全面的自动化来说,DevOps方法集中在下图所示的以下元素上。
DevOps的好处
- 确保更快、更频繁地交付提高客户满意度的应用程序特性
- 创建一个平衡的方法来管理SDLC,以提高软件团队的生产力
- 通过自动化重复性任务来更快地创新
- 更快更有效地解决问题
- 通过减少维护和基础设施管理中的错误来最大限度地降低生产成本
现场可靠性工程(SRE)基础
SRE通过将软件开发的各个方面合并到IT操作中,为应用程序生命周期和服务管理提供了一种独特的方法。
在SRE的帮助下,IT基础设施被分解为小型、基本和抽象的组件,这些组件帮助团队使用自动化来解决与管理生产中的应用程序相关的大多数问题。
SRE使用三个服务级别承诺来度量系统的性能:
SLA:SLA(service level agreement)是提供商和客户机之间关于正常运行时间、响应能力和责任等可度量指标的协议。
SLO:SLO(服务级别目标)是SLA中关于特定度量的协议,如正常运行时间或响应时间。因此,如果SLA是您与客户之间的正式协议,SLO则是您向该客户做出的单独承诺。
SLI:SLI(服务水平指标)衡量对SLO(服务水平目标)的遵守情况。因此,例如,如果SLA指定系统99.95%的时间可用,那么SLO可能是99.95%的正常运行时间,而SLI是正常运行时间的实际度量。也许是99.96%。也许99.99%。
SRE如何支持DevOps的原则和哲学
- 共享所有权:当涉及到减少组织孤岛时,SREs与开发人员共享生产所有权。他们一起定义服务级别目标或SLO和错误预算,分担如何确定工作可靠性和优先级的责任。
- 无可指责:复杂的系统以有趣和复杂的方式失败。接受失败为正常状态是SRE内的一个重要实践。事故发生后,进行无可指责的验尸,以提高对故障模式的认识,并确定有效的预防措施,以减少类似事故的可能性或影响。
- 降低失败成本:当实现渐进式更改时,SREs的目标是通过在使更改普遍可用之前向一小部分用户推出更改来降低失败成本。
- 劳力自动化:SREs专注于劳力自动化,减少人工量,重复性工作。将今年的工作自动化无疑会遇到阻力。
- 测量劳力和可靠性:最后,测量一切意味着SRE工作以测量与劳力、可靠性和系统健康相关的一切。
SRE tools
现场可靠性工程团队主要使用监视和日志工具以及以下工具,因为他们需要了解整个系统:
团队依赖于使用跨软件生命周期的标准化操作的工具和技术来实现常规过程的自动化。工具包括容器、Kubernetes、源代码管理、云平台、项目规划和管理工具。
总结
SRE和DevOps通常被称为同一枚硬币的两面,SRE工具和技术补充了DevOps的哲学和实践。SRE涉及应用软件工程原理来自动化和增强ITOps的功能,例如:
灾害应对
容量规划
监测
另一方面,DevOps模型能够通过开发和运营团队之间的协作快速交付软件产品。
- 点赞
- 收藏
- 关注作者
评论(0)