Forum Discussion

MaWa316's avatar
MaWa316
Copper Contributor
Aug 04, 2023

Upgrading TFS 2017 to DevOps Server 2022

Hi all,

 

We will be upgrading from TFS 2017 to DevOps Server 2022 in the very near future and, from a CI/build perspective, I was just wondering what migration steps might need to be taken.

 

I believe DevOps server moved to infrastructure as code model in that XAML build Definitions have moved to YAML.  I'm guessing there are no utilities to convert the old Build Definition format to the new DevOps Server format.  Or can XAML build definitions continue to be used?

 

Also, is Agent setup basically the same - download the zip and configure from the command line/powershell?

 

Any information of points to it would be greatly appreciated!

 

Thanks in advance!!

  • flowace's avatar
    flowace
    Copper Contributor
    Upgrading from Team Foundation Server (TFS) 2017 to Azure DevOps Server 2022 (previously known as Team Foundation Server) involves a few changes in the CI/CD pipeline setup, as you've mentioned. Here are some steps and considerations for the migration:

    Build Definition Migration:

    You are correct that TFS 2017 used the XAML build definitions, which have been replaced with YAML-based build pipelines in Azure DevOps Server 2022.
    Unfortunately, there isn't a direct utility to automatically convert XAML build definitions to YAML. You will need to manually recreate your build pipelines as YAML definitions.
    However, this is an opportunity to improve and optimize your CI/CD processes, as YAML pipelines offer more flexibility and versioning control.
    Agent Setup:

    The agent setup process is similar in Azure DevOps Server 2022. You'll download the agent package and configure it using the command line or PowerShell, just as you did in TFS 2017.
    Ensure that the agents are compatible with the new version of Azure DevOps Server and are configured to connect to your upgraded instance.
    Infrastructure as Code (IaC):

    If you haven't already embraced infrastructure as code for your pipelines, this could be a great time to do so. YAML pipelines allow you to define your build and release processes as code, enabling better versioning, collaboration, and automated deployment.
    Pipeline Optimization:

    Since you're migrating, take the opportunity to review and optimize your existing build and release processes. Consider streamlining, modularizing, and enhancing your pipelines based on the lessons learned from your XAML build definitions.
    Testing and Validation:

    Before fully migrating, it's crucial to test your pipelines thoroughly in a non-production environment. Make sure your new YAML pipelines are working as expected and producing the desired output.
    Documentation and Training:

    Update your team's documentation and provide any necessary training on the new YAML pipeline setup and any changes in the Azure DevOps Server interface.
    Backup and Rollback Plan:

    Always have a backup of your existing TFS 2017 instance before starting the upgrade. This ensures you can roll back in case of unexpected issues during migration.
    Third-Party Extensions:

    If you were using any third-party extensions in your TFS 2017 setup, check their compatibility with Azure DevOps Server 2022. You may need to update or replace some extensions.
    Remember that while the migration process involves some manual work, the transition to YAML-based pipelines in Azure DevOps Server 2022 can offer more flexibility and control over your CI/CD processes in the long run. It's a good opportunity to modernize and improve your DevOps practices. If you encounter specific challenges during the migration, Microsoft's official documentation and community forums can provide valuable guidance.
    • MaWa316's avatar
      MaWa316
      Copper Contributor
      The infrastructure as code part, the YAML script, where is that kept in relation to my projects? Is there setup around checking that file out for builds or it just runs from version control?

Share

Resources