Service Engineer, Microsoft Visual Studio Online - Team Foundation Server
After spending some time out in the field looking at customer’s TFS environments and more recently looking at some of Microsoft’s internal on-premises TFS deployments, I realised that some environments are configured and better maintained than others.
Some of the general concepts and the very TFS-specific configurations are talked about in Part 5 of my Professional Team Foundation Server 2012 book, but many of the basics were considered out of scope or assumed knowledge. Also, not everybody has read the book, even though it gets 5 stars and is considered “THE Reference for the TFS Administrator and expert!” on Amazon.
The purpose of this blog post is to give the Service Owners of TFS a check-list of things to hold different roles accountable for in the smooth operation of the server. It’s broken into 5 sections that roughly translate to the different roles in a typical enterprise IT department. In some cases, it might all be the one person. In other cases, it could be a virtual team of 50 spread all throughout the company and the globe.
The list is in roughly descending priority order, so even if you do the first item in each section, that’s better than not doing any of them. I’ll add as many reference links as I can, but if you need specific instructions for the steps, leave a comment and I’ll queue up a follow-up blog post.
(These are not TFS specific and apply to most SQL servers)
René's blog post Top 10 of things every TFS Administrator should do also covers some other things.
This is a community contribution from Jesse on regular maintenance around Build Agents, Symbols and Drop shares:
Another community contribution from Jesse – this is a set of things to check for when a user rolls-off a project or otherwise stops using the server:
The ALM Rangers are a group of individuals from the TFS Product Group, members of Microsoft Services, Microsoft Most Valued Professionals (MVPs) and technical specialists from technology communities around the globe, giving you a real-world view from the field, where the technology has been tested and used. If you haven’t seen some of the resources that they produce and maintain, I highly recommend that you check them out:
Hopefully this blog post has been an effective use of my limited keystrokes and together we can improve the predictability, reliability and availability of Team Foundation Server in your organisation.
[October 9 2013]: Added notes on local admin, SQL Instant File Initialization, max server memory, transaction log shrinking, SMTP settings, cache directory settings, build administrator tasks and exit procedures.[October 19 2013]: Added link to Ola's solution for integrity checks and database backups.[November 1 2013]: Added link to René's blog post on Top 10 TFS administrator tasks[November 16 2013]: Added reference to IIS & ASP.NET threshold files for PAL. Thanks Chetan.
One of the best TFS maintainence posts I have every read :) Thank you very much
I got know lots of things related Sql.
Great blog post with some great tips on TFS Server maintenance that I will definitely be implementing soon!
Excellent post Grant!
Grant: very nice article. Lots of great tips!
Wondering about a couple more:
- your opinion on how often and best way to shrink SQL transaction logs, which can grow quite large with TFS.
- your opinion on setting SQL memory limits, which can also have an affect on a smooth running TFS install.
Great list grant, we have users who will get 10's of thousands of email notifications each (which can cause SMPT flooding) when a major area path \ iteration path restructure takes place and all the items are updated. We've learned to schedule those and to turn off email integration for those periods of time.
@James - Good catch. I've added some comments about max server memory and shrinking log files. In general, if the question is "How should I configure X in SQL?", the first thing I'm going to do is search the blogs on sqlskills.com to see what Paul, Kimberly and Jonathan say about it. If you follow that pattern and understand what you're doing, it's tough to go wrong.
This is an excellent post and guide. Really appreciate the SQL optimization notes. Looking forward to using this. Thanks.
Thanks for this great post and the mention!