在预生产环境中试运行升级

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

我需要打扰吗?

强烈建议在预生产环境中试运行升级,但并非总是有意义的。 如果正在讨论是否执行预生产升级,请权衡这样做的成本与不这样做的成本。 特别是,如果生产升级出现问题,主要成本将是回滚到旧版本的 TFS 时涉及的停机时间。 根据升级的具体细节,这可能是一个快速而直接的过程,或者可能需要很长时间并涉及大量移动部件。 与升级一样,回滚的复杂性将取决于数据库大小、所涉及的计算机数等。

基础知识

如果决定继续进行预生产升级,一般过程包括:

  1. 建立类似于生产环境的预生产环境。
  2. 保护生产环境。
  3. 从备份还原数据库。
  4. 执行升级。

建立环境

在理想情况下,预生产环境看起来与生产环境完全相同,这样一来,你可以尽可能准确地了解升级所需的时间、过程中是否会遇到任何问题等。然而,在现实世界中,这并不总是可能或可取的。 为预生产测试预配第二组相同的计算机的成本可能过高。 但是,不要让这些差异劝阻你 - 几乎任何预生产环境都比什么都好。

保护生产

TFS 数据库包含许多设置,这些设置指向其部署环境中的各种资源。 例如,集合数据库连接字符串存储在配置数据库中,计划备份功能所使用的网络共享也存储在配置数据库中。 因此,预生产环境可能会导致生产环境中出现问题,最好是建立预生产环境来采取措施来防止这种情况。

最重要的步骤是在预生产环境中使用对生产环境没有任何权限的服务帐户。 理想情况下,它不应在 TFS、SQL、网络共享等中具有任何权限。此处的选项包括网络服务 (假设预生产计算机帐户不需要生产) 或专用预生产域帐户的权限,如以下示例所示。

预生产服务帐户示例

另一个可选步骤是将条目添加到预生产计算机 () 的主机文件,以将生产计算机名称映射到无效的 IP 地址。 如果不确定主机文件是什么,请参阅 此处 的维基百科条目。 这可以防止从预生产计算机到生产计算机的出站通信。

AT 和 DT 的示例主机文件重定向

还原数据库

如果使用 计划备份向导 从生产部署生成数据库备份,还可以使用它还原预生产部署上的备份。 如果没有,当然也可以按照标准 SQL 过程还原备份。 要备份和还原的数据库列表应始终包含配置数据库和所有集合数据库。 如果预生产环境将包含报告功能,则还应包括仓库数据库和报表服务器数据库。

执行升级

在应用层计算机上安装新版本的 TFS。 在运行升级向导之前,请运行 ChangeServerId 命令。 这将确保从同一客户端访问生产和预生产环境时不会遇到问题,并且应在克隆集合或完整部署时执行。

准备就绪后,使用与升级生产相同的步骤升级预生产环境。 请确保记得使用在生产环境中没有权限的服务帐户。

配置新功能

某些升级引入了新功能,这些功能需要执行其他配置步骤,因为它们涉及对现有项目的流程更改。 根据项目的详细信息和要从中升级的 TFS 版本,这可能或多或少复杂。 请参阅此处了解详细信息。

尝试一下

将预生产服务器拿出来旋转一下! 戳一下,尝试一些新功能...请注意,某些操作(如运行生成)需要一些额外的配置。

如果发现任何问题,请尝试在此处解决这些问题,以避免在生产环境中再次遇到这些问题。 如果满意,请调用它一天,然后继续生产升级。