中国企业软件开发 · 也接出海项目个人开发者直接沟通 · 可先签 NDA
增长实验室 / 软件开发后期维护怎么做?SLA、监控与费用约定

软件运维与交付

软件开发后期维护怎么做?SLA、监控与费用约定

发布于 2026-10-02 · 约 11 分钟阅读 · Zenleak 独立开发者

软件上线不是项目结束。本文区分质保、日常运维和新增需求,给出 SLA 分级、监控指标、备份恢复、发布回滚、故障复盘与维护费用的可执行约定。

直接答案:上线前就把质保、日常运维和新增需求拆开约定,再为每类问题定义发现方式、响应时间、临时措施、修复目标和验收证据。系统上线后至少要有可用性与错误监控、备份恢复演练、权限和日志检查、发布回滚步骤,以及一份能说明问题和费用的运维记录。只写“提供售后服务”而不写边界,发生故障时双方仍然不知道谁在什么时候做什么。

软件维护不是把开发者的联系方式留到项目结束。上线后业务规则会变化,第三方接口会升级,证书会过期,数据量会增长,用户也会遇到验收时没有覆盖的异常。维护方案要让这些变化可以被发现、分级、处理和复盘,而不是靠某个人临时记得。

一、先区分三种工作,避免把新增需求当故障

1. 质保:修复与已确认范围不一致的缺陷

质保处理的是系统没有按已确认的需求、原型或验收标准工作。例如已约定普通销售只能看到自己的客户,但上线后能看到其他部门数据;已约定支付成功后生成一笔订单,但回调重试造成两笔订单。这类问题的判断依据应是范围版本、测试记录和验收结论,而不是“用户觉得不好用”。

质保期、覆盖环境、响应方式和不包含的第三方故障要写清。浏览器升级、云厂商故障、客户自行改动生产配置,是否属于原缺陷,需要结合变更记录判断。

2. 运维:保持已上线系统可以持续运行

运维包括监控、告警、备份、恢复演练、证书和依赖检查、日志保留、权限回收、版本发布以及日常问题处理。它不一定改变业务规则,却直接影响系统能不能继续使用。运维可以由开发方、客户内部人员或双方共同承担,关键是指定实际操作者和交接证据。

3. 迭代:增加或改变业务范围

新增一个端、改变审批规则、增加报表维度、接入新平台、迁移更多历史数据,通常属于迭代或变更。它们需要重新评估页面、数据、接口、测试、部署和培训的影响,不能因为客户已经购买了系统,就默认包含在维护费里。

二、用一张 SLA 表把响应和修复写清

SLA 不是越短越专业。响应时间、临时措施和修复目标要与系统重要性、服务时间、团队规模和客户能提供的配合条件匹配。下面是一份可调整的示例,具体承诺应以合同、运行时间和实际资源为准:

等级典型影响首次响应示例临时措施或修复目标示例
P1 紧急核心业务全面不可用、越权、数据疑似丢失或重复扣款服务时间内 30 分钟内确认先止损或恢复关键路径,再约定正式修复窗口
P2 重要重要流程受阻,有替代办法但影响多个用户4 个工作小时内确认在约定工作日内提供方案或修复版本
P3 一般文案、显示、报表或低频功能问题,不阻断业务1 个工作日内确认纳入计划版本或给出处理结论

表里的“响应”只表示有人确认并开始判断,不等于问题已经修复;“恢复”表示业务暂时可以继续,不等于根因已消除;“修复”还需要测试和发布。三者混在一起,容易出现“回复很快但长期没有解决”的误解。

还应写明服务时间、节假日安排、客户未及时提供资料时如何暂停计时、第三方平台响应如何处理、紧急通道由谁使用,以及问题关闭前是否需要客户复测。对于支付、医疗、生产制造等高影响系统,最好把恢复目标、允许的数据差异和升级联系人单独写成运行手册。

三、监控要围绕用户结果,而不是只看服务器还活着

“进程在线”只能说明应用没有退出,不能证明用户能完成业务。至少从四层建立检查。

入口与可用性

定时请求首页、登录页、关键 API 或健康检查地址,记录状态码、响应时间、TLS 证书有效期和 DNS 解析。检查点最好分布在实际用户所在的网络区域,但不要用过高频率的探测制造额外流量。

应用与任务

记录 5xx 错误率、接口延迟、超时、队列长度、定时任务最后成功时间、第三方回调失败、重复任务和失败重试次数。一个订单系统即使页面返回 200,如果支付回调任务连续失败,业务仍然是不完整的。

数据与容量

关注数据库连接池、磁盘、内存、慢查询、表增长、附件存储、备份大小和备份完成时间。指标要有趋势和阈值,不能等磁盘写满后才发现增长速度已经持续数周异常。

业务结果

为关键流程设少量可验证的业务检查,例如测试订单是否能进入正确状态、审批任务是否在规定时间内流转、库存同步是否有未处理差异。业务探针要使用隔离的测试数据和账号,避免把监控动作混入真实经营数据。

每个告警都应有负责人、通知渠道、等级、抑制规则和升级路径。没有处理人的告警只是噪声;同一个故障每分钟通知一次,也不能代替一次清晰的故障记录。

四、备份的重点是恢复成功,不是文件存在

备份策略至少回答四个问题:备份什么、多久一次、保存在哪里、多久能恢复。数据库、上传附件、配置、部署脚本和必要的密钥清单不能只备份其中一个;如果只保存数据库而丢了附件,业务记录仍然可能无法使用。

建议为每类数据记录备份频率、保留周期、加密方式、备份账号、保存位置、恢复依赖和核对负责人。备份账号与生产账号应尽量分离,备份文件要限制访问,恢复所需的版本、依赖和环境变量要有受控的交接材料。

定期恢复演练比“备份任务成功”更能说明可用性。演练时要记录备份时间点、恢复耗时、失败文件、抽样数据、权限和后续修复。恢复目标可以用 RPO 和 RTO 描述:RPO 说明最多能接受丢失多长时间的数据,RTO 说明从故障开始到恢复服务希望控制在多长时间内。它们不是默认标准,需要按业务价值、成本和合同范围确认。

如果系统支持发布回滚,要同时准备数据库变更的处理方案。代码可以回到旧版本,但数据库结构或已经写入的新数据未必能直接回退。发布前应记录版本、迁移脚本、备份点、停止条件和回滚负责人,并在测试环境验证一次。

五、权限、日志和变更记录是维护的一部分

维护期间最容易被忽略的是“谁可以做什么”。至少应定期检查管理员、部署、数据库、云平台和第三方账号,撤销离职人员权限,轮换长期密钥,避免多人共用无法追溯的账号。生产操作尽量使用最小权限,并保留审批或工单记录。

日志要能回答谁在什么时间对哪条业务做了什么操作、结果如何。应用日志不应写入密码、完整身份证号、支付凭证或不必要的个人信息;保留周期也要结合排障、审计和隐私要求确认。日志不是越多越好,无法检索和没有责任人的日志只会增加保存成本。

所有生产变更都应有版本号、变更原因、执行人、开始和结束时间、影响范围、验证步骤和回滚方式。紧急变更可以先止损,但事后仍要补记录和复盘,不能让“紧急”变成绕过审查的常态。

六、维护费用怎样约定才有可比性

维护费用没有统一市场价,先明确服务内容再比较金额。常见的计价方式有三种。

  1. 按月或按年固定服务费:适合需要持续监控、备份检查、版本发布和固定响应窗口的系统。要写清服务时间、工单或工作量上限、报告频率和超出后的计价方式。
  2. 按次或按人日计费:适合维护需求不稳定、客户有自己的运维人员,或只需要偶尔升级和排障的项目。需要写明最小计费单位、远程与现场差异、交通和第三方费用。
  3. 基础服务加专项迭代:基础部分覆盖监控、备份和缺陷处理,新增模块、接口、数据迁移和较大版本另行评估。适合边界变化较多、但仍需要基本运行保障的系统。

比较报价时,把服务时间、P1/P2/P3 响应、监控项目、备份与恢复演练、发布次数、质保范围、第三方费用、现场支持、报告和退出交接放在同一张表里。不要只比较“每年维护多少钱”,因为一份报价可能只包含远程答疑,另一份包含值守、备份、发布和恢复演练。

费用之外还要约定系统退出。停止维护或更换服务方时,客户应能拿到约定范围内的源码、部署文档、数据库和附件导出、备份说明、账号清单、未关闭问题和许可证信息。交接时间、格式、访问权限和数据删除责任都应写清,避免到了终止阶段才发现系统无法接管。

七、不同业务的维护重点不一样

制造业

生产、质量、设备或仓储系统要特别关注设备接口、批次追溯、离线补传、库存差异和班次切换。维护窗口通常要避开生产高峰,升级后用真实业务的脱敏样例核对报工、入库和追溯链路。

零售与电商

重点是支付回调、库存并发、促销规则、订单拆分、退款和物流状态。支付成功但订单未生成、库存扣减与退款不一致等问题应有单独告警和对账任务,不能只看网页是否打开。

教育培训

排课、签到、消课、续费和通知通常涉及时间边界与角色权限。学期切换、教师调班、补课和退费要进入回归测试,通知失败要能重试并保留处理结果。

医疗服务

预约、排班、服务记录和隐私权限需要更谨慎。维护人员只能访问完成排障所需的数据,测试环境使用脱敏数据,日志和备份的访问范围、保留周期及删除方式要按实际适用要求确认。

出海与跨境业务

多语言、多币种、时区、海外支付、区域部署和第三方服务可用性会增加维护面。发布前要确认日期和金额显示、支付回调、税费或退款规则、区域网络以及不同市场的隐私和数据处理边界。

八、每月留一份能复查的运维报告

月报不需要堆满图表,但至少要回答:本月发生了什么、哪些指标异常、哪些问题已关闭、哪些风险仍存在、下月准备做什么。可以包含可用性、错误率、延迟和关键任务成功率趋势;备份执行与恢复抽样结果;发布、回滚、权限变更和密钥轮换记录;P1/P2/P3 工单数量、响应和关闭情况;第三方接口失败、数据对账和未处理队列;下月维护窗口、风险、依赖和需要客户决策的事项。

报告的作用不是证明所有数字都很好,而是让双方知道哪些事实已验证、哪些问题还没有解决。对于长期合作,它也是调整维护范围、预算和优先级的依据。

上线后维护清单

  • 已书面区分质保、运维和新增需求。
  • P1/P2/P3 的影响定义、响应、临时措施和关闭条件已确认。
  • 关键入口、应用错误、任务、容量和业务结果都有对应监控。
  • 告警负责人、通知渠道、升级路径和抑制规则已设置。
  • 数据库、附件、配置和部署材料有备份,且完成过恢复演练。
  • 发布版本、数据库变更和回滚步骤可以被复查。
  • 管理员、部署、云平台和第三方账号完成权限检查。
  • 日志减少敏感信息,并能定位关键操作和失败原因。
  • 维护费用、第三方成本、现场支持和超出范围的计价方式已写清。
  • 更换服务方或停止维护时,数据、代码、文档和账号可以按约定交接。

如果需要先确定首期系统的交付和维护边界,可以结合软件定制开发交付物清单、软件开发报价拆解和旧系统数据迁移方案一起评审。需求还没有稳定时,先看软件定制开发需求分析清单,不要在范围不清时直接承诺固定维护结果。

FAQ

软件上线后一定要长期找原开发方维护吗?

不一定。原开发方通常更熟悉代码和上下文,但客户也可以由内部团队或新的服务方接管。关键是源码、部署、数据、监控、备份、账号和未关闭问题能够完整交接,并有一段可验证的接管期。

维护费是不是已经包含所有改动?

通常不是。缺陷修复、运行保障和新增功能的工作性质不同。合同应分别列出包含项、工作量上限、响应范围和新增需求的评估流程,不能只用“免费维护”四个字概括。

监控应该从哪些指标开始?

先从用户结果出发:关键页面和接口可用性、5xx、延迟、失败任务、第三方回调、数据库与磁盘容量,再补充与业务直接相关的对账或状态检查。指标太多但没有阈值和负责人,效果不如一组能触发动作的少量检查。

有备份文件就代表可以恢复吗?

不代表。需要在隔离环境实际恢复,核对记录、附件、权限和关键流程,并记录耗时和失败项。数据库、附件、配置或密钥材料缺一项,都可能让恢复后的系统无法真正运行。

小型项目也需要 SLA 吗?

建议至少写一份简化版。可以只定义服务时间、紧急联系人、重大故障响应、备份责任、第三方故障边界和超出范围的计费方式。项目越小,越不能依赖口头约定,因为人员和预算通常更有限。

软件上线后的稳定性来自可观察、可恢复和可交接的工作,而不是一句“有问题随时联系”。把维护边界、指标、证据和责任写清,客户才能判断服务是否完成,开发方也能按优先级持续改进。

继续阅读

按场景继续查看