跳到主要内容
自媒科技企业 AI · 项目开发与交付
中文ZH
项目询价

企业 AI 项目 Wiki · 环境、版本与上线

部署

也常写作Deployment · 软件部署 · 应用部署 · 上线部署

定义

部署是将一个可识别的软件或系统版本,按照受控步骤安装、配置或更新到指定目标环境,并完成依赖、数据库、权限、启动、健康和记录检查,使该环境达到预期运行状态的过程。一次完整部署必须能够说明输入制品、目标环境、执行步骤、变更结果、验证证据和失败后的停止或恢复方式,而不只是“文件已经上传”。

部署改变的到底是什么

构建产生制品,部署把制品与目标环境结合起来。相同镜像放在不同配置、身份、数据库和网络条件下,会形成不同运行结果,因此部署对象既包括软件,也包括本次需要应用的环境配置和状态变更。

部署完成的标准不是命令返回零,也不是页面能够打开。团队还要确认新实例已经就绪、依赖连接正确、数据库处于预期结构、关键业务冒烟通过、日志和指标正常,并且目标环境记录已经更新。

部署与用户可见性可以分开。新版本可以先部署但不接收流量,也可以通过功能开关隐藏;随后再按发布决定开放给用户。这种分离有助于降低技术安装和业务开放同时发生的风险。

一次部署开始前必须明确的输入和条件

  1. 部署哪个不可变对象?

    指定产品与组件版本、构建、制品位置和摘要,不用分支、工作目录或可移动 `latest` 标签充当正式输入。

    输入:发布清单、制品签名或摘要。

  2. 部署到哪个目标?

    确认环境、账号、区域、集群、命名空间、主机或槽位,以及目标身份和环境保护,不依赖操作者手选相似名称。

    输入:目标 ID、环境清单和流水线绑定。

  3. 同时改变哪些状态?

    列出配置、秘密引用、证书、数据库迁移、缓存、消息、定时任务、功能开关和外部端点变化。

    输入:变更集和前后状态说明。

  4. 满足哪些前置门禁?

    要求前置测试、制品扫描、审批、维护窗口、备份或恢复点、容量和依赖可用性达到约定条件。

    输入:门禁结果、批准人和执行窗口。

  5. 怎样判定成功?

    预先定义技术健康、关键业务冒烟、数据校验、性能趋势、错误率、告警和观察时间,而不是部署后再决定。

    输入:验证步骤、阈值和证据位置。

  6. 何时停止或恢复?

    明确迁移失败、健康探针失败、错误激增、数据异常和外部依赖故障的停止点,以及自动回退、向前修复或恢复备份的负责人。

    输入:停止条件、恢复方案和联系人。

一次受控部署怎样执行

  1. 锁定变更窗口和目标

    核对授权、目标环境、当前版本、并发变更和负责人,防止两次部署或人工修改相互覆盖。

  2. 取得并校验制品

    从受信仓库按摘要取得已构建制品,校验签名、来源、依赖和扫描结果,不在目标环境重新编译。

  3. 保存当前状态

    记录当前应用、配置、数据库、流量、实例和健康状态;按风险创建备份、快照或旧环境保留点。

  4. 应用基础设施和配置

    通过基础设施代码和配置管理创建或调整资源、身份、网络、秘密引用和运行参数,避免无记录的现场修补。

  5. 执行兼容的数据变更

    按顺序运行结构与数据迁移,控制锁、批量大小和超时;不可逆变更前再次检查停止条件和恢复路径。

  6. 部署并启动应用

    按选择的原地、滚动、蓝绿或分批策略更新实例,完成预热、启动、就绪和存活检查。

  7. 验证运行与业务

    执行自动验证和关键冒烟,检查日志、指标、调用链、队列、数据库和外部接口,并在观察窗口内比较基线。

  8. 确认、记录或恢复

    满足完成条件后记录部署成功和当前状态;不满足则停止扩大影响并按预案回退、切流、修复或恢复。

常见部署策略怎样选择

策略适用方式与主要代价
原地部署在现有实例上直接更新,资源和流程简单,但失败可能造成停机,旧状态容易被覆盖,恢复通常需要重新部署或还原。
重建部署停止旧实例后创建新实例,状态清楚,适合可容忍中断的非关键环境;服务容量会在切换期间下降或中断。
滚动部署分批替换实例并保持部分容量在线,资源增量较小;新旧版本需短期兼容,观察和停止批次很重要。
蓝绿部署在独立新环境部署验证后切换流量,能快速切回旧环境;需要额外资源,并要处理数据库、会话和异步任务的双环境一致性。
金丝雀或分波部署先让少量实例、区域或请求使用新版本,按指标逐步扩大;需要可靠分流、代表性样本、自动停止和清楚的成功阈值。
影子部署复制真实请求给新版本但不返回其结果;必须阻止新版本产生写入、通知、付费调用或其他真实副作用。

数据库、配置和流量为什么要分别处理

应用回退不等于数据回退

旧应用可能无法读取新结构,数据写入也可能已经发生。迁移优先采用向后兼容的扩展、回填、切换和收缩阶段,并为不可逆步骤单独决策。

配置也是部署对象

同一制品配错端点、权限、功能开关或资源上限就会成为不同系统。配置要版本化、评审、验证和记录,秘密通过受控引用注入。

部署和接流可以解耦

先创建零流量的新实例,完成健康和定向测试后再调整路由;流量切换本身要有阶段、指标、停止与恢复记录。

异步工作需要版本兼容

队列消息、长事务、计划任务和事件消费者可能在切换后继续运行旧代码,消息结构和幂等策略需允许新旧版本短期共存。

健康检查要分层

进程存活、就绪接流、关键依赖、业务写读和端到端检查解决不同问题。一个 `200 OK` 不能证明全部正常。

回退后仍要验证

切回旧实例不代表业务已经恢复;还要核对数据库、消息、缓存、外部动作、错误率和积压,并记录部署期间已经产生的影响。

部署完成后应留下什么记录

  1. 部署身份

    唯一部署 ID、流水线运行、执行人或工作负载身份、批准人、开始结束时间和目标环境。

  2. 输入与变更

    产品和组件版本、构建、制品摘要、配置、数据库迁移、基础设施变更和外部依赖。

  3. 执行轨迹

    每一步状态、日志、重试、人工干预、偏差和使用的部署策略。

  4. 验证证据

    健康探针、冒烟用例、数据校验、关键指标、告警、观察窗口和实际结果。

  5. 流量与功能状态

    新旧版本接收的流量比例、功能开关、定向用户和改变时间。

  6. 最终环境状态

    当前运行版本与摘要、实例、配置、数据库版本、已知问题和下一责任人。

  7. 失败与恢复

    触发条件、影响范围、停止时间、回退或向前修复步骤、恢复验证和后续问题单。

企业 AI 系统部署还要处理什么

模型不是唯一制品

模型、推理代码、运行镜像、系统提示词、过滤策略、知识索引、工具定义和评测配置共同组成部署输入,必须由同一清单关联。

模型部署与端点流量分开

可以先把新模型与推理环境部署到端点并保持零流量,定向调用、镜像真实请求或分配少量流量验证后再扩大。

知识更新有独立生命周期

文档摄取、权限同步、嵌入、索引和缓存更新可能不伴随应用部署。每次知识部署记录批次、增删结果、失败重试、可见权限和回退指针。

提示词与护栏要可原子切换

避免应用已使用新提示词却仍引用旧工具或输出 Schema。相关配置应作为一组部署,或明确兼容顺序和中间状态。

智能体工具先阻断副作用

新部署在零流量、影子或测试阶段使用只读、沙箱、白名单和最低权限凭据,确认参数、批准、幂等、超时和人工接手后再连接正式动作。

观察质量而不只看可用性

除延迟、错误、资源和成本外,跟踪拒答、无依据回答、检索命中、工具失败、人工接手和硬停止事件。

托管模型变化需重新验证

若供应商别名或行为可能无部署动作而变化,记录固定快照或观察版本,并把外部更新纳入监控、重新评测和恢复策略。

部署容易与什么混淆

相关概念与部署的区别
构建构建从源码和依赖生成制品;部署把已有制品应用到目标环境。目标环境不应重新构建正式制品。
发布发布决定把已准备版本提供给哪些用户,并可通过流量、功能开关或渠道逐步开放;部署只负责形成运行状态。
上线上线是业务语境中的投入使用节点,可能同时包含部署、数据切换、用户开放、通知和运行接管。
数据迁移数据迁移改变数据位置、结构或内容,可以是部署步骤,也可以独立执行;其恢复和一致性责任要单独设计。
配置管理配置管理持续识别和控制系统配置;部署在某个时间把批准配置应用到目标并验证结果。
交付交付把约定成果、文档、权限和责任移交给接收方;部署可以是交付一部分,也可能由客户在交付后执行。

依据与适用边界

本文所说的部署,是把指定软件与配套配置变成目标环境中可运行、可验证状态的技术变更过程。它不等同于构建、发布、上线、流量切换、功能开放、数据迁移或交付,尽管一次部署可能包含其中部分步骤。部署可以发生在开发、测试、UAT、预发布或生产;部署到生产也不必立即让所有用户使用新功能。