"我们公司在招SRE,但JD写的全是DevOps的活。"

"老板说要搞平台工程,结果让我们重新搭了一套K8s。"

这种困惑,在IT圈里太常见了。

DevOps、SRE、平台工程——这三个词天天挂在嘴边,但你真的分得清吗?


先说结论:它们解决的是同一个问题的不同层面

什么问题?如何又快又稳地交付软件。

  • DevOps:解决文化和协作问题

  • SRE:解决稳定性和可靠性问题

  • 平台工程:解决效率和体验问题

它们不是互相替代,而是层层递进。


DevOps:打破部门墙的运动

DevOps从哪里来?

2009年,Patrick Debois因为一场惨痛的项目失败,开始思考一个问题:

为什么开发和运维总是互相甩锅?

他发现,问题的根源不是某个人的能力,而是部门墙

  • 开发只管写代码,不关心怎么部署

  • 运维只管保稳定,不关心业务需求

  • 出了问题?互相指责

于是他提出了DevOps:开发和运维应该是共同责任,而不是各自为战。

DevOps的核心是什么?

ServiceNow的产品架构师Rohan Rasane说得很清楚:

"DevOps倡导的理念是:软件交付和运维是共同责任。"

核心三要素:

  1. 自动化:能用脚本的不用人手

  2. 协作:开发运维坐在一起

  3. 持续改进:小步快跑,不断优化

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团队",而是又快又稳地交付价值给用户。

方法论只是手段,业务价值才是目的。

选最适合你的,而不是最流行的。


方法论只是地图,走路的还是你自己。

更多推荐