Capability Question - Service Load Balancing

Topics: Usage Scenarios
Nov 2, 2007 at 2:12 PM
I've gone through the examples of multiple versions of a service being provisioned - in my own little world, one equivalently large need is to be able to distribute load across multiple instances of a service, running across a number of machines - have you folks encountered this requirement, any commentary/guidance to offer ?
Nov 2, 2007 at 4:30 PM
The MSE is designed to virtualize a service to provide business agility. Meaning that the service itself still requires a solid implementation to get scalability and availability. The guidance around that hasn't changed. Stateless web services, that may contain state as they service an operation, are ideal for load balancing across a web farm. Having that said, it is possible for the MSE to project a single endpoint to consumers/requestors that may in fact route messages to two separate farms. One farm may service Regular and Silver customers and another farm may service Gold and Platinum customers to ensure they meet the higher SLA requirements.
Nov 2, 2007 at 5:21 PM
"Having that said, it is possible for the MSE to project a single endpoint to consumers/requestors that may in fact route messages to two separate farms. One farm may service Regular and Silver customers and another farm may service Gold and Platinum customers to ensure they meet the higher SLA requirements."

That's exactly what I'm looking for - however in my world, the customer is often associated with a specific machine, i.e. I translate a request for a service by a customer to a request for a service on a specific machine - so I've got umpteen instances of the service running on a bunch of machines, and I look at header information in the request to map a generic service request onto a specific service instance based on the customer ID - did I miss this in the docs or is info on this kind of behavior due to arrive at some future point ?
Coordinator
Nov 2, 2007 at 8:03 PM
The system supports the ability to add that behavior today via policy. What you are missing is any docs on how that is done. The short version is that you can build a WCF behavior and define the necessary XAML to invoke it and stick it into a policy and you are all set. That takes a pretty strong understaning of WCF and a little bit of XAML's object invocation abilities, which we will be documenting and sharing in the next few weeks.

As for your specific scenario, the way we would support that for a customer today is that we would define a "version" for each implementation you would want to leverage. The "standard" version would be published and each over the other versions would be specified by the rules/behavior/policy that would determine that customer x and/or message a routes to machine 1 and customer y and/or message b routes to machine 2.