This past weekend we upgraded the TFS server used by the Developer Division and other teams who deliver Visual Studio 2012. It is now running TFS 2012 RC!
Back in the beginning, the DevDiv server was our dogfood server. Then as all of the folks shipping products in Visual Studio, there were too many critical deadlines to be able to put early, sometimes raw, builds on the server. So we dogfood TFS on a server called pioneer, as described here. Pioneer is used mostly by the teams in ALM (TFS, Test & Lab Management, and Ultimate), and we’ve been running TFS 2012 on it since February 2011, which was a full year before beta. Never before have we been able to use TFS so early in the product cycle, and our ability to get that much usage on early TFS 2012 really showed in the successful upgrade of the DevDiv server.
We also run TFS 2012 in the cloud at http://tfspreview.com, and that’s been running for a year now. While that’s not a dogfood effort, it’s helped us improve TFS 2012 signficantly. The other dogfooding effort leading up to this upgrade was Microsoft IT. They upgraded a TFS server to TFS 2012 Beta, and we learned from that as well.
The scale of the DevDiv server is huge, being used by 3,659 users in the last 14 days. Nearly all of those users are working in a single team project for the delivery of Visual Studio 2012. Our branches and workspaces are huge (a full branch has about 5M files, and a typical dev workspace 250K files). As a result, we always find product issues when we upgrade it. For the TFS 2010 product cycle, we did not upgrade the server until after RTM. Having been able to do this upgrade with TFS 2012 RC, the issues we find will be fixed in the RTM release of TFS 2012!
Here’s the topology of the DevDiv TFS deployment, which I’ve copied from Grant Holliday’s blog post on the upgrade to TFS 2010 RTM two years ago. I’ll call out the major features.
These statistics will give you a sense of the size of the server. There are two collections, one that is in use now and has been used since the beginning of the 2012 product cycle (collection A) and the original collection which was used by everyone up through the 2010 product cycle (collection B). The 2010 collection had grown in uncontrolled ways, and there were more than a few hacks in it from the early days of scaling to meet demand. Since moving to a new collection, we’ve been able pare back the old collection, and the result of those efforts has been a set of tools that we use on both collections (we’ll eventually release them). Both collections were upgraded. The third column is a server we call pioneer.
Grant posted the queries to get the stats on your own server (some need a little tweaking because of schema changes, and we need to add build). Also, the file size is now all of the files, including version control, work item attachments, and test attachments, as they are all stored in the same set of tables now.
The biggest issue we faced after the upgrade was getting the builds going again. DevDiv (collection B) has 2,636 build agents and controllers, with about 1,600 being used at any given time. On pioneer, we didn’t have nearly that many running. The result was that we hit a connection limit, and the controllers and agents would randomly go online and offline. Working with WCF team, we now understand the connection settings, and this will be fixed for RTM. We’ve also now got a test in place that finds the issue and verifies the fix.
Here’s a subset of the issues we’ve found, including all of the ones we found the first day. There are probably another dozen that we’ve found during the week that I haven’t listed.
The upgrade to TFS 2012 RC was a huge success, and it was a very collaborative effort across TFS, central engineering, and IT. We quickly got everything to full scale and running smoothly. As a result of this experience and our experience on pioneer, TFS 2012 is not only a great release with an incredible set of features, but it’s also running at high scale on a mission critical server!
I hope you upgrade your server to TFS 2012. You are going to love it!
Follow me at twitter.com/tfsbuck
Jason Prickett has been writing some great posts about the new features in Build for TFS 2012. One of my favorites is the ability for you to add sections to the build summary page without having to write any plug-ins. You just use the WriteCustomSummaryInformation activity in your workflow or make the equivalent OM calls from a workflow activity. The result is that you can display results, hyperlinks, and more on the build summary page.
TFS11 RC – Simple Build Summary Customization So, I did a few posts when TFS 2010 released on how developers could customize the Visual Studio Build Details View. However, it required creating a VS Add-In or Package and then deploying that to all your clients. Well, with the RC release of TFS 11 and Visual Studio, there is a much easier way to add simple content to your Build Details Summary view. more…
TFS11 RC – Simple Build Summary Customization
So, I did a few posts when TFS 2010 released on how developers could customize the Visual Studio Build Details View. However, it required creating a VS Add-In or Package and then deploying that to all your clients. Well, with the RC release of TFS 11 and Visual Studio, there is a much easier way to add simple content to your Build Details Summary view.
Here’s a screen shot showing a “My New Section” that he added. Enjoy!
While many of the features in Visual Studio 2012 are available to users using TFS 2008 or 2010, there are some features that are only available when using a TFS 2012 server. Also, the web experience in TFS 2012 has been rebuilt entirely from the ground up, and the result is a fast, fluid experience that also includes new experiences tailored to Scrum.
Once you’ve upgraded your server to TFS 2012, installed your first TFS server, or are using the Team Foundation Service Preview, here are some of the features you are now able to use. The goal here isn’t an exhaustive list but to get you started.
Alerts editor – Replacing the power tool, there’s now an even better experience built into the web UI for managing your email notifications. You will be able to see and manage all of your alerts in one place. To get to it, go to a project, click on your name in the upper right, and choose Manage Alerts. Note that you can only get to it if your administrator has configured your server to send email.
Retry build – If your build fails for reasons unrelated to your changes, you can now right-click and retry it.
My Work – This is a new feature of Team Explorer that allows you to suspend and resume work quickly and easily. This feature is only available in Premium or Ultimate.
Code Review – You will be able to use the new code review experience. You can start a code review from the Pending Changes page in Team Explorer or from the History window by right clicking on a changeset. Your list of code reviews is shown in the My Work window. This feature also requires Premium or Ultimate.
Agile/Scrum – We’ve added a first-class experience for Scrum in TFS 2012 in our web UI. To use these, teams will need to be created. You can learn more here.
Feedback – You’ll be able to use this feature to request feedback on your work, and users will be able to use the Microsoft Feedback Client (including accessing it from Microsoft Test Manager).
Storyboarding – This is available in VS Premium or Ultimate and in Test Pro, and TFS 2012 adds a Storyboard tab to work items such as User Story. You can learn more here and find additional shapes here.
You can also use the new unit testing features to run tests via Nunit, xunit, qunit, and more in your TFS build (aka team build).
Microsoft Test Manager – there are a few features only available when using MTM 2012 with TFS 2012
For a more detailed list of the features in ALM for 2012, see the ALM 2012 section or download the product guide. There’s also a list of what’s new in VS 2012.
[UPDATE 6/20/2012] I’ve added more details around MTM requested by Neno and supplied by Ravi. I’ve also fixed the broken product guide link (thanks, Mayur).
[UPDATE 6/7/2012] TFS Express does not include any of the Agile features. It is really focused on source control, build, and bug tracking. You can read more about it here.
Team Explorer 2012 has the following keyboard shortcuts for the built-in pages. We are adding some shortcuts within the pages for RTM.
UPDATE 08/20/12: The last seven shortcuts were added for RTM.
The other day I wrote a post with a summary of links for upgrading team project settings to turn on all of the new features, such as code review, task board, and more.
There are a couple more things I want to point out that you’ll want to tweak after the upgrade.
First is licensing for the feature set. The default setting is Standard. You can choose to set the default to Full if all of your users are licensed for Premium, Ultimate, or Test Professional 2012 (see the editions page). If not, you can add the people or groups who are licensed for full. Only users with Full access will get the following features.
Without adding licensing access to the feature set, you will get "TF400409: You do not have licensing rights to access this feature: Backlog and Sprint Planning Tools" (you may see other features listed, depending on what you try access).
From the Welcome Page, click on Administer Team Foundation Server and then click on the Web Access tab. To change the default, click on Full and then click on “Set as default web access” to make it the default. The screen shot shows what you’ll see after making the change. Note that the “Limited” setting is for users who don’t have a CAL and that you want to grant access to see their work items and file new ones (also known as work item only view in the TFS 2010).
Second, while we have a great local workspaces feature that is new for TFS 2012 and you can easily switch a server workspace to a local workspace, you may want to keep your workspace a server workspace if it is extremely large (about 50,000 files for a spinning disk, higher for SSD). Internally, our dev workspaces are often 250,000 files or more (getting them trimmed down is an ongoing effort). We’ve introduced a feature in TFS 2012 where checkouts in VS 2012 are completely asynchronous if you enable the setting on the TFS 2012 server. That means that there’s never a pause in VS when it checks out a file you are editing – it happens in the background.
As a consequence of turning on this setting, TFS disables exclusive checkout (any existing ones are converted to exclusive checkin locks) and the get latest on checkout feature. You can find the documentation here. You’ll also see in this dialog that you can control whether newly created workspaces default to server or local (out of the box, the default is local workspaces, since we believe that’s what the vast majority of folks will want most of the time).
To get to this dialog, choose Team –> Team Project Collection Settings from the main menu in VS, then choose Source Control.
[UPDATE 6/4/2012] I've included the TF400409 error message.
As you’ve seen from Brian’s post and a bunch of others, Visual Studio and Team Foundation Server 2012 RC are now available. One of the consistent pain points in upgrading from one version of TFS to the next has been in upgrading the process for a team project. With TFS 2012, we’ve taken our first steps toward making it dramatically better. We now provide a wizard that is able to upgrade a team project’s process quickly and easily if you have made no customizations or only a limited set of customizations. There are a number of resources available to help you through the process, and I wanted to provide a collection of links in one place.
First, Tim Elhajj, who creates documentation on administering TFS, has posted a very easy to read article on how to use this new configuration upgrade wizard, and the end of that page has links to MSDN for resolving errors and dealing with the differences in the Agile process template as well as adding new shared queries that will be automatically created for new team projects. If you are new to upgrading TFS, you can start at the beginning to walk through the upgrade process.
Ewald Hofman, a program manager for work item tracking, has posted code for a tool to allow you to automate upgrading many team projects. For those of you with lots of team projects, that’s really useful. If you want to know more details on how the project upgrade process works, you’ll want to read his deep dive on it. It’s called configuring features, but it is team project process upgrade.
What we’ve provided in 2012 is not going to solve the problem of upgrading significantly customized or custom-built processes, but it should go a long ways toward helping so many folks who don’t make significant changes to the process template.
Though not directly related to upgrading your team projects, you can get an overview of what all has changed VS and TFS 2012 on the What’s New in Visual Studio 2012 RC page.
Follow me on twitter