Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019
我需要费心吗?
强烈建议在预生产环境中执行升级的试运行,但并不总是有意义的。 如果您正在考虑是否进行预生产升级,请将进行升级的成本与不进行升级的成本进行比较。 具体而言,如果生产升级出现问题,则主要成本将是回滚到旧版 TFS 时所涉及的停机时间。 根据升级的具体细节,这可能是一个快速而简单的过程,或者可能需要很长时间,并涉及大量的移动部件。 与升级一样,回滚的复杂性取决于数据库大小、涉及的计算机数等。
基础知识
如果决定继续进行预生产升级,常规过程包括:
- 建立类似于生产环境的预生产环境。
- 保护生产环境。
- 从备份中还原数据库。
- 进行升级。
搭建环境
在理想世界中,预生产环境看起来与生产环境完全一样-这样,你就能尽可能准确地了解升级需要多长时间,以及你是否会在一路上遇到任何问题等。然而,在现实世界中,这并不总是可能的或可取的。 为预生产测试准备第二组相同设备的成本可能会非常高昂。 但是,不要让这些差异劝阻你, 几乎任何预生产环境都比什么都好。
保护生产
TFS 数据库包含许多设置,这些设置指向其部署环境中的各种资源。 例如,集合数据库连接字符串存储在配置数据库中,就像计划备份功能使用的网络共享一样。 因此,预生产环境可能会导致生产环境中出现问题,在建立预生产环境以采取措施防止这种情况时,最佳做法是这样做。
可以采取的最重要步骤是在预生产环境中使用服务帐户,该帐户对生产环境没有任何权限。 理想情况下,它不应在 TFS、SQL、网络共享等中拥有任何权限。此处的选项包括网络服务(假设预生产计算机帐户不需要生产中的权限)或专用预生产域帐户,如以下示例所示。
另一个可选步骤是将条目项添加到预生产计算机的 hosts 文件中,以便将生产计算机的名称映射到无效的 IP 地址。 如果不确定主机文件是什么,请参阅 此处 的维基百科条目。 这可以防止从预生产计算机与生产计算机的出站通信。
还原数据库
如果使用 计划备份向导 从生产部署生成数据库备份,还可以使用它在预生产部署上还原备份。 否则,当然也可以遵循标准 SQL 过程还原备份。 要备份和还原的数据库列表应始终包括配置数据库和所有集合数据库。 如果预生产环境将包括报告功能,则还应包括仓库和报表服务器数据库。
执行升级
在应用程序层计算机上安装新版本的 TFS。 在运行升级向导之前,请运行 ChangeServerId 命令。 这将确保在从同一客户端访问生产环境和预生产环境时不会遇到问题,并且应在克隆集合或完整部署时完成。
准备就绪后,使用与升级生产相同的步骤升级预生产环境。 请务必记住使用一个在生产环境中没有任何权限的服务帐户。
配置新功能
某些升级引入了采取其他步骤配置的新功能,因为它们涉及对现有项目的流程更改。 根据项目的详细信息和要从中升级的 TFS 版本,复杂性可能会有所不同。 有关详细信息,请参阅 此处 。
尝试体验
可以试用一下预生产服务器! 稍微看看,尝试一些新功能……请注意,某些内容(如运行构建)需要额外的配置。
如果发现任何问题,请尝试在此处解决这些问题,以避免在生产环境中再次遇到这些问题。 满意后,结束当天的工作,继续进行生产升级。