DevOps、SRE、平台工程傻傻分不清?一文讲透三者的本质区别
"我们公司在招SRE,但JD写的全是DevOps的活。"
"老板说要搞平台工程,结果让我们重新搭了一套K8s。"
这种困惑,在IT圈里太常见了。
DevOps、SRE、平台工程——这三个词天天挂在嘴边,但你真的分得清吗?
先说结论:它们解决的是同一个问题的不同层面
什么问题?如何又快又稳地交付软件。
DevOps:解决文化和协作问题
SRE:解决稳定性和可靠性问题
平台工程:解决效率和体验问题
它们不是互相替代,而是层层递进。
DevOps:打破部门墙的运动
DevOps从哪里来?
2009年,Patrick Debois因为一场惨痛的项目失败,开始思考一个问题:
为什么开发和运维总是互相甩锅?
他发现,问题的根源不是某个人的能力,而是部门墙:
开发只管写代码,不关心怎么部署
运维只管保稳定,不关心业务需求
出了问题?互相指责
于是他提出了DevOps:开发和运维应该是共同责任,而不是各自为战。
DevOps的核心是什么?
ServiceNow的产品架构师Rohan Rasane说得很清楚:
"DevOps倡导的理念是:软件交付和运维是共同责任。"
核心三要素:
自动化:能用脚本的不用人手
协作:开发运维坐在一起
持续改进:小步快跑,不断优化
DevOps的局限
DevOps是一种理念,但它没有告诉你具体怎么做。
"要自动化",但用什么工具?
"要协作",但怎么考核?
"要持续改进",但改进到什么程度?
DevOps给了方向,没给地图。
SRE:用工程方法解决可靠性问题
SRE从哪里来?
Google在2003年遇到了一个困境:系统越来越复杂,靠人肉运维根本扛不住。
Ben Treynor Sloss提出了一个大胆的想法:
"为什么运维不能像写代码一样工程化?"
于是诞生了SRE(Site Reliability Engineering,站点可靠性工程)。
SRE的核心是什么?
SRE把运维问题变成了工程问题:
错误预算(Error Budget)
这是SRE最重要的概念之一:
如果你的SLA是99.9%可用性
那你一年有8.76小时的"犯错额度"
在额度内,可以大胆创新;超了,就要停下来修bug
这就是把"稳定性"量化了。
减少琐事(Toil)
SRE有个原则:琐事要自动化,而不是加人。
什么是琐事?手动、重复、可自动化的工作。
目标:SRE花在琐事上的时间不超过50%。
SRE的局限
SRE很好,但它有前提条件:
你得有足够的工程能力
你的系统得达到一定规模
你得有预算养专门的SRE团队
小公司学SRE,往往是"拿着锤子找钉子"。
平台工程:让开发自助服务
平台工程从哪里来?
DevOps让大家"共同负责",但现实是:
开发说:"我要部署",运维说:"等一下,让我先检查。"
开发说:"我要加个监控",运维说:"填个工单,下周处理。"
共同责任变成了相互等待。
平台工程的思路是:建一个平台,让开发自己干。
平台工程的核心是什么?
自助服务
开发想要:
创建一个新服务?点几下按钮
部署一个新版本?自动流水线
加一个监控项?配置即代码
不需要找运维,平台帮你搞定。
开发者体验(Developer Experience)
平台工程不只是搭工具,更重要的是:
让开发者用得爽。
如果平台难用到开发者宁愿手动操作,那就是失败。
平台工程的局限
平台工程最大的坑:容易变成"又一套系统"
原本要维护生产环境
现在还要维护"运维平台"
平台出了问题,谁来修?
平台不是目的,效率才是。
一张图看懂三者的关系
┌─────────────────────────────────────────────────┐
│ DevOps │
│ (文化:开发运维共同责任) │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ SRE │ │ 平台工程 │ │
│ │ (方法:可靠性) │ │ (工具:自助服务) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ 共同目标:又快又稳 │
└─────────────────────────────────────────────────┘DevOps是文化,SRE是方法论,平台工程是工具落地。
它们不冲突,而是互补:
DevOps告诉我们"要协作"
SRE告诉我们"怎么保证稳定"
平台工程告诉我们"怎么高效落地"
企业该怎么选?
初创期:DevOps思维就够了
人少,沟通成本低。建立"共同责任"的文化,比建什么平台都重要。
成长期:引入SRE理念
业务增长,用户变多。开始需要量化稳定性,建立错误预算,减少琐事。
成熟期:投资平台工程
团队规模大了,协作成本变高。这时候建平台,让开发自助服务,才是正解。
别在初创期就搞平台工程,那是在给自行车装飞机引擎。
给运维团队的三个建议
建议1:别被名词绑架
公司招"DevOps工程师",可能是想招运维;招"SRE",可能就是招值班的人。
看JD,别看Title。
建议2:从问题出发,不是从概念出发
你的痛点是什么?发布慢?故障多?协作乱?
针对痛点找方案,而不是先选概念再套场景
建议3:渐进式演进
不要指望一夜之间"DevOps转型"或"SRE落地"。
先在一个小团队试点
验证有效再推广
持续迭代,不断优化
方法论不是装修,是住进去慢慢改造。
结语:它们都是手段,不是目的
DevOps、SRE、平台工程——这三个词还会继续热下去。
但别忘了:
我们的目的不是成为"DevOps公司"或"SRE团队",而是又快又稳地交付价值给用户。
方法论只是手段,业务价值才是目的。
选最适合你的,而不是最流行的。
方法论只是地图,走路的还是你自己。
更多推荐
所有评论(0)