For a while we’ve been wanting to upgrade TFS 2013 to TFS 2015. We don’t have a dedicated sysadmin though, which usually means that one of my colleagues steps up and goes into devOps mode. Today it was my turn, let’s see how well I fare. We’re just dealing with all of our source code, so no pressure right :)
First we have to check if our current server environment supports TFS 2015, the official requirements can be found here.
Our current server configuration (hardware and software):
- 2 cores (E5-2603 @ 1.80GHz)
- 20GB RAM
- Windows Server 2008 R2 Enterprise
- SQL server 2012 SP4
- Release Management Server for TFS 2013 Update 4
- TFS 2013 update 5
- 1 (XAML) build controller + 1 build agent
Only ‘problem’ is that our CPU does not meet the recommendations of “1 dual core processor at 2.13 GHz”, we’ll just ignore that for now. Specifying CPU requirement by GHz is kind of pointless anyway.
I could not find any info about the required disk size so let’s hope the upgrade wizard will prevent us from upgrading if we don’t have enough space. At the end of this post I’ll provide the disk usage before and after installation.
We have another server which acts as a dedicated build server. That server runs one build controller with two private build agents and one build agent for the TFS server build controller. TFS 2015 provides a new build system, fortunately for us the old/existing XAML builds should work with TFS 2015 as well. Since the new build system is completely different it is not possible to upgrade or migrate the existing build environment.
Previous TFS versions
I did not install or upgrade our TFS the previous time, I do know we once started using TFS 2010 and later upgraded to TFS 2012 and 2013. For TFS 2015 it is important to check the current process templates used by your projects. When you upgrade from TFS 2008 or 2010 you can follow these steps. In my case I just queried the TFS database to check which process templates we use:
We use these process templates, which should not give us any problems during the upgrade:
- Microsoft Visual Studio Scrum 2.2
- Microsoft Visual Studio Scrum 2013
- Microsoft Visual Studio Scrum 2013.5
- MSF for Agile Software Development 2013
- MSF for Agile Software Development 6.2
First check for Windows Updates and install if any. Make sure you have plenty space for the installation, unfortunately I did not know how much space we needed, –edit: see end of this post – . Opened up the Team Foundation Server Administration Console and take a screenshot of most/all settings, just in case. Downloaded en_visual_studio_team_foundation_server_2015_with_update_1_x86_x64_dvd_7288694.iso and mount/extract to disc.
The installation went smooth and without any problems:
[~4 minutes] Run
TFSServiceControl quiesce command which “Stops or pauses all of the services, application pools, and operations in your deployment of TFS. This is required for certain maintenance tasks, such as restoring databases.”. (more info)
After 2 tries the application pools were stopped successfully and it was not possible to reach TFS anymore.
[~13 minutes] Start the TFS_server.exe installation. Installed TFS on default location.
[-] Wizard starts automatically
[~15 minutes] One of the most important steps, do a database backup
[~4 minutes] Continue the wizard. Mostly next-next-finish. Had to enter the password for our Report User. Disabled SharePoint. We did have SharePoint installed but didn’t use it. The wizard gave me a warning so I thought it would be best to disable SharePoint.
[-] Press the verify button, after a second verification I got all green ticks and could press the Configure button.
[~ 45 minutes] Wait –> crazy amount of steps –> success
After installation I noticed that our build controller was still offline. We had to re-enable the build controller and agent that existed before upgrading. Fortunately the TFS Admin Console has another next-next-finish wizard to re-enable the XAML build controllers and agents, the wizard can be found here:
Very interesting, installing TFS2015 apparently freed up space in our case?! After checking 3 times I’m sure this is the disk usage before and after the install:
|C||15.1 GB||17.6 GB|
|D||108 GB||126 GB|
|E||188 GB||170 GB (18 GB of manual db backup files are stored here)|
Could be that the install deleted a lot of cache files…