SRE 与 DevOps:你知道它们之间区别吗?

news2024/11/6 7:14:03

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享

DevOps专注于消除阻碍开发和运维之间协作的隔阂,而SRE致力于设计和实施可扩展、可靠的系统,确保最大可靠性。

这篇文章将探讨DevOps和SRE之间的差异,它们的角色和责任,它们解决的问题以及它们使用的工具。

DevOps 和 SRE 之间的差异

  1. 实施新功能 - DevOps负责实施对产品的新功能要求,而SRE确保这些新变更不会导致生产环境的故障率。
  2. 流程流向 -DevOps 团队从开发环境的角度出发,将变更从开发阶段落实到生产阶段。而SRE是从生产环境的稳定性角度出发,因此他们可以向开发团队提出建议,以限制新的需求变更而带来故障率。
  3. 焦点 - DevOps的主要关注点是产品开发的连续性和速度,而SRE的主要关注点是系统的可靠性、可扩展性和可用性。
  4. 团队结构 - 典型的DevOps团队由担任专门角色和职责的专业人员组成,如产品负责人、团队领导、云架构师、软件开发人员、质量保障工程师、发布经理、系统管理员。相比之下,SRE团队由具有运维和开发技能集的工程师组成。

SRE 和 DevOps 的工作角色差异

尽管 SRE 和 DevOps 的工作角色存在一些重叠,但职能存在广泛的分离:

DevOpsSRE
角色DevOps团队的主要作用是解决开发问题,构建满足业务需求的解决方案。SRE 的主要作用是处理运营问题,例如生产故障、基础设施问题(磁盘、内存)、安全、监控。
重点专注于持续集成/持续交付的产品开发。SRE 更加关注弹性、扩展性、可靠性、正常运行时间和稳健性。
工具在 DevOps 角色中,最广泛使用的工具是用于开发目的的集成开发环境 (IDE)、用于持续集成和开发的[Jenkins 、用于变更管理的 JIRA等在SRE角色中,最广泛使用的工具是Prometheus和Grafana,用于收集和可视化不同的指标(CPU使用率、内存、磁盘空间等)、事件警报工具(OP5、PageDuty、xMatters等)、Ansible、 Puppet,或 Chef、用于容器编排的 Kubernetes 和 Docker,云平台
错误报告DevOps 团队负责调试代码,以防最终产品中报告任何错误。SRE 团队负责向 Core 开发团队报告 bug,除非是生产中断,否则不会参与调试。SRE 团队还负责调试和修复基础设施问题。
测量指标DevOps 角色的典型衡量指标是部署频率和部署失败率。SRE 角色的典型衡量指标包括错误预算、SLO(服务级别目标)、SLI(服务级别指标)、SLA(服务级别协议)。
事件处理DevOps 团队处理事件反馈以缓解问题。进行事件后审查,以确定根本原因并记录调查结果,以便向核心开发团队提供反馈。

DevOps 团队解决的问题

实施 DevOps 实践可以减少开发和运营团队之间的摩擦。它还可以帮助我们可靠地交付最终产品。

1. 降低开发和维护成本

DevOps 团队始终致力于 CI/CD,将更多精力投入到自动化测试而不是手动测试,并通过自动化来改进发布管理。

传统的软件开发生命周期,总是存在着重复的工作(开发、测试、发布),这增加了产品开发和生产维护的总体成本,而DevOps实施可以显着减少交付时间、开发和维护成本。

2. 更短的发布周期

DevOps 团队带来的最有效的改变之一就是以更短的发布周期更快地交付。DevOps团队之所以提倡较短的发布周期,是因为这样便于管理,并且在出现问题时可以回滚到稳定版本。

与传统的发布周期相反,传统的发布周期的重点是在一个版本中交付所有内容,这增加了生产失败的风险,并且很难回滚。如果严格遵循 DevOps 实践,组织将始终拥有一个版本发布系统。

以下是较短发布周期的好处:

  1. 更频繁地交付新的变更请求;
  2. 将升级(错误修复、安全补丁、版本升级)推送到生产环境要容易得多。
3. 自动化和连续测试

与传统的开发周期相比,在传统开发周期中,测试团队必须等待产品在测试环境中交付后才能开始测试,而在DevOps中,测试从开发生命周期的开始阶段就被注入进去。

DevOps通过持续且自动化测试,借助CI/CD工具(Jenkins)和版本控制(gitLab),实现了测试的早期介入。

SRE 团队解决的问题

1. 缩短平均恢复时间 (MTTR)

SRE 团队负责保持生产环境正常运行。如果出现错误或生产故障,SRE 团队可以回滚到产品之前的稳定版本,从而缩短平均恢复时间 (MTTR)。

2. 缩短平均检测时间 (MTTD)

SRE 团队解决的另一个问题是使用金丝雀部署来减少平均检测时间 (MTTD) ,以便在全面部署之前将新版本提供给一小部分用户。金丝雀发布可以帮助 SRE 团队在早期阶段发现系统问题,并且影响面小。

3. 一切自动化

自动化是SRE团队必须面对的最大挑战之一。经常观察到,部分人部署和支持任务是手动执行的,这导致了不一致性并增加了人为错误的可能性。

管理基础设施的一个良好实践是利用基础设施即代码(IaC),借助Terraform、Pulumi以及Ansible、Puppet、Chef等自动化工具。SRE团队可以利用这些工具来解决自动化方面的问题。

4. 生产中的自动化功能和非功能测试

开发人员可以在测试和阶段环境中自动化功能和非功能测试,但不能在生产中自动化。

SRE工程师可以帮助在生产环境中实施自动化测试,而不会影响最终用户。

5. 随时待命

通常,SRE工程师要经常值班,以处理难以预见事故,同时还必须编写事故报告文档和排查步骤,以帮助其他人执行。

SRE团队可以建立一个有关事故的有价值的知识库,以改善事故排除的时间。

DevOps 和 SRE 工具

当我们谈论 DevOps 和 SRE 的工具时,经常会发现大多数工具都是 DevOps 和 SRE 共同使用的。

常用工具
配置管理工具
  • Terraform
  • Pulumi
  • Ansible
  • Puppet
  • Chef
版本管理
  • GitHub
  • BitBucket
  • GitLab
日志监控
  • Elk

  • Loki

  • Splunk

DevOps 工具

持续集成
  • Jenkins
集成开发环境
  • Intellij
  • Visual Studio
  • Sublime
  • Eclipse
自动化测试
  • Jmeter
  • Robot Framework
  • Burp
  • Wireshark

SRE Tools

  • Kibana
  • Prometheus
  • Grafana
  • New Relic
  • Istio
  • 夜莺

总结

以上我们介绍了 DeveOps 和 SRE 的指责分工,虽然有所不同,但是它们都致力于同一个目标 - 提升发布周期并实现更好的产品可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1332872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Podman配置mongodb

文章目录 查询镜像拉取镜像查看镜像运行容器创建root用户 查询镜像 podman search mongo拉取镜像 podman pull docker.io/library/mongo查看镜像 podman images运行容器 podman run -d -p 27017:27017 --namemongodb-test docker.io/library/mongo创建root用户 podman exe…

SSH秘钥登录服务器

一、查看本机 ssh 公钥,生成公钥 1.通过命令窗口 a. 打开你的 git bash 窗口 b. 进入 .ssh 目录:cd ~/.ssh c. 找到 id_rsa.pub 文件:ls d. 查看公钥:cat id_rsa.pub 或者 vim id_rsa.pub git–查看本机 ssh 公钥&#xff0c…

小白--将笔记本上的代码或者项目上传到github上去教程(使用git命令)

文章目录 一、操作教程二、常见问题1. 问题12. 问题2 三、注意 一、操作教程 https://blog.csdn.net/Elon15/article/details/125705706?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170340591716800215092652%2522%252C%2522scm%2522%253A%252220140713.130102…

第六部分 集合论

目录 主要内容 集合的基本概念 集合的基本运算 集合恒等式 初级运算 文氏图 集合的广义并与广义交 广义运算的性质 例1 A{{a},{a,b}} 集合算律 例2 判断下列命题是否为真 例3 设 例4 判断以下命题的真假,并说明理由. 解题思路 主要内容 集合的基本概念 属于、包含…

基于JAVA的超市账单管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3.3 后端设计在这里插入图片描述 四、系统展示五、核心代码5.1 查询供应商5.2 查询商品5.3 新增超市账单5.4 编辑超市账单5.5 查询超市账单 六、免责说明 一、摘要 1.1 项目介绍 基于…

【Postman】以命令行形式执行Postman脚本(使用newman)

一、背景 ​ Postman的操作离不开客户端。但是在一些情况下可能无法使用客户端去进行脚本执行。比如在服务端进行接口测试。由此我们引入了Newman。Newman基于Node.js开发,它使您可以直接从命令行轻松运行和测试Postman测试集。它在构建时考虑了可扩展性&#xff0c…

身为Java“搬砖”程序员,你掌握了多线程吗?

摘要:互联网的每一个角落,无论是大型电商平台的秒杀活动,社交平台的实时消息推送,还是在线视频平台的流量洪峰,背后都离不开多线程技术的支持。在数字化转型的过程中,高并发、高性能是衡量系统性能的核心指…

STM32实现流水灯

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_…

stm32 pwm输出

PWM 技术原理 CUBEMX PWM配置 pwm初始化 MX_TIM2_Init(); HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4);设置pwm //pwmVal 0 ~ 1000 __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_4, pwmVal);

2024苹果手机iOS管理软软件iMazing2.17永久免费版下载教程

iMazing2024是一款专业的苹果IOS设备管理器,强悍的性能远超苹果的iTunes,iMazing 能让广大果粉能已自己的方式管理苹果设备,无需iTunes即可畅快传输或者保存苹果设备中的音乐、消息、文件以及其他数据。 iMazing2Mac-最新绿色安装包下载如下&…

WORDPRESS付费会员插件Paid Memberships Pro v2.12.5 – Plugin + All Addons

WORDPRESS付费会员插件Paid Memberships Pro v2.12.5 – Plugin All Addons 简介: Paid Memberships Pro是一款功能强大的会员订阅和内容限制管理插件,适用于WordPress网站。它提供了丰富的特性和工具,帮助网站所有者轻松地创建和管理付费…

AndroidStudio无法新建aidl文件解决办法

我用的 AS 版本是 Android Studio Giraffe | 2022.3.1 Build #AI-223.8836.35.2231.10406996, built on June 29, 2023 右键新建 aidl 文件, 提示 (AIDL File)Requires setting the buildFeatures.aidl to true in the build file 解决办法 修改 app 的 build.…

【微服务】springboot整合kafka-stream使用详解

目录 一、前言 二、kafka stream概述 2.1 什么是kafka stream 2.2 为什么需要kafka stream 2.2.1 对接成本低 2.2.2 节省资源 2.2.3 使用简单 2.3 kafka stream特点 2.4 kafka stream中的一些概念 2.5 Kafka Stream应用场景 三、环境准备 3.1 搭建zk 3.1.1 自定义d…

基于Java SSM框架实现多人试卷批改考试命题系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现多人试卷批改考试命题系统演示 摘要 多人命题系统是高校为教师、学生试卷的重要组成部分,是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。我所在学院多采用半手工管理学生试卷…

10_并查集

10_并查集 并查集并查集结构并查集API设计UF(int N)构造方法实现union(int p,int q)合并方法实现代码 并查集应用举例UF_Tree算法优化UF_Tree API设计find(int p)查询方法实现union(int p,int q)合并方法实现代码优化后的性能分析 路径压缩UF_Tree_Weighted API设计代码 案例-畅…

10.3 uinput

uinput 简介 uinput 是一个内核驱动,应用程序通过它可以在内核中模拟一个输入设备,其设备文件名是 /dev/uinput 或 /dev/input/uinput。 uinput 使用 使用 uinput 时遵循以下步骤: 通过 open 打开 uinput 设备通过 ioctl 设置属性位图通过…

<avatar: frontiers of pandora>技术overview

https://www.eurogamer.net/digitalfoundry-2023-avatar-frontiers-of-pandora-and-snowdrop-the-big-developer-tech-interview https://www.youtube.com/watch?vLRI_qgVSwMY&t394s 主要来自euro gamer上digital foundry对于avatar的开发团队Massive工作室的采访&#xf…

STM32数码管

分类 按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮…

截断整型提升算数转换

文章目录 🚀前言🚀截断🚀整型提升✈️整型提升是怎样的 🚀算术转换 🚀前言 大家好啊!这里阿辉补一下前面操作符遗漏的地方——截断、整型提升和算数转换 看这一篇要先会前面阿辉讲的数据的存储否则可能看不…

SQL之条件判断专题

Case when (case when 情况1 then 结果1 when 情况1 then 结果1 else +剩余结果 end ) 列名 IF表达式 IF(判断内容,0,1) SELECT IF( sex1,男 ,女 )sex from student IFNULL表达式 IF(判断内容,x) 假如判…