---
title: "软件维护与技术支持"
canonical: https://wavect.io/zh/services/software-maintenance/
language: zh
description: "让生产环境中的软件保持更新、及时打补丁并修复缺陷。Wavect 按明确范围维护约定系统，响应时间以合同约定为准。"
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

软件维护

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

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

合作范围

## 范围明确。需求可见。每项变更都有记录。

1. **约定范围** 系统、环境、需求渠道、服务时间和边界。
2. **按节奏维护** 更新、补丁、修复和小改动，测试后发布。
3. **汇报与决策** 改了什么，还有什么未解决，哪些需要你来决定。

服务概要

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

适合这些情况

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

其他服务可能更合适

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

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

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

## 日常维护包含哪些工作

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

版本更新与安全补丁

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

缺陷修复

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

小幅改进

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

监控维护

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

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

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

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

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

## 入场、维护、复盘

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

1. **入场检查** - 我们在约定环境中完整构建、测试并发布一次系统。你将获得版本清单、已知风险和维护范围建议。
2. **持续维护** - 按月签订的协议，覆盖约定的系统、服务时间、需求渠道和合同约定的响应目标。
3. **定期复盘** - 回顾完成了什么、哪些部分老化、哪些问题反复出现。反复出现的结构性问题会成为单独的现代化或安全决策。

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

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

// 实证

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

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

### [IKB](/zh/case-studies/ikb/)
- **状态:** 上线
- **成果:** 完整 - 平台交接
- **概要:** 因斯布鲁克的智慧城市物联网：扩展并扩容 LoRaWAN 基础设施，评估并集成多厂商设备，编写按设备的编解码器。与 IKB 自己的团队并肩。
- **技术栈:** Kubernetes, LoRaWAN, Docker

### [MyMerch](/zh/case-studies/mymerch/)
- **状态:** 上线
- **成果:** ~50% - MyMerch 团队的效率提升
- **概要:** MyMerch 团队认为效率提升约 50%。交付错误减少，Shopify 转化率提升，无需重写。
- **技术栈:** Shopify, Shopify Liquid, JavaScript

### [Polity](/zh/case-studies/polity/)
- **状态:** 上线
- **成果:** 7个服务 - 统一测试
- **概要:** 1.5 年在七个服务和多个供应商上拥有 QA。每一次重构后质量都依然可发布。
- **技术栈:** React, Java/Kotlin, Go

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

## 开始前的常见问题

### 你们提供全天候支持或可用性 SLA 吗？

不提供。我们不提供全天候值守，也不提供可用性 SLA。服务时间、严重程度分级和响应目标在合同中约定，并在该时间范围内适用。

### 你们承诺怎样的响应时间？

以合同写明的为准。响应时间取决于严重程度分级和约定的服务时间，我们会在入场检查之后、了解系统之后再确定。

### 别人开发的软件，你们也能维护吗？

能，前提是它可以被构建和发布，这一点由入场检查确认。如果原供应商即将离开，需要先收回访问权限或交接知识，那属于 [软件接管](/zh/services/software-takeover/) 。

### 维护和新开发的边界在哪里？

小幅改进包含在约定的月度额度内。较大的功能单独报价，或作为 [软件开发](/zh/services/software-development/) 项目处理，避免日常维护悄悄变成没有边界的开发项目。

### 维护如何计费？

按约定范围签订月度协议。范围之外的工作在开始前报价。入场检查之前我们不报价格，因为成本取决于系统本身。

## 选择下一步

- [从其他供应商接手](/zh/services/software-takeover/)
- [改变系统架构](/zh/services/legacy-modernization/)
- [保障构建与发布流程](/zh/services/devsecops/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/zh/services/software-maintenance/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "现代化与运维支持",
      "dateModified": "2026-10-30",
      "description": "让生产环境中的软件保持更新、及时打补丁并修复缺陷。Wavect 按明确范围维护约定系统，响应时间以合同约定为准。",
      "name": "软件维护与技术支持",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "软件维护",
      "url": "https://wavect.io/zh/services/software-maintenance/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/",
          "name": "首页",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/overview/",
          "name": "服务",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/overview/#lifecycle",
          "name": "现代化与运维支持",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/software-maintenance/",
          "name": "软件维护",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/zh/services/software-maintenance/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-30",
      "description": "让生产环境中的软件保持更新、及时打补丁并修复缺陷。Wavect 按明确范围维护约定系统，响应时间以合同约定为准。",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/zh/services/software-maintenance/#service"
      },
      "name": "软件维护与技术支持",
      "url": "https://wavect.io/zh/services/software-maintenance/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "不提供。我们不提供全天候值守，也不提供可用性 SLA。服务时间、严重程度分级和响应目标在合同中约定，并在该时间范围内适用。"
      },
      "name": "你们提供全天候支持或可用性 SLA 吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "以合同写明的为准。响应时间取决于严重程度分级和约定的服务时间，我们会在入场检查之后、了解系统之后再确定。"
      },
      "name": "你们承诺怎样的响应时间？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "能，前提是它可以被构建和发布，这一点由入场检查确认。如果原供应商即将离开，需要先收回访问权限或交接知识，那属于软件接管。"
      },
      "name": "别人开发的软件，你们也能维护吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "小幅改进包含在约定的月度额度内。较大的功能单独报价，或作为软件开发项目处理，避免日常维护悄悄变成没有边界的开发项目。"
      },
      "name": "维护和新开发的边界在哪里？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "按约定范围签订月度协议。范围之外的工作在开始前报价。入场检查之前我们不报价格，因为成本取决于系统本身。"
      },
      "name": "维护如何计费？"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
