On Cloud Computing, Integration Technology, Mobility, RFID, ERP etc...
Sr, Program Manager at Microsoft and MBA from UNC Chapel Hill.My small world includes my beautiful wife Swati and our awesome twin boyz Arni and Abhi.
James has tagged me and at mid night on Sunday with nothing to do I thought I will put down few random thoughts. J
I had written in my previous post about having a high level topic that brings together all the information related to disaster recovery and reliability. Brain has written a great post which brings all of it together.
Please let us know your feedback on the same. Do you need any additional information which will be helpful in making your TFS environment more reliable?
Let's continue our discussion around Failover options in TFS. We already spoke about Backup/Restore, SQL Mirroring or SQL Clustering. One more option available is SQL Log Shipping. Log Shipping is very close to Mirroring. The only difference is Mirroring is almost real-time synchronization of databases whereas Log shipping is time delayed synchronization. In short you can synchronize the databases every X minutes. This helps when the geographic locations of primary and secondary servers are far apart for e.g. if you want to have Primary server in US and Secondary backup server in Asia. You do not want to do mirroring in this case, as it may slow down the primary server.
Caution: This is not an officially supported configuration. I have tried it and it works fine. Please test this on your test environments before trying it in production.
Terminology: Primary Server – Main TFS Data Tier, Secondary Server – Backup Data tier Server
Before you begin you should have installed SQL Server 2005 on secondary server. Following are the steps to setup Log Shipping for TFS
Configure Log shipping
Note: You should configure the transaction log shipping schedule (step 6.c) for all databases at same time. For e.g. all of them can run after every 1 hour starting 7:00PM 01/01/2007. This is crucial to keep the databases in sync.
Failover to the secondary Database
Important: To failover to the secondary server we have to failover all the databases at the same time.
Restore database <TFSDBName> with Recovery
cd Microsoft Visual Studio 2005 Team Foundation Server\Tools
TFSAdminUtil RenameDT <SecondaryServer>
TFS Databases: ReportServer, ReportServerTempDB, STS_Config_TFS, STS_Content_TFS, TfsBuild, TfsIntegration, TfsVersionControl, TfsWarehouse, TfsWorkItemTracking, TfsWorkItemTrackingAttachments, TfsActivityLogging
Note: We are working on officially supporting this configuration. I will keep you all updated
Please let me know if you tried using these steps and found them useful.
TFS SP1 has support for Basic (or digest) authentication with TFS via an ISAPI filter. This could be used for clients connecting to TFS over the internet. James Manning has a detailed post on this topic.
Join members of the Visual Studio Team System product group to discuss features available in Visual Studio Team Foundation Server, Team Editions for Architects, Developers, Database Pros, and Testers. In addition, discuss what's new in the latest Community Technology Preview (CTP).
Join the chat on Wednesday, November 8th, 2006 from 10:00am - 11:00am Pacific Time.
Add to Calendar
Additional Time Zones
As I mentioned in my last post we are working on documentation on how to use SQL Mirroring with TFS. We have the draft white paper published today at http://blogs.msdn.com/vstsue/archive/2006/11/03/mirroring-the-team-foundation-data-tier-server.aspx.
Please let us know if you have any questions on the content in the paper.
Failover is a big concern for everyone using Team Foundation Server. What happens if the server hosting Data Tier of Team Foundation Server crashes? How can we get the whole system back up and running in least amount of time? There are various solutions to this problem. Traditionally we have recommended using Clustering for maximum availability. Clustering is a great solution, as it provides automatic failover that is transparent to end users. Another option is to use backup and restore mechanism of SQL Server. In this case users can take combination of Full and incremental backup of the Data Tier and if there is a failover of primary server you can easily recover the TFS Data Tier using the backed up data. This could be a very time consuming process.
Clustering provides automatic failover; Backup/restore provides long lead time recovering of server. SQL Mirroring can be used as a solution in between both of these options. SQL Mirroring provides warm standby but TFS does not support automatic failover with mirroring. Few manual steps need to be executed when the primary server fails with mirroring in TFS. We are working on a White paper to provide detailed steps on using SQL Mirroring for failover scenarios in TFS. We should have it ready within few weeks for everyone to use. Till then following are the high level steps required to use mirroring.
The process of configuring a VSTF deployment for mirroring can be defined in following steps
More detailed Mirroring steps should be up on MSDN in next few weeks. I will keep all of you updated when that happens.
Its been two months since I joined Microsoft. These two months have been hectic, lots to learn, lots to understand and lot more to catch up. I have learnt a lot in every area from technology to process to management in this short period of time. The most important point I have noticed is, management’s commitment to customer satisfaction. Customer Focus is one theme that drives product designs and development at Microsoft. We have processes in place which help us take constant feedback from customers. One way of doing that is through blogs.
Looking at this level of customer focus across the organization I want to do my part. Here are two commitments from me to all our customers
I have been spending lot of time trying to catch up with all the functionality and understanding philosophy behind TFS. I still don’t know everything, but now I know people who know everything. So if you guys want to know anything about TFS in general and Admin/Ops in specific please please please feel free to shoot an email or leave a comment. I promise I will get back to you ASAP.
The primary goal of TFS Proxy is to cache Version Control files and reduce the network traffic. For e.g. if we have 2 offices one in US and another in Europe and the main TFS server is in US. We do not want every TFS user in Europe to download every VC file from US. So we can have a TFS proxy in Europe office and then TFS Proxy will help cache the files transferred between US and Europe hence improving performance. But all the authentication is still handled by the main TFS Server in this case the one in US. TFS Proxy does not authenticate users. It does check the validity of the user to allow him/her to access cached files, but the actual authentication is performed by TFS Server.
Here is a extract from MSDN help on how TFS Proxy validates the users.
Team Foundation Server Proxy uses a pre-authenticated ticket scheme for determining whether a requesting user is authorized to view the content of the requested file. In this scheme, the user’s client contacts the master source control server and if the user is authorized, the client is provided a digitally signed ticket that contains the details of the file being requested. The client then presents the ticket to the proxy server. This use of public/private key signatures allows the proxy to be certain that the ticket came from the server and that the user is therefore authorized to view the file. The proxy then looks into the cache to see whether it can service the request, and if not, requests the file from the server and adds it to the cache.
Link to MSDN Document: Team Foundation Server Proxy
A very simple question that someone asked me was, How do I find version for my Team Foundation Server and Team Explorer? And I started thinking for few seconds… So I thought let me put it down before I forget…
You can get version for Team Explorer by following these steps
1. Start VS
2. On menu select Help\About Microsoft Visual Studio
3. In Installed product list select Visual Studio 2005 Team Explorer
4. The Version number will be in Product details box below.
You can get version for TFS by Following these steps
1. Start Windows Explorer
2. Navigate to C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Tools
3. Select Microsoft.TeamFoundation.dll and check its properties
4. On version tab check file version property
Its been 3 weeks since I joined Microsoft as Program Manager in Visual Studio Team. I have learnt more in these 3 weeks than people learn in 6 months. Microsoft is a great place to work and my colleagues are really great. I have already started liking my role and work I am doing, so the start has been fantastic. The role is exactly what I was hoping it would be.
Let’s get to work now, I am responsible for Admin and Operations related features in Team Foundation Server. I know we need to improve a lot in this area. But I would like to hear from you, what features would you like to see in Team Foundation Server to improve your administration experience? What can we do to help you monitor your TFS farms in more efficient and effective manner? Tell me what you all think. Help us build a great product which can solve your problems.
This is just the beginning I will try to keep you all updated on our products and directions through this blog so lets keep in touch…