这个话题,是在我的聊聊 SRE 群里有同事问起来的,从我的角度,其实简单理解:
SRE 就是从稳定性角度出发来做事情,DevOps 是从如何更有效地交付客户价值角度来做事情。
角度不同而已,但是具体要做的事情,其实在落地时是差不多的。这也是为什么我们会对这两个概念产品迷惑。
不过这种差别,会体现在具体细节上。
比如,CI 和 CD,从 SRE 角度,就是希望完全自动化,减少人为操作,从而降低人为失误,提升稳定性,同时灰度验证也是从稳定性角度出发。
但是,从 DevOps 角度,是期望最大程度保证交付效率和软件质量,所以 DevOps 里面除了自动化的编译、打包、发布等等,还会特别强调自动化测试、覆盖率、以及不同环境的验证等环节,也就是强调 QA 的介入。
而 SRE 就不会强调和关注软件功能质量的问题,他关注的更多的是怎么确保网站的整体稳定性,通过 SLO 来衡量。
所以,都是做 CI 和 CD,做的事情也差不多,但是出发点不同,角度不同,在一些细节上也就不一样,但是大面上其实差别不大。
另一个比较显著的差别,就是 DevOps 是贯穿整个软件生命周期的,所以覆盖面很广,从产品、需求、研发、测试到运维,讲究端到端拉通,所以我们看到的 DevOps,其实无所不包,你把任何一个研发动作放进去都是合理的。
但是,SRE 只关注稳定性,所以会更有针对性,他不会 care 你需求分析的合理不合理,测试通过率怎么样等等,最终他只关注 SLO 是否达成。
从我的角度看,SRE 其实更聚焦,更适合运维落地,而 DevOps 更像是指导原则,需要端到端的参与才可以,大多数时候会受限于企业组织架构,需要自上而下的推进。
从实际做事情的角度看,其实不必纠结两者到底有啥区别,从问题出发才最重要。
本文转载自成哥的世界公众号。
原文链接:https://mp.weixin.qq.com/s/DwWzevo0rfJyt3ciJNvAiw
评论