6
votes

I want to host my WCF services in the Azure clouds for scalability reasons. For example there will be service for user authentication. And it will be under High Load (1000+ user/sec).

Does anybody here have real experience with hosting WCF services in the Azure cloud with high user load?

What are best practice, patterns here?

Does Azure has some cloud balancing API for such tasks?

Thanks, Kirill.

1
1000+ user/sec? That seems like a lot.Darin Dimitrov
Yep, it could be so, at least expected exponential grow of users amount.Kirill

1 Answers

7
votes

EDIT April 9, 2014 - updated with latest scalability targets

The Windows Azure load balancer directs traffic to all instances of your Web Role or Worker Role. So, the load gets distributed.

When you set up your WCF service endpoint, it would essentially exist on all role instances, so you can scale to any number of VM instances, to increase traffic-handling ability. However, you have to deal with downstream throttle points. For instance, if you're reading from / writing to Azure Table Storage from all your WCF service hosts, you're limited to 500 2,000 transactions per second, per table partition. Each storage account supports a max target of 20,000 transactions per second (for which you'd need multiple partitions, due to the 2K/sec cap on an individual partition).

Make sure your WCF services are stateless, as there's no guarantee that a client will connect to the same server on a subsequent call.

I've seen some of our customers have very high-volume WCF service usage. I can't imagine 1000 calls per second being an issue, since you can scale out to multiple instances.

EDIT: There are a few WCF-related labs in the Windows Azure Platform Training Kit.