加载中...

本篇要回答的问题:整个"服务治理篇"讲了什么?服务端操作系统是如何一步步演进到 DCOS 的?从架构思维角度看,"变更"这个最复杂的需求该怎样被正交分解?

上一讲我们以"云计算与服务端的未来"收尾,本讲是第四章"服务治理篇"的整体回顾。先厘清边界:服务端开发致力于设计业务架构满足需求,服务治理致力于让程序健康地提供 7x24 服务。

熟悉的服务端体系架构图

关键判断:这张服务端架构图自"服务端开发"分工出现后就没变过。这些年迭代的不是骨架,而是负载均衡、数据库/存储中间件的能力丰富与完善。

服务端操作系统的演进

从服务治理角度看,技术迭代很快。服务端 OS 最初源自桌面 OS,但两者渐行渐远:

维度 桌面操作系统 服务端操作系统
领域特征 强交互(事件输入、GDI 输出) 大规模请求 + 24 小时不间断服务
迭代驱动力 人机交互的革命 服务治理的需要(非业务功能需要)
终点 桌面体系 DCOS(数据中心操作系统)

Docker → CoreOS → Kubernetes

第一个里程碑是 Docker,它把容器使用界面标准化,完成服务端软件的标准化交付,与本地 OS 解耦。Docker 之前的软件交付有三大问题:

问题 说明
标准不同 brew / rpm / apt 五花八门
不符服务规格 只是软件仓库,未定义服务运行规范
环境依赖 描述非自包含,行为不确定,常因环境问题安装失败

随后 OCI 标准诞生,定义两大规范:运行时标准(Runtime Spec)+ 镜像标准(Image Spec)。

玩家 角色与结局
Docker 标准化容器交付;推 Docker Swarm 争 DCOS
CoreOS 专注服务端 OS,主张除内核外全部容器化;思想先进但改变用户习惯过大、没切中痛点,未流行
Kubernetes(Google 牵头) 结束 DCOS 之争——容器最早由 Google 推入 Linux 内核,内部有 Borg 的丰富实践

洞见:Docker 和 CoreOS 都大大低估了 DCOS 的难度,连七牛云也一样——2014 年成立 QCOS 项目组,最终转向拥抱 Kubernetes。

服务治理篇内容回顾

服务治理系统的抽象输入输出图

抽象系统第一步是理清输入与输出(代表系统规格)。随后引出"工程师思维"——因为话题从"基础平台→业务开发→业务治理"一个比一个更不稳定、需求更复杂、事务性工作更多。

服务治理篇的宏观内容地图

探讨维度 包含内容
服务的变更 发布、升级与版本管理
服务的健康状况 日志、监控与报警
服务的故障处理 故障域与故障预案、故障排查与根因分析、过载保护与容量规划

架构思维:用"变更"做正交分解的范本

这是自信息科技诞生以来最宏大的架构设计案例,因为需求太复杂。它不适合架构新手入门,却是体会架构分解核心思想的极佳材料。

以单一需求"变更"为例(它涵盖软硬件升级、配置调整、表结构调整、增减机器、数据中心搬迁、域名/IP 调整……难以穷尽),层层正交分解:

分解层级 类别 含义与处理方式
第一层 主动性变更 有计划的变更(升级、改表结构等)
第一层 被动变更 非预期导致(扩容、机房下线改 DNS 等)→ 硬件池化,业务逻辑与硬件彻底解耦
第二层(对主动性变更) 软件变更 通过版本化表达:每个版本自包含、确定性、只读、可复现(如 Git)
第二层(对主动性变更) 软件数据的变更 与业务强相关、无法再抽象,但低频,走软件升级流程管理风险

关键判断版本化是核心概念——每个独立版本的数据都是确定性、只读、行为可复现的;"软件变更"与源代码管理系统(Git)如出一辙。

总结

四大模块"基础平台→桌面开发→服务端开发→服务治理"到此收官,软件大厦的骨架已然明了。下一步学什么?许式伟更看重的不是常规"设计模式",而是设计场景

洞见:理解设计模式都应放回它要解决的问题域。比设计模式更好的武器是"设计场景"——它有清晰的问题域定义,是实实在在的通用子系统。能把业务场景分解为多个"通用设计场景"的组合,正是架构师成熟度的核心标志

先把"是什么"回答清楚

概念 一句话说明
服务开发 vs 服务治理 前者设计业务架构满足需求,后者保障 7x24 健康服务
DCOS 服务端 OS 的演进终点,K8s 为事实标准
OCI 标准 容器的运行时标准 + 镜像标准
版本化 每个版本自包含、确定、只读、可复现(如 Git)
设计场景 有清晰问题域的通用子系统,优于泛泛的"设计模式"

一句话速记

服务治理的本质是对"变更"做层层正交分解——先分主动/被动(→硬件池化),再把主动变更分为软件变更(版本化)与数据变更(低频走流程)。

几条值得记住的判断

  • 服务端架构骨架没变过,变的是负载均衡与存储中间件的能力。
  • 服务端 OS 的演进由服务治理需要驱动,而非业务功能需要。
  • Kubernetes 结束 DCOS 之争,Docker/CoreOS 都低估了难度。
  • 架构师真正的武器库是通用设计场景,而非死记设计模式。

思考题

许式伟说"变更"是一个能层层正交分解的范本:主动/被动 → 软件/数据。回到你负责的系统,把你最近经历的一次线上"变更"放进这个分解框架里——它属于哪一层?你的系统是否已经做到"业务逻辑与硬件解耦",让被动变更不再需要人去改配置?

公告栏
这是我的个人知识库。
记录技术,也记录生活 —— 读过的、试过的、想明白的,都堆在这儿。
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
15.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
全局知识图谱
当前页面 已访问 文章 标签
ESC 关闭 · 滚轮缩放 · 拖拽移动 · Ctrl+G 开关