当前位置: 首页 > article >正文

DevOps 与站点可靠性工程的比较

观看完本文后,你将能够:
识别站点可靠性工程与DevOps的区别
识别站点可靠性工程与DevOps的共同之处
解释站点可靠性工程和DevOps如何协同使用

你可能想知道DevOps与站点可靠性工程(SRE)相比有何不同。
在探讨这个话题之前,我们或许应该先描述一下SRE是什么,它与DevOps有何不同,以及如何在DevOps环境中利用SRE。
根据本杰明·特雷纳·斯洛斯的说法,SRE是“……当软件工程师承担过去被称为运维的任务时所发生的事情”。
大多数系统管理员乐于日复一日地执行相同的手动任务,也许是因为他们觉得做这些手动任务是他们的工作。
但如果你让一位软件工程师搭建一台服务器,他们第一次可能会手动完成。
几天后,如果你让他们再搭建一台和第一台一模一样的服务器,他们可能还是会手动搭建。
但当你要求搭建第三台服务器时,软件工程师就会开始编写一个程序来自动为他们搭建服务器。
这就是软件工程师的思维方式。
他们是程序员,他们编写程序。
站点可靠性工程师的目标是通过自动化让自己的工作变得多余。
当然,这永远不会发生,因为总有更多的事情需要自动化处理。
SRE的原则之一是只招聘软件工程师。
你需要那些懂得编写代码的人,这样他们就能使用基础设施即代码的方式,实现重复性任务的自动化。
站点可靠性工程师专注于减少苦役,即重复性的手动任务。
建议他们将大约50%的时间用于通过自动化减少苦役。
其理念是,任何你反复做的事情都应该实现自动化。
你不应该日复一日地做同样的手动任务。
SRE团队与开发团队是分开的。
这是DevOps和SRE之间的一个重大区别。
DevOps认识到,在各自独立的团队中工作效率低下。
但另一方面,SRE却保留了这些独立的团队架构。
开发团队与运维团队是相互独立且不同的团队。
在SRE中,稳定性是通过一种叫做错误预算的机制来控制的。
只要开发人员的操作不会导致太多生产故障,他们就可以将应用程序部署到生产环境中。
错误导致的故障允许的上限就是错误预算。
比如说,你有一个服务水平协议,要求正常运行时间达到99.9% 。
这相当于每月大约44秒的停机时间。
只要每月的故障时间低于44秒,开发人员就可以自由地将他们的版本部署到生产环境中。
一旦开发人员造成的故障超过了他们的错误预算,他们就不再被允许部署到生产环境中。
这实际上效果很好。
它解决了开发人员等待运维团队的问题,同时仍然让运维团队能够控制生产环境的稳定性。
关于SRE的最后一点是,开发人员大约会花5%的时间在运维团队轮岗,以便他们了解SRE团队的日常工作。
此外,如果他们造成了太多故障,或者苦役时间超过了站点可靠性工程师工作时间的50%,就会有更多开发人员被调配到运维团队,以帮助恢复平衡。
SRE和DevOps在团队协作方面有很大差异。
正如我们所了解的,SRE保持开发团队和运维团队相互独立,但它有一个统一的人员储备池。
这意味着,如果你需要另一名站点可靠性工程师,你就要从开发人员中抽调一人。
如果你想要另一名开发人员,你就要从站点可靠性工程师中抽调一人。
这是为了实现平衡。
另一方面,DevOps打破了团队之间的壁垒,将其整合为一个团队,有着共同的业务目标,即快速、安全地将软件部署到生产环境中。
DevOps和SRE的另一个重大区别在于它们维护生产稳定性的方式。
正如我们所说,SRE使用开发人员必须遵守的错误预算,这些预算是基于服务水平目标制定的。
当开发人员超出错误预算,导致生产环境不稳定时,他们就不能再向生产环境部署应用了。
相比之下,DevOps通过持续交付管道实现自动化,并确保每个人都对在生产环境中运行的代码负责,以此来维护稳定性。
DevOps有一句口号是“谁开发,谁运维”。
与SRE不同,开发人员要对其在生产环境中的应用程序负责。
这两种实践方法也有共同之处。
两者都试图让开发团队和运维团队相互了解彼此的工作。
无论是像SRE那样让开发人员在运维团队轮岗,还是像DevOps那样让开发团队和运维团队在同一个团队,每个人都清楚要如何保持生产环境的稳定。
两者都需要一种无责备文化。
没有人上班是为了搞垮生产系统。
通常是系统辜负了人,而不是人辜负了系统。

所以,在这两种实践中,建立无责备文化都很重要。
人们可以坦诚地交流工作进展以及如何改进工作。
两者的目标是相同的——稳定且快速地部署软件。
所以,DevOps和SRE确实有共同的目标,只是实现目标的方式完全不同。
当我们思考DevOps和SRE如何相互补充并协同使用时,我倾向于把SRE看作是维护基础设施的团队,而DevOps是利用基础设施来维护其应用程序的团队。
如果你处于云环境中,SRE包括操作云平台的人员,而DevOps包括使用云服务的人员。
这就是为什么像平台即服务这样的工具对DevOps如此重要。
SRE团队提供一个平台。
DevOps团队利用这个平台来部署他们的应用程序。
在本文中,你学到了:
SRE采取的方法与DevOps不同;
SRE和DevOps有一些共同的目标;
SRE和DevOps可以一起用于维护和使用计算机基础设施。


http://www.kler.cn/a/539292.html

相关文章:

  • 如何在WPS和Word/Excel中直接使用DeepSeek功能
  • 【漫话机器学习系列】082.岭回归(或脊回归)中的α值(alpha in ridge regression)
  • TCP三次握手全方面详解
  • Goland 内存逃逸问题
  • Java数据结构 | TreeMap 和 TreeSet
  • 【多模态大模型】系列1:CLIP【多模态领域开山之作】
  • 小红书提出新面部视频交换方法DynamicFace,可生成高质量且一致的视频面部图像。
  • C++ -- 异常
  • 解密编程语言的执行机制:从解释到编译的进化
  • 数据库高安全—审计追踪:传统审计统一审计
  • 8.Python 面向对象(类和对象):定义类、类的构成、类的__init__()方法、创建对象、理解self
  • 【PGCCC】在 PostgreSQL 上使用 pg_hint_plan替换 Oracle Hints 的最佳实践
  • 采用DDNS-GO与cloudflare实现双域名同时访问NAS
  • (done) openMP学习 (Day13: 线程私有数据和如何支持库(Pi again),蒙特卡洛计算 Pi,线性同余法)
  • [图文]DeepSeek能做对《软件方法》的测试题吗?
  • python基础入门:4.4模块与包管理
  • SqlSugar简单使用之Nuget包封装-Easy.SqlSugar.Core
  • python pyaudio使用调用本地麦克风获取音频
  • Git仓库托管基本使用05——远程仓库操作
  • k8s证书过期怎么更新?
  • Activity相关学习(二)
  • mmap 文件映射
  • 【C编程问题集中营】使用数组指针时容易踩得坑
  • 单片机之基本元器件的工作原理
  • 4.寻找两个正序数组的中位数
  • PAT乙级真题 — 1074 宇宙无敌加法器(java)