软件维护

为你正在运行的系统提供软件维护。

生产环境中的软件不会自己保持健康。依赖会老化,安全补丁会发布,缺陷会冒出来,小需求会越积越多。我们先约定维护什么、需求如何提交、多快响应,然后按约定执行,每项变更都有可核查的记录。

服务概要

软件维护是对生产环境软件的持续照料:版本更新、依赖与安全补丁、缺陷修复、小幅改进和监控维护。范围、服务时间和响应时间以合同约定为准,不包含全天候值守或可用性 SLA。

适合这些情况

  • 可以正常构建和发布、需要可靠维护方的生产系统
  • 开发人员已转向新工作、希望把日常维护交出去的团队

其他服务可能更合适

  • 需要先收回访问权限和交接知识的供应商更换
  • 全天候值守运维,或合同约定的可用性保证

从一个可以维护的系统开始

维护的前提是我们能够构建、测试和发布该系统。如果问题出在访问权限、文档或原供应商,应先进行软件接管;其中的交接、恢复和依赖升级方案保留各自的范围和条款。如果入场检查发现系统无法安全发布,我们会在约定维护范围之前直接说明。替换框架或拆分单体这类结构性改动,属于遗留系统现代化。

日常维护包含哪些工作

合同会列出覆盖的系统和环境。清单之外的工作在开始前单独报价。

版本更新与安全补丁

让运行时、框架和库保持在受支持的版本。按约定的优先级评估并处理安全公告。

缺陷修复

复现、修复、测试并发布由你的团队报告、或在日志和错误追踪中发现的缺陷。

小幅改进

在约定的月度额度内完成小改动。更大的需求在开始前单独报价。

监控维护

让错误追踪、日志、证书和告警保持有用。告警在约定时间内发送给指定负责人。

响应时间以约定为准,不靠默认

合同会写明覆盖的系统、需求渠道、服务时间、严重程度分级以及每一级的响应目标。这些目标在约定的服务时间内适用。我们不提供全天候值守,也不提供可用性 SLA,维护合同不会因此产生这类承诺。运行环境的加固属于云安全服务,构建和发布流程中的控制属于 DevSecOps 服务。信任中心说明我们一般的支持边界。

示例记录:一个月的维护工作

一份示例月报会列出已应用和已推迟的依赖更新(附原因)、已检查的安全公告、已修复的缺陷及包含该修复的发布版本、按约定额度交付的小改动、未结事项,以及需要你做出的决定。这是示例格式,不是客户成果,也不是服务水平承诺。

入场、维护、复盘

入场检查单独确定范围和报价。维护合同根据检查结果制定。
  1. 入场检查

    我们在约定环境中完整构建、测试并发布一次系统。你将获得版本清单、已知风险和维护范围建议。
  2. 持续维护

    按月签订的协议,覆盖约定的系统、服务时间、需求渠道和合同约定的响应目标。
  3. 定期复盘

    回顾完成了什么、哪些部分老化、哪些问题反复出现。反复出现的结构性问题会成为单独的现代化或安全决策。

准备访问权限、版本清单和报告问题的人

我们需要代码仓库、CI 和托管环境的访问权限、当前版本清单、已知问题、错误追踪、负责报告问题的人员,以及有权批准发布的人。较大的新功能属于软件开发。预算规划可参考软件维护成本指南,其中说明常见的成本因素;该模型不是报价,也不构成支持承诺。
// 实证

现有工程项目中的持续维护实践

IKB:Wavect 在 IKB 的智慧城市项目内部参与基础设施和设备方面的工程工作,把平台完整移交给 IKB 内部团队,之后继续作为外部支持,负责新设备集成、Grafana 监控栈、现场连接和与厂商的沟通。MyMerch 案例记录了一段多年合作:对一个运行良好的 Shopify 业务做定点改进,不重写。Polity 案例记录了长期负责多个服务的 QA,包括减少不稳定测试和缺陷分诊。这些案例都没有记录全天候值守或可用性承诺。

这些是精选项目,并非我们的全部作品。自 2018 年以来我们已交付 100+ 款产品。

开始前的常见问题

不提供。我们不提供全天候值守,也不提供可用性 SLA。服务时间、严重程度分级和响应目标在合同中约定,并在该时间范围内适用。
以合同写明的为准。响应时间取决于严重程度分级和约定的服务时间,我们会在入场检查之后、了解系统之后再确定。
能,前提是它可以被构建和发布,这一点由入场检查确认。如果原供应商即将离开,需要先收回访问权限或交接知识,那属于软件接管。
小幅改进包含在约定的月度额度内。较大的功能单独报价,或作为软件开发项目处理,避免日常维护悄悄变成没有边界的开发项目。
按约定范围签订月度协议。范围之外的工作在开始前报价。入场检查之前我们不报价格,因为成本取决于系统本身。

确定维护合同范围

请说明系统、技术栈、目前由谁维护,以及哪些事情总是被拖延。首次咨询请勿提交凭据或机密数据。