KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
私有化部署概念课:把应用课抛出的概念讲清楚 — keel 龙骨
私有化部署概念课:把应用课抛出的概念讲清楚 的参考信息:私有化部署概念课:把应用课抛出的概念讲清楚
短页参考 · 概念从哪来、是什么、解决什么问题、长什么样
《私有化交付工程》 是按主题一路往下写的:一章讲一个能送进内网的镜像里装了什么,一章讲没有外网怎么把制品搬进去,一章讲升级与回滚,一章讲现场怎么自己查出答案。它假定你已经知道交付大致是怎么回事,直接把判断讲给你听。
但每一章都会抛出概念——交付包、内网隔离、实例、迁移与结构版本、停机窗口。这些概念在正文里是按"够用"的深度出现的:讲实例隔离时说清"改 BOARD_INSTANCE_NAME 就换了一整套资源名前缀",就够你把第二个客户装上去了。
这门课补的就是那一段:当应用课里的某个概念让你推不下去、或者你只是想知道它到底是怎么回事时,来这里读一页。
它刻意很短。AI 已经替你写好了大部分交付脚本,你不需要跟着再挖一遍编排细节——你需要的只是知道这个概念怎么产生的、它是什么、它解决什么问题、它面对什么需求、它具体长什么样。把这五件事弄清楚,回头再看应用课里那些面向场景与取舍的判断,会顺得多。
这门课是什么,不是什么
| 它是 | 它不是 |
|---|---|
| 参考页:一页一个概念,4–6 分钟读完 | 不是教程:没有从零讲起的引导 |
| 概念的来历与形态:它为什么需要存在、长什么样 | 不是原理深挖:不读内核文档、不推编排实现细节 |
| 应用课的下钻入口:从被卡住的那一句点进来 | 不是应用课的替代:选型、安装、升级、排障仍在应用课 |
概念地图
| 概念 | 类型 | 回答什么 | 对应应用课 |
|---|---|---|---|
| 00 交付包 | 主题概念 | 为什么"跑起来所需的一切"必须装成一份可以整体搬动的东西;里面哪几样丢了要重来 | 01 章 · 为什么「私有化」不是「多买一台服务器」 |
| 01 内网隔离 | 衍生概念(服务于「交付包」) | "没有出口"与"网络慢"差在哪一条上;为什么它的表现是内核拒绝而不是超时 | 03 章 · 没有外网,怎么把制品搬进去 |
| 02 实例 | 主题概念 | 一套代码怎么在一台机器上变成两套互不干扰的部署;三者里哪一样不能自动分开 | 05 章 · 一套代码、多个客户:配置注入与实例隔离 |
| 03 迁移与结构版本 | 主题概念 | 结构为什么必须被版本化;为什么"退出码 0"不等于"结构动了" | 06 章 · 升级与回滚:要么升上去,要么原样退回来 |
| 04 停机窗口 | 主题概念 | SIGTERM 与 SIGKILL 之间那个数由谁决定;设小了那行数据停在哪个状态 |
06 章 · 升级与回滚:要么升上去,要么原样退回来 |
主题概念是被应用课当作章节主题讲的东西;衍生概念是为了理解某个主题概念而必须先弄懂的东西——比如不懂"没有出口",就说不清"交付包为什么必须自带镜像与证明"。每一页都会在第五节列出它带出的衍生概念,以及该去哪一页。
怎么读
- 按需读:应用课读到哪一句卡住,就从那一句旁边的链接点进来;每页最后都会指回去。
- 也可以当最小地图读:五页按顺序读一遍约 25 分钟,你会拿到一次私有化交付里这几个概念之间的位置关系。
- 不要背。每一页的重点不是定义,而是"这个概念改变了你的哪个判断"——那句话才是要带走的。
与相邻课程的分工
- 《私有化交付工程》:同源课。它管"怎么执行"(搬什么进去、按什么顺序落地、升不上去怎么退回来、客户怎么自己查),本课管"这个概念是什么"。同一个概念在两边的深度不同——应用课讲到"够你做判断"为止,本课讲到"你知道它是什么、从哪来"为止。
- 《Docker 概念课》:那是另一套构件。它讲的是容器世界里那四个构件——镜像、层、容器、构建上下文;本课讲的是私有化交付这条线上被反复使用的五个概念,两边的页不重叠:重合的词(镜像、容器、编排文件)在本课里都是已知输入,只被使用,不再解释。
- 《构建打包与部署上线》:那边管交付形态怎么选(什么场景做成内网交付、什么场景做成多客户共用一套服务);本课连同源课一起,都从"已经选定私有化"这句话之后开始。
关于证据口径
页面里的命令、配置与输出都来自同一套私有化交付现场记录,环境是 Docker 29.8.2 / compose v2,被交付物是应用镜像 board:1.0.0(升级链上还有 1.1.0 与一个演练用的 1.2.0),数据库镜像 postgres:16-alpine:
- 编排解析读数、安装输出、
migrate.step/migrate.done日志、worker 的停机日志、docker network inspect与docker compose ls/docker ps的输出,都是照录,数值未经改写。 - 06 章那组「停机窗口」的正反对照来自第二套实例(
BOARD_JOB_SECONDS=20);三行配置差异、两个宿主机端口也取自同一台机器上的两套实例。 - 页面里出现的
MIGRATIONS元组是代码原文摘录,不是运行输出——它是"迁移长什么样"的形态示例,字段与结构属实,行内语句做了省略。 - 里面的哈希、随机密码、备份文件名与日志时间戳都是那一次运行真实产生的值——重跑一遍会得到不同的值;
direction、from/to、internal、Memory这类字段之间的关系不变。请核验字段之间的关系,不要把某个具体串当结论抄下来。 - 页面不含任何未实测的形态;也因此本课不写安装之后的排障过程与升级窗口的排期——那些留在应用课。
课程导读(起点自检、阅读方式)见 course/README.md。