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 里那句【开源省的是许可,不是总成本】的来历。
读结果:
- 这张表的价值不在记名字,在记住【一一对应】这个事实。它说明:公有云卖给你的那些能力,没有一项是魔法——每一项都有公开的实现方式。理解这一点,才不会对云产生神秘感,也才可能做出【哪些用云、哪些自建】的理性判断。
- 最后一行的提醒最重要:六个组件意味着六套安装、六份升级说明、六种排障方式。所以自建 IaaS 的成本结构是【许可费为零,人力成本很高】——这正是 2-12 那句【开源省的是许可,不是总成本】的含义。
30 秒实验
在能联网的机器上搜【OpenStack 组件列表 官方文档】,做两件事:
- 数一数它到底有多少个组件(远超上面那六个——还有界面、计量、编排、数据库服务等等)。
- 看每个组件的【当前版本】和【维护状态】。
做完这个你会看到一个真实的图景:一套开源云平台是由几十个项目拼起来的,而每个项目都有自己的发布节奏和维护状态。这就是自己攒一套云的真实工作量——它不是【装一个软件】,而是运营一整套互相依赖的项目。
常见误区
-
错误:OpenStack 是一个可以下载安装的软件。——纠正:它是一组独立项目的统称,每个项目有自己的版本与发布周期。所谓【部署一套 OpenStack】,是先把这几十个组件按依赖关系装起来、配好网络与存储、再让它们能协同工作——这是一项工程,不是一个安装动作。这也是它最容易被低估的地方。
-
错误:用 OpenStack 就一定比用公有云便宜。——纠正:省的是许可费,不是总成本。因为它把【许可】换成了【人力 + 硬件 + 时间】:要有人会装、会调、会升级、会在半夜处理故障;还要自己买机器、自己租机房(或者反过来,用公有云的裸金属再搭一套,那就【用云来建云】,成本结构更复杂)。规模不够时,自建的单价往往高于公有云。
-
错误:OpenStack 是【公有云的替代品】,所以两者是对立的。——纠正:它更像是一种【可选路径】。有的组织因为合规、数据主权、已有资产等原因必须自建;有的组织则只在特定部分自建(比如把敏感的数据库留在私有云,其余用公有云)。所以现实里更多是混合:一部分能力自己搭、一部分买。这也是 2-3 讲混合云时那条主线。
-
错误:开源意味着没有厂商支持、出了问题只能靠自己。——纠正:有商业支持,但要单独买。多家公司提供 OpenStack 的发行版与支持服务——也就是说,你仍然可以买到【有人兜底】,只不过这个兜底是另一个合同。所以【用开源】和【有人支持】并不矛盾;真正的问题是你要不要为这个支持付费,以及它是否覆盖你需要的组件。
自测三问(点开对答案)
1. 【一一对应】这件事,对做技术选型有什么实际价值? —— **它给了你一个可替换性的判断依据**。当你要用某一项云上的能力时,可以问一句:**这项能力有没有对应的开源实现?** 有,说明**从功能上不会被永久绑住**(迁移仍然有代价,但路是通的);没有,说明这是一项【厂商特有】的能力,用了就等于加深绑定。所以这张表真正的用法是:**把它当成一份【可替换性清单】,用来评估每一项选型的长期成本。** 2. 为什么说自建 IaaS 的成本结构是【许可费为零,人力成本很高】? —— 因为**这几十个组件都需要人来运营**:各自安装、各自升级、互相之间的兼容性、出故障时的排查、性能调优、容量规划——**每一项都是持续的、有专业门槛的工作**。而商用产品的定价里,**其实就包含了这部分人力**(只不过由厂商的工程师分担给了很多客户,所以单价低)。所以【开源更便宜】这个判断只在**你把人力算进去、并且规模足够大能把人力摊薄**时才成立。 3. 什么情况下【自建 IaaS】是理性的选择? —— 三类情况。① **合规或数据主权要求**:数据不允许出境或出特定范围,只能用自建;② **规模足够大**:大到自建的固定人力成本能被摊薄到低于公有云单价;③ **已有资产与团队**:机房、硬件、懂这套的人都已经在了,边际成本低。**反过来,如果三条都不成立,用公有云几乎总是更划算的**——这也是为什么绝大多数企业最终选的是【用公有云为主+少量自建】。- 它没有消失,反而在特定的地方扎得更深。全球在管的核心规模仍在增长,而且有国家把它定为公共行政领域的虚拟化标准——说明它在【主权云/私有云/受监管行业】的位置很稳。
- 但它的竞争对手变了。当年的对手是商用虚拟化软件,现在的对手是 Kubernetes——因为新应用越来越多地直接跑在容器平台上,不再经过 IaaS 这一层。于是 OpenStack 的定位也在调整:更多作为【提供虚拟机与存储的底座】,而把上层交给 Kubernetes。
- 对学习者的启示:教材把它放在【构建 IaaS】的位置是对的,但今天看它,最好把它理解成一套【把机器和存储变成可编程资源】的组件集合,而不是【云平台的唯一形态】。
- ☐ 下一节(4-18 构建 PaaS 的基础软件:Cloud Foundry)
相关笔记
- 简单的虚拟化基础设施 —— 上一篇:把三层摊平成一层
- 云计算也在走向开源化 —— 开源省的是许可,不是总成本
- 云服务的分类 —— IaaS 的边界画在哪
- 云服务的两个潮流 —— 私有云的上限是你机房的余量
- ☁️ 云计算 · 索引 —— 全课路线图