域组 · J · 17 节点

域·部署

GD-J
域组基础进阶高级17 节点

§1组简介

本组 17 个节点,类型为 域组,域 J,覆盖阶段 基础 / 进阶 / 高级。

§2成员节点目录

节点 ID名称层/来源阶段简介
ESS-J-01构建发布运行分离本质 essence基础软件交付须严格分离构建、发布、运行三阶段:构建把代码转换为可执行制品,发布把制品与当次配置合并为带唯一标识的不可变版本,运行只启动选定版本,且运行阶段不存在把改动写回构建的通道。
ESS-J-02开发生产一致性本质 essence基础开发、预发与生产环境应尽可能相似,把时间差、人员差与工具差压到最小,并使用同类型同版本的支撑服务,使在早期环境中验证过的行为在生产中依然成立。
ESS-J-03不可变基础设施本质 essence进阶部署完成后的基础设施(服务器、网络设备、运行实例)不再被就地修改,任何变更都通过创建新版本并替换实例实现,从而把运行环境的实际状态锚定在经测试的制品上。
ESS-J-04部署即变更管理本质 essence进阶部署不是一次性的文件拷贝,而是一次受控、可审计、可回滚的变更:应明确谁在何时以何制品更改了哪个环境的什么状态,并为失败预留恢复路径。
MTH-J-01部署流水线方法论 methodology基础把从代码到生产的交付拆为多个自动阶段,每阶段提升置信度(通常以更多时间为代价),只构建一次并让同一制品逐环境提升,从而尽早检出会导致生产问题的变更。
MTH-J-02发布工程方法论 methodology进阶以可复现、自动化的方式构建并交付软件的工程学科,覆盖源码管理、编译、构建配置、包管理与安装,确保每次发布都可重复,而非一次性的独特雪花。
MTH-J-03封闭构建方法论 methodology进阶对构建机器已安装的库与软件不敏感、只依赖已知版本编译器与库的自足构建过程,使同一版本在不同机器上构建得到一致结果。
MTH-J-04配置外置与显式化方法论 methodology基础把随部署环境变化的一切(凭据、资源句柄、每次部署的取值)从代码中严格分离并显式声明,使同一不可变制品能通过注入不同配置部署到任意环境。
MTH-J-05渐进暴露部署策略方法论 methodology进阶把新版本分阶段、逐步暴露给更大范围的用户与基础设施,而非一次性全量切换;蓝绿以双环境切换、金丝雀以小比例扩量、滚动以实例渐替,均以健康判据驱动推进。
MTH-J-06发布与部署解耦方法论 methodology高级把把制品投入运行环境(部署)与让功能对用户可见(发布)分离,使代码可以先部署而暂不启用,功能的开放由运行时开关独立控制。
MTH-J-07可回滚性与爆炸半径控制方法论 methodology高级为每次变更预置快速、可靠的恢复能力,并把失败的影响限制在尽可能小的范围:通过制品版本化与路由切换实现快速回滚,通过渐进暴露与故障隔离压缩爆炸半径。
TEC-J-01Kubernetes 部署编排技术实践 technology进阶Kubernetes 是容器编排平台,其 Deployment 控制器以声明式方式管理无状态工作负载的创建、扩缩与更新,默认采用滚动更新策略,并通过保留历史 ReplicaSet 支持版本回退。
TEC-J-02不可变基础设施实现技术实践 technology进阶不可变基础设施实现指部署后的实例不再被就地修改,任何变更都通过从受测基础镜像重建新实例并替换旧实例来完成,从而消除运行期配置漂移。
TEC-J-03蓝绿部署技术实践 technology进阶蓝绿部署维护两套尽可能相同、均可承担全量负载的生产环境,任一时刻仅一套承载流量;新版本在另一套环境验证通过后整体切换流量,异常时切回原环境实现快速回滚。
TEC-J-04金丝雀发布技术实践 technology高级金丝雀发布先把新版本部署到不接用户或仅接少量用户的基础设施上,再按健康指标逐步放大流量与用户比例直至全量,从而把新版本故障的爆炸半径限制在受影响的小范围内。
TEC-J-05部署自动化技术实践 technology进阶部署自动化把从构建产物到各环境的部署过程脚本化、参数化并纳入版本控制,使任何持有凭据者都能把任意已构建制品一致地部署到任意环境,且过程尽量幂等、可重复。
TEC-J-06部署流水线工具化技术实践 technology基础部署流水线把从提交到生产的构建过程拆分为多个置信度递增的自动化阶段,前一阶段产出的制品供后续阶段逐级晋级,生产部署通常是流水线的最后一个阶段。

§3组内关系图

域·部署 组内关系图前置依赖(prerequisite):三阶段分离是环境一致性的前提前置依赖(prerequisite):运行阶段无变更入口是基础设施不可变的基础促成(enables):不可变与可追溯制品使部署成为受控变更依据推导(derives_from):部署流水线依据构建发布运行分离依据推导(derives_from):封闭构建依据构建阶段的可复现要求依据推导(derives_from):配置外置服务于开发生产一致性依据推导(derives_from):渐进暴露依据部署即变更管理依据推导(derives_from):可回滚与爆炸半径控制依据变更管理细化(refines):部署流水线是发布工程的落地机制细化(refines):封闭构建是发布工程的核心实践依赖关联(dependency):渐进暴露依赖发布与部署解耦促成(enables):渐进暴露策略支撑爆炸半径控制前置依赖(prerequisite):配置外置是流水线逐环境提升同一制品的前提实现(implements):K8s 滚动更新实现渐进暴露实现(implements):历史 ReplicaSet 支撑版本回退实现(implements):镜像构建一次并不可变复用实现(implements):以实例替换替代就地修改实现(implements):双环境整体切换的渐进暴露实现(implements):切回旧环境实现即时回滚实现(implements):按健康指标逐步扩大流量暴露实现(implements):reroute 回退控制爆炸半径实现(implements):部署步骤脚本化与自动执行实现(implements):可复现部署支撑发布工程实现(implements):多阶段制品晋级即部署流水线实现(implements):构建一次逐环境晋级解耦发布部署促成(enables):不可变制品使整体切换可行促成(enables):流水线为部署自动化提供载体对照(contrasts):整体切换与逐步导流的取舍对照组合(combination):编排层承载金丝雀流量切分组合(combination):编排层支撑蓝绿双环境编排组合(combination):流水线产出不可变制品组合(combination):自动化与流水线配套落地渐进暴露部署策略渐进暴露部署策略(MTH-J-05)构建发布运行分离构建发布运行分离(ESS-J-01)开发生产一致性开发生产一致性(ESS-J-02)不可变基础设施不可变基础设施(ESS-J-03)部署即变更管理部署即变更管理(ESS-J-04)部署流水线部署流水线(MTH-J-01)发布工程发布工程(MTH-J-02)封闭构建封闭构建(MTH-J-03)配置外置与显式化配置外置与显式化(MTH-J-04)发布与部署解耦发布与部署解耦(MTH-J-06)可回滚性与爆炸半径控制可回滚性与爆炸半径控制(MTH-J-07)Kubernetes 部…Kubernetes 部署编排(TEC-J-01)不可变基础设施实现不可变基础设施实现(TEC-J-02)蓝绿部署蓝绿部署(TEC-J-03)金丝雀发布金丝雀发布(TEC-J-04)部署自动化部署自动化(TEC-J-05)部署流水线工具化部署流水线工具化(TEC-J-06)
前置依赖实现依据推导案例印证对比冲突
域·部署:组内关系图(全部 17 个成员):内联 17 个节点、32 条组内边,连线按边类型着色(六类配色见下);构建期确定性计算,无运行期脚本。

§4学习路径提示

本组内存在 3 条前置依赖边(prerequisite),推荐先掌握前置知识点,再进入依赖它的节点。