本篇要回答的问题:云计算到底改变了什么?它经历的资源交付革命与容器革命两个阶段各自迭代的是什么?由此推演,服务端的未来会走向何方?
上一讲我们把客户支持、BOSS 系统这些"业务可支持性"补齐,至此服务治理的话题接近尾声。本讲拉高视角做历史性总结:软件服务化让工程师多了 on call 职能,但保证服务质量极难;云计算正是一次"软件交付方式边界"的重新定义——从对交付过程负责,转向对服务质量结果负责。
关键判断:云计算改变了用户与 IT 服务商的配合方式——交付物从"可执行程序/源代码"变成"互联网服务",双方职责更简单清晰。
资源交付革命(第一阶段)
第一阶段是资源交付的云化,变革点在 IT 资源交付效率。
| 环节 | 云计算之前 | 云计算之后 |
|---|---|---|
| 采购 | 买服务器、交换机等物理资源 | 买预装操作系统的云主机若干台 |
| 物流 | 运送到 IDC 机房并上架 | —— |
| 系统 | 安装基础操作系统 | (已预装) |
| 业务 | 部署业务系统 | 部署业务系统 |
IT 产品形态本身没变(物理机→云主机,用户体验差异不大),但交付效率发生巨变:
| 优化维度 | 说明 |
|---|---|
| 资金优化 | 消除物流成本 |
| 时间优化 | 省去物流时间,上架/装系统自助化 |
| 资源复用率 | 不同用户的资源聚集,提升使用效率、减少社会浪费 |
容器革命(第二阶段)
第二阶段以容器革命为标志、以 Kubernetes 为事实标准,迭代的是服务治理能力。
服务治理的影响因素复杂,大体分三类:
| 影响因素 | 性质 | 典型场景 |
|---|---|---|
| 软硬件升级/配置变更(发布) | 计划性 | 主动升级、参数调整 |
| 软硬件环境故障 | 非预期 | 不知何时来一下 |
| 终端用户请求 | 非预期 | 秒杀、恶意攻击、特定请求耗尽资源 |
为什么基于物理机/云主机的服务治理不够好?
| 维度 | 基于物理机的服务治理 | 高度自治的服务治理(容器) |
|---|---|---|
| 自动化程度 | 可以很高 | 高 |
| 故障应对 | 需为不可预期故障做临时变更,难形成高质量检查清单 | 对软硬件故障天然免疫,自我修复 |
| 复杂性 | 各影响因素交织,难彻底解决 | 因素解耦 |
变更是故障之源:只有计划性变更才能按发布计划和检查清单有序执行;为恢复故障而做的临时变更更难保证质量。
Kubernetes 已成 DCOS(数据中心操作系统) 事实标准,带来三大改变:
| 改变 | 含义 |
|---|---|
| 操作对象不再是机器 | 最核心概念是服务(DCOS 之名由此而来) |
| 硬件资源池化 | 服务与硬件解绑,可轻松跨物理机迁移 |
| 面向逻辑视图描述集群 | 配置中心只体现业务逻辑,不体现物理特性 |
容器革命仍在进行,演进漫长——因为它从根本上改变了我们使用计算力的习惯。
服务端的未来
服务治理系统的最终迭代将带来:
| 未来状态 | 含义 |
|---|---|
| 任何业务轻松 7x24 | 高并发/高可用/高可靠都"小菜一碟" |
| 做业务足够傻瓜化 | 不再需要服务端工程师,只要 SQL 工程师 |
| 做存储中间件足够便捷 | 不会比写一个内存哈希表难多少 |
大胆判断:服务端工程师很可能只是阶段性历史产物。随着基础设施完善、服务端开发成本趋近于零,前端与后端将重新合而为一——回到软件时期不分前后端的样子。
总结
云计算和容器革命把服务端的基础设施化推向高潮。第一阶段(资源交付云化)解决的是 IT 资源交付效率;第二阶段(容器革命)解决的是服务治理能力,让系统从"高度自动化"走向"高度自治"。未来,专门的服务端开发工程师也许不再需要。
先把"是什么"回答清楚
| 概念 | 一句话说明 |
|---|---|
| 云计算 | 交付方式从"程序/源码"变为"互联网服务",对结果负责 |
| 资源交付革命 | 物理机→云主机,迭代 IT 资源交付效率 |
| 容器革命 | 以 K8s 为标准,迭代服务治理能力,走向高度自治 |
| DCOS | 数据中心操作系统,核心概念是"服务"而非"机器" |
| 高度自治系统 | 对软硬件故障天然免疫、自我修复 |
一句话速记
云计算两步走——先把"资源交付"云化(效率),再把"服务治理"容器化(自治);终局是服务端基础设施化到不再需要专门的服务端工程师。
几条值得记住的判断
- 云计算 = 软件交付边界的重新定义:对结果负责而非对过程负责。
- 变更是故障之源;高度自治系统对故障天然免疫。
- K8s 已成 DCOS 事实标准,操作对象从机器变为服务。
- 服务端工程师或是阶段性历史产物,未来前后端可能重新合一。
思考题
许式伟预言"服务端工程师终将消失,前后端重新合一"。结合你今天的工作栈(Serverless、托管数据库、K8s 平台),你认为自己有多少精力实际花在了"业务"上、多少花在了"伺候基础设施"上?这个比例正在往哪个方向变?

