High Availability for TFSSolved

Hi,

I am interested to find out if there are any requirements for running TFS in High Availability.How does TFS play with load balancers?Do we need sticky sessions?Any other requirements?

Thank you,Martin

>> "How does TFS play with load balancers?"

You can put it behind load balancers (see TFS article, HTTPS: https://wyday.com/limelm/help/turbofloat-server/#config-https ). However, TFS instances cannot be load balanced. Put it on a smallish server (32GB) and you can serve billions of leases per minute (presuming you don't have a bunch of other junk on the server).

>> "Do we need sticky sessions?"

I don't know what that particular jargon means. Details of what you're trying to accomplish are needed.

>> "Any other requirements?"

Yes, see: https://wyday.com/limelm/help/using-turbofloat/#requirements

And: https://wyday.com/limelm/help/turbofloat-server/

Wyatt,

> However, TFS instances cannot be load balanced.Why is that?How would you achieve high availability with just one server?Lets say you run TFS in environment that has SLA of 99% server availability.That means we should respond to more than 3 days of unavailability in a year. During this downtime all clients will not be able to refresh their leases as recommended lease refresh time is 30min and as I understand in general it should be less than a day as a max period.In order to implement 30min recommended lease refresh time the TFS server should have 99.99% availability which is extremely hard to achieve with just one server.

The link you have provided does not explain anything in relation to load balancers:https://wyday.com/limelm/help/turbofloat-server/#config-httpsIt is instead describing how to put TFS behind a webserver with TLS support.

In scenario with loadbalancers you have TFS running ServerA and ServerB.ClientX would connect to url tfs.internal.myorg.com and the load balancer would send the request to lets say ServerA.If sticky sessions are required for TFS to run then the load balancer should always send ClientX to ServerA. Sending the lease request from ClientX to ServerB would not result in successful activation if sticky sessions are required to TFS to operate.

Any other requirements in relation to running TFS with load balancer/web farm scenario (not the general requirements)?

Martin

"High Availability" is a "squishy" term that has no set definition (like a lot of terms in computer science).

>> "In order to implement 30min recommended lease refresh time the TFS server should have 99.99% availability which is extremely hard to achieve with just one server."

OK. Then have multiple TFS instances, each activated with a separate product key (and its own lease pool). And put thos instance behind a loadbalancer.

>> "The link you have provided does not explain anything in relation to load balancers"

It explains that you need to use HTTPS. Why? Because it's extremely rare that you would find load balancer software that supports "raw" TCP communication. Hence, use HTTPS communication provided by TFS.

Having two servers with two separate lease pools would mean that for a customer with 1,000 licensed seats we will provide two TFS instances with a pool of 1,000 leases each i.e. we will provide them 2,000 leases in total.Not only that - but we will also consume 2,000 leases from our plan.

That does not look like a good solution.

Ok, then only use 1 TFS instance. Or wait for our hosted TFS instances (no hard date, ASAP).

Using one instance will not allow for 99.9% availability.Hosted TFS is not an option for restricted environments.

99.9% uptime is entirely manageable for a single machine. Upgrading a TFS instance takes less than a minute of downtime. And upgrading the base OS can be done on natural downtimes for an org (early morning, late evening, weekend, etc.)

If you want multiple instances on multiple machines you have that option.

If you want high availability without managing it yourself, use our hosted TFS (out soon).

In case of disaster recovery (hard disk failure lets say) the downtime for a server is usually hours if not a day.With one TFS server that is down, all clients will be unable to refresh the lease and stop doing their work.Licensing would then become a problem for us instead of solving problems for us.Some kind of webfarm support would be of great help in this scenario.Hosted TFS is not an option for restricted environments.

It would be nice if you can share how do you solve the availability issue with Hosted TFS though.

>> It would be nice if you can share how do you solve the availability issue with Hosted TFS though.

Its custom code specific to the hosted TFS.