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 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:
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.
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.
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.
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.
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.
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.
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.Message
Future-proof your brand with Intelegencia. Fill out the form and we'll be in touch soon.