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

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

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.hqwc.cn/news/297327.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信商户申请0.2费率怎么开通

作为一个过来人和普通商家,在申请收款功能的时候找过不下十家机构,市面上比较知名的支付公司我都去找了,但是了解到的收款手续费率都在0.6左右,最低的也才0.38,收获了很多经验,不对,是教训&…

TCP服务器的演变过程:多进程实现一对多的TCP服务器

使用多进程实现一对多的TCP服务器 一、前言二、新增使用的fork()函数三、实现步骤四、完整代码五、TCP客户端5.1、自己实现一个TCP客户端5.2、Windows下可以使用NetAssist的网络助手工具 小结 一、前言 手把手教你从0开始编写TCP服务器程序,体验开局一块砖&#xf…

C语言、c++实现超好玩植物大战僵尸(完整版附源码)

实现这个游戏需要Easy_X main.cpp //开发日志 //1导入素材 //2实现最开始的游戏场景 //3实现游戏顶部的工具栏 //4实现工具栏里面的游戏卡牌 #define WIN_WIDTH 900 #define WIN_HEIGHT 600 //定义植物类型 enum { WAN_DOU, XIANG_RI_KUI, ZHI_WU_COUNT }; #include<stdio.…

Zabbix和Prometheus之间的优势

一、简介 1、Prometheus Kubernetes 自从 2012 年开源以来便以不可阻挡之势成为容器领域调度和编排的领头羊。 Kubernetes 是 Google Borg 系统的开源实现&#xff0c;于此对应 Prometheus 则是 Google BorgMon 的开源实现。 Prometheus 是由 SoundCloud 开发的开源监控报警…

excel统计分析——S-W正态性检验

参考资料&#xff1a; [1]马兴华,张晋昕.数值变量正态性检验常用方法的对比[J].循证医学,2014,14(02):123-128. 统计推断——正态性检验&#xff08;图形方法、偏度和峰度、统计&#xff08;拟合优度&#xff09;检验&#xff09;_sm.distributions.ecdf-CSDN博客 【统计学】…

图形处理工具:Photoshop Elements 2020 mac介绍说明

Photoshop Elements 2020 mac简称ps elements 2020&#xff0c;是一款图形处理工具。ps elements 2020 mac可以帮助您自动生成照片和视频作品的功能&#xff0c;采用Sensei AI技术可进行图像组织、编辑和创建等。Photoshop Elements 2020 可以帮助您轻松整理照片和视频&#xf…

ansible-playbook实操之一键搭建lnmp+wordpress

目录 1、架构和准备&#xff1a; 2、配置nginx角色&#xff1a; 3、配置mariadb角色&#xff1a; 4、配置php角色&#xff1a; 5、配置完之后&#xff0c;写脚本调用roles 6、配置完之后浏览器搭建wordpress&#xff1a; 1、架构和准备&#xff1a; 操控节点&#xff1a;…

西门子博途与菲尼克斯无线蓝牙模块通讯

菲尼克斯无线蓝牙模块 正常运行时,可以使用基站控制字0发送00E0(得到错误代码命令) 正常运行时,可以使用基站控制字0发送00E0(得到错误代码命令)得到各个无线I/O是否连 接的信号(状态字IN word 1的第2、6、10位) 小车1连接状态 小车2连接状态 小车3连接状态 1#小车自…

基于 ACK One 实现简单的跨云协同,让业务管理更高效

作者&#xff1a;庄宇 本文根据 2023 云栖大会现场分享实录整理 2 年前的云栖大会&#xff0c;我们发布分布式云容器平台 ACK One&#xff0c;随着 2 年的发展&#xff0c;很高兴看到 ACK One 在混合云&#xff0c;分布式云领域帮助到越来越多的客户&#xff0c;今天给大家汇报…

K8S 日志方案

目录 一、统一日志管理的整体方案 1、基础日志 2、Node级别的日志 3、集群级别的日志架构 二、安装统一日志管理组件 1、 部署Elasticsearch 2、部署Fluentd 3、部署Kibana 三、日志数据展示 一、统一日志管理的整体方案 通过应用和系统日志可以了解Kubernetes集群内…

快速学习 webpack

目录 1. webpack基本概念 webpack能做什么&#xff1f; 2. webpack的使用步骤 2.1_webpack 更新打包 3. webpack的配置 3.1_打包流程图 3.2_案例-webpack隔行变色 3.3_插件-自动生成html文件 3.4_加载器 - 处理css文件问题 3.5_加载器 - 处理css文件 3.6_加载器 - 处…

红队攻防实战之DC1

如果额头终将刻上皱纹&#xff0c;你只能做到&#xff0c;不让皱纹刻在你的心上 0x01 信息收集: 1.1 端口探测 使用nmap工具 端口扫描结果如下&#xff1a; 由nmap扫描可以知道&#xff0c;目标开放了22,80,111,46204端口&#xff0c;看到端口号22想到ssh远程连接&#xff…