Traveling with Kids and TFS Availability - You Need What You Need

in DevOps

Last week, my family and I went on a short trip up to the Wisconsin Dells. With three kids and one on the way, it's amazing how much you have to pack when you're away from home. Since my kids are all under the age of 6, they can't provide much help when it comes to packing or loading the car. I managed to bring out all the stuff we needed and get it loaded up. The car reminded me of the I Love Lucy episode where they attempt to pack everything in their car for the drive from New York to California. As my wife and I looked at all the stuff, she made the comment, "We are only going for two days, do we need all this stuff?"

I thought about this for a minute. If one goes on a trip for two weeks, mentally, you are OK with taking lots of stuff since you will be away from home for awhile. However when one only goes for a couple days, it's logical to think you'd need less stuff. But then I thought about this more. Whether you go on a trip for two nights or twenty-two nights, you need what you need. My 8 month old needs his bed, stroller, diapers, wipes, etc. etc. regardless of how long we're gone. I suppose that's why we have all that "stuff" in our homes to begin with, because they add value to how we live our lives (I will note that not everything does, but that's a blog for another day).

What does this have to do with TFS?

After coming home, I thought about this in the context of TFS and high availability (HA). What does it take to make TFS highly available? Well, just looking at the App and Data Tiers, you need at least a load balancer, 2 App Tiers and 2 Data Tiers. That's a lot of infrastructure! And if you only have a handful of folks accessing the system, you might find yourself asking the same question, "Do we need all this stuff?". 

While you can certainly put your App Tier and Data Tier on the same server, it will not provide any HA for the environment. Maybe you don't think this is a concern, but think about what's going into your TFS environment. These are requirements, plans, code, builds, tests, and releases that your business runs and depends on. If you are an ISV and/or using centralized version control (TFVC), I'd say TFS is most definitely a business critical app that needs HA. And whether you have 10 developers or 510, HA is critical for TFS because it adds value to the organization. 

I recently did a health check of a TFS environment for a client. They had < 100 people accessing the system and had their App Tier, Data Tier and Reporting all on the same server. This is certainly a supported configuration and well within reason given the number of users on the system. However, I recommended to them that they move the DBs to their own server, add another App Tier and put them behind a load balancer. TFS had become a very critical system to their business and these steps ensured the topology matched that status.

What about VSTS?

I'll close this with another plug for Team Services. VSTS gives all the above, out of box. You don't have to worry about load balancers, App Tiers, Data Tiers, etc. Microsoft ensures you will be able to access your account and your data with a 99.9% SLA. That's pretty sweet, and not to mention the very cost-effective price tag. If you are thinking of VSTS and need some convincing, let me know, I'd be happy to help. Think of VSTS as the company that helps you pack and load all your stuff for that next family vacation without you ever having to worry about it. I'll take that!

Well done!