从 TFS 2017 升级到 Azure DevOps - build/release 管道

Upgrade from TFS 2017 to Azure DevOps - build/release pipeline

我公司正在考虑将我们的本地 TFS 2017 更新 3 升级到最新的 Azure DevOps Server(尤其是本地版本)。

在讨论这种可能性时,一位主要利益相关者声称,如果升级,所有构建和发布管道都必须从头开始重建。我们在 TFS 2017 中有大量的构建和发布定义。

我已经在 Microsoft 文档中寻找关于究竟升级了什么的答案,但不幸的是,我无法获得能够证明或反驳上述说法的详细程度。如果这是真的,从表面上看,这似乎是一个可怕的升级故事。但我也明白设计和架构的变化和升级并不总是可能的。

有人可以告诉我构建和发布管道是否可以在升级后或多或少地毫发无损地生存下来吗?在我们努力做出决定时,知道这将是一个有价值的数据点。

提前致谢!

我希望 vNext 构建定义和发布管道会得到很好的提升和转变。根据您定义的任务,它们可能不再受支持或可能有新版本。 UI 会让您知道有新版本可用。

许多新的重点是构建 YAML 构建定义的功能。如果你想利用这些,你必须做更多的返工,将这些 vNext 任务转换成 YAML。但转换并不是一个硬性要求。

您提到您没有使用 XAML 构建定义,但如果您碰巧使用了它们,我想这就是大量返工的地方。在过去,我可以说,如果你必须这样做,那是一种痛苦。

all of your build and release pipelines would have to be rebuilt from scratch.

我已经测试过了,升级后不会丢失任何数据。我们应该使用计划备份来确保我们始终有备份,以防出现问题。

我们可以先用那个新硬件干运行,然后我们会把所有东西都擦干净,然后再用它进行生产升级。

对于我们的干运行,我们升级的步骤是:

  1. 将最近的数据库备份复制到我们的新 SQL 实例。
  2. 在我们的新应用程序层上安装 TFS 2015。
  3. 使用计划备份恢复数据库备份。
  4. 运行 通过升级向导,确保使用在我们的生产环境中没有任何权限的服务帐户。有关详细信息,请参阅 pre-production 文档中的保护干燥 运行 中的生产。
  5. 可选择配置需要更改现有项目的新功能。

生产升级步骤将非常相似。步骤将是:

  1. 使用 TFSServiceControl's quiesce command 使生产服务器脱机。这里的目标是确保我们用于迁移到新硬件的备份是完整的,并且我们不会丢失任何用户数据。
  2. 对每个数据库进行新备份。
  3. 将备份复制到我们的新 SQL 实例。
  4. 在我们的新应用程序层上安装 TFS 2015。
  5. 使用计划备份向导还原数据库备份。
  6. 运行 通过升级向导,使用我们所需的生产服务帐户。
  7. 可选择配置需要更改现有项目的新功能。

您可以参考这篇doc了解更多详情。