How can we help?


The Best Practice to Migrate From Your Existing TFS to Azure DevOps

Shafeeq Mohammad Shafeeq Mohammad February 18, 2020
The Best Practice to Migrate From Your Existing TFS to Azure DevOps

Azure DevOps, the new release of Visual Studio Team Services (VSTS), is a hosted cloud offering. Whereas, Azure DevOps Server, the latest release of Team Foundation Server (TFS), is an on-premises version with many kinds of limitations.

Although both application lifecycle management systems take care of various stages of the DevOps lifecycle (from planning to maintenance and everything in between including coding, testing, and deploying, among others), TFS involves huge application costs and long hours of downtime. Also, it is a bit more complicated than Azure DevOps.

If you are presently using TFS, you might have to face some of these challenges commonly:

  • You might not always have the latest versions with the newest functionalities and features.
  • You might have to focus a great deal of attention on the infrastructure, server maintenance, security, updates, backups, and operating system licenses, among others, which isn’t only a costly but also a time-consuming affair.
  • You might not be able to minimize the risk to your organization since TFA doesn’t have many compliance certificates to meet. 
  • It isn’t possible for your team members to securely access the business environment from anywhere using any device.
  • The uptime provided to you, in addition to the support, isn't that great.
  • You've little time left to focus on what's important to you due to the upgrades, security, and overall maintenance.

Migration from TFS to Azure DevOps Made Easy

If you no longer wish to go through yet another tedious TFS upgrade and are considering switching to Azure DevOps from the on-premises version, here’s a safe, straightforward, and skilful migration path for a quick and smooth transition:

1. Get Started

You are going to need to describe your current on-premises TFS setup and update it to its latest version. Since each of your TFS collections get migrated as a separate account, consider having a single group for a hassle-free and quick transition.

Further, you will have several projects inside each collection, and process template and process settings inside each project. Consolidating the active projects into a single TFS project would be a good idea.

Have an active account in Azure if you do not yet have it. For a smooth import, remember not to make any extreme changes to the TFS process.

2. Set up staging migration server

After getting your live TFS server up-to-date, you will need to set up your new staging VM that would host your migration.

To do this, install the latest version of Windows server and have a ton of hard drive space for it. Install the SQL server (ensure it is the same version as your live TFS server) and management tools. Install IIS from Windows features and finally the Azure DevOps Server (ensure it is the same version as your TFS server).

Next, you're going to need to take a full backup of live TFS server. For this, you may use a built-in SQL backup tooling.

To be on the safe side while making significant changes, consider shutting down the live TFS server. Restore the backups and configure the installation. Lastly, install Visual Studio 2019.

3. Eliminate any data that you don't want to import

This step involves cleaning up the data to be imported, which is necessary to make migration simple.

To do this, start by deleting the unnecessary Team Projects through the staging TFS Web UI. Next, remove all the workspaces using a handy tool such as GIT. Now delete all the code from the database with the "tf destroy” command.

There you go! The old data no longer needed is cleaned out.

4. Validate the import to see if there are any issues to be resolved before the import

There will be issues needed to be taken care of before the final transition, and this crucial step will alert you on those issues. Running the validation will only take a couple of minutes, and it will create a log of files that will help you analyze the problems before the migration. Execute the validation on the staging server by opening the command prompt and running the Migrator validate command.

5. Prepare the data to be imported

After successful validation of the import, you will need to prepare the actual data to be imported. To do this, you'll need to run and execute the Migrator prepare command, which will generate the required import files. Before moving your imported files containing all of your TFS data into Azure DevOps Service, you will need to push them to Azure Storage Container.

6. The final import step- Move your data into Azure DevOps

Whoa! You’ve made it to the final step! Begin by detaching the collection from TFS and generating the database backup.

If you can manage to keep your import under 30 GB, create a DACPAC with all your essential data to import to Azure DevOps Service. Next, upload it to Azure and point the Azure DevOps Service to it. Now, to allow the Azure DevOps Service to access the DACPAC, you'll need to create a SAS key.

That’s it! You can now start the import by running the Migrate Import command from the Data Migration Tool Folder. Once your migration is complete, don’t forget to verify that everything is working fine.

Last Thoughts

Although this migration would undoubtedly improve and accelerate your software delivery, the lengthy and complicated migration process will require specialist skills as it involves lots of challenges that are hard to overcome, especially for first-time migrators. Developing these skills in-house would be no good since this transition is a one-time process. 

Our highly-skilled software enthusiasts can help with a quick and seamless TFS-to-Azure DevOps- migration process.

Shafeeq Mohammad is a Senior Infrastructure Lead IT at Intelegencia.


_BlogComment.Name Html.Raw(_BlogComment.PostedOn.ToString("MMMM d, yyyy"))


Leave your comment

Get Started Now

Future-proof your brand with Intelegencia. Fill out the form and we'll be in touch soon.