☁️ 第四章 构建云服务的技术
📄 一句话概括

OpenStack 是用开源软件搭一套自己的 IaaS:它把公有云上的每一项基础设施能力,都用一组独立组件实现了一遍——计算(Nova)、网络(Neutron)、块存储(Cinder)、对象存储(Swift)、镜像(Glance)、认证(Keystone);这张【一一对应表】最有价值的地方是它证明了不被锁死在技术上真的可行,而代价是这六个组件要你自己装、自己升级、自己排障。

📝 本节和前面几节的关系

前面几节把构建云的各个零件都讲完了:虚拟化(4-3)、容器(4-6)、编排(4-7)、网络(4-11)、存储(4-15)、超融合(4-16)。

这一节(和下一节)要回答的是最后一个问题:这些零件怎么攒成一个能卖的产品? 攒成 IaaS 的代表是 OpenStack,攒成 PaaS 的代表是 Cloud Foundry——教材把这两个名字放在最后,是把整章收口。

一、OpenStack 是什么:一组组件的组合

先纠正一个常见印象:OpenStack 不是一个软件,它是一组项目,每个项目解决一块能力,装起来才成为一套云平台。

组件 管什么 对应公有云的能力
Nova 计算,创建与调度虚拟机 云服务器(ECS / EC2)
Neutron 网络,子网、路由、安全组 VPC / 子网 / 安全组
Cinder 块存储,给虚拟机挂盘 云盘(EBS / 云硬盘)
Swift 对象存储 对象存储(OSS / S3)
Glance 镜像,装系统用的模板 镜像服务
Keystone 认证与权限 IAM / 访问密钥

为什么是【一组】而不是【一个】:因为云平台要提供的能力本来就是多个维度的(算、网、存、镜像、权限),而且每一维的技术差别很大——硬做成一个巨型软件,反而没人能维护。拆成组件之后,每一块可以各自演进、各自替换,也可以只用其中几个。

这也是【开源】和【商用一体机】的一个根本差别:商用产品帮你把这些组件集成好、测过、配上界面;开源给你的是零件,攒起来是你的工作。

二、动手 Demo:六个零件对应六种能力

看到什么算成功:

==================================================================================================
【Demo 17】IaaS 的基础软件:OpenStack 的六个零件
==================================================================================================
  公有云的【云服务器、云盘、VPC、对象存储】这些能力,
  自己搭一套也有对应的开源实现,OpenStack 就是其中最有名的一套。

  组件          管什么                      对应公有云的能力
  --------------------------------------------------------------------------------------------
  Nova          计算,创建与调度虚拟机      云服务器(ECS / EC2)
  Neutron       网络,子网、路由、安全组    VPC / 子网 / 安全组
  Cinder        块存储,给虚拟机挂盘        云盘(EBS / 云硬盘)
  Swift         对象存储                    对象存储(OSS / S3)
  Glance        镜像,装系统用的模板        镜像服务
  Keystone      认证与权限                  IAM / 访问密钥
  --------------------------------------------------------------------------------------------
  这张表最值得记的是【一一对应】这件事:
  你在公有云上用到的每一项基础设施能力,自建时都有一个开源组件顶着。
  所以 2-12 说的【不被锁死】不是空话——路确实存在。

  但路要自己铺:这六个组件各自的安装、升级、排障都是独立的活儿,
  一个中等的 OpenStack 集群通常需要一个专门的团队维护。
  这就是 2-12 里那句【开源省的是许可,不是总成本】的来历。

读结果:

30 秒实验

在能联网的机器上搜【OpenStack 组件列表 官方文档】,做两件事:

  1. 数一数它到底有多少个组件(远超上面那六个——还有界面、计量、编排、数据库服务等等)。
  2. 看每个组件的【当前版本】和【维护状态】。

做完这个你会看到一个真实的图景:一套开源云平台是由几十个项目拼起来的,而每个项目都有自己的发布节奏和维护状态。这就是自己攒一套云的真实工作量——它不是【装一个软件】,而是运营一整套互相依赖的项目。

常见误区

  1. 错误:OpenStack 是一个可以下载安装的软件。——纠正:它是一组独立项目的统称,每个项目有自己的版本与发布周期。所谓【部署一套 OpenStack】,是先把这几十个组件按依赖关系装起来、配好网络与存储、再让它们能协同工作——这是一项工程,不是一个安装动作。这也是它最容易被低估的地方。

  2. 错误:用 OpenStack 就一定比用公有云便宜。——纠正:省的是许可费,不是总成本。因为它把【许可】换成了【人力 + 硬件 + 时间】:要有人会装、会调、会升级、会在半夜处理故障;还要自己买机器、自己租机房(或者反过来,用公有云的裸金属再搭一套,那就【用云来建云】,成本结构更复杂)。规模不够时,自建的单价往往高于公有云。

  3. 错误:OpenStack 是【公有云的替代品】,所以两者是对立的。——纠正:它更像是一种【可选路径】。有的组织因为合规、数据主权、已有资产等原因必须自建;有的组织则只在特定部分自建(比如把敏感的数据库留在私有云,其余用公有云)。所以现实里更多是混合:一部分能力自己搭、一部分买。这也是 2-3 讲混合云时那条主线。

  4. 错误:开源意味着没有厂商支持、出了问题只能靠自己。——纠正:有商业支持,但要单独买。多家公司提供 OpenStack 的发行版与支持服务——也就是说,你仍然可以买到【有人兜底】,只不过这个兜底是另一个合同。所以【用开源】和【有人支持】并不矛盾;真正的问题是你要不要为这个支持付费,以及它是否覆盖你需要的组件。

自测三问(点开对答案) 1. 【一一对应】这件事,对做技术选型有什么实际价值? —— **它给了你一个可替换性的判断依据**。当你要用某一项云上的能力时,可以问一句:**这项能力有没有对应的开源实现?** 有,说明**从功能上不会被永久绑住**(迁移仍然有代价,但路是通的);没有,说明这是一项【厂商特有】的能力,用了就等于加深绑定。所以这张表真正的用法是:**把它当成一份【可替换性清单】,用来评估每一项选型的长期成本。** 2. 为什么说自建 IaaS 的成本结构是【许可费为零,人力成本很高】? —— 因为**这几十个组件都需要人来运营**:各自安装、各自升级、互相之间的兼容性、出故障时的排查、性能调优、容量规划——**每一项都是持续的、有专业门槛的工作**。而商用产品的定价里,**其实就包含了这部分人力**(只不过由厂商的工程师分担给了很多客户,所以单价低)。所以【开源更便宜】这个判断只在**你把人力算进去、并且规模足够大能把人力摊薄**时才成立。 3. 什么情况下【自建 IaaS】是理性的选择? —— 三类情况。① **合规或数据主权要求**:数据不允许出境或出特定范围,只能用自建;② **规模足够大**:大到自建的固定人力成本能被摊薄到低于公有云单价;③ **已有资产与团队**:机房、硬件、懂这套的人都已经在了,边际成本低。**反过来,如果三条都不成立,用公有云几乎总是更划算的**——这也是为什么绝大多数企业最终选的是【用公有云为主+少量自建】。
⚠️ 2026 现状:OpenStack 的今天
  • 它没有消失,反而在特定的地方扎得更深。全球在管的核心规模仍在增长,而且有国家把它定为公共行政领域的虚拟化标准——说明它在【主权云/私有云/受监管行业】的位置很稳。
  • 但它的竞争对手变了。当年的对手是商用虚拟化软件,现在的对手是 Kubernetes——因为新应用越来越多地直接跑在容器平台上,不再经过 IaaS 这一层。于是 OpenStack 的定位也在调整:更多作为【提供虚拟机与存储的底座】,而把上层交给 Kubernetes。
  • 对学习者的启示:教材把它放在【构建 IaaS】的位置是对的,但今天看它,最好把它理解成一套【把机器和存储变成可编程资源】的组件集合,而不是【云平台的唯一形态】。

相关笔记