Provide Load Balancing for Intra-Role communications
The fabirc should provide the ability to have load-balanced intra-role communication (i.e. internal cloud VIP's), so instead of asking the RoleEnvironment for the instance IPEndpoint list and choosing manually, there should be a mechanism for simply saying call this other role, and let the fabric decide (based on perf/count/round robin, etc...) to what instance of the role to send the call.
Have the ability to flag an input endpoint as public (today) or private (accessible only within service). Private input endpoints would differ from internal endpoints in that they are load balanced so users don't need to create there own load balancing mechanims.
Thank you for the feedback.
I’ve moved this suggestion to the ‘Cloud Services’ forum, instead of the ‘Traffic Manager’ forum. Note that Traffic Manager provides DNS-level distribution of traffic between cloud services, typically deployed in different data centers. This suggestion is about network-level load-balancing, rather than DNS-level.
Load balancers for internal endpoints should be an absolute must-have! At the moment you can't write a nicely n-tiered, secured, stateless and fault-tolerant application without either messing around with your own load balancing code, or exposing your lower tier as an external endpoint (which might be a showstopper from a security point of view).
And while at it please add multicast functionality within a hosted service
Will Blackie commented
along with this goes a need for the internal endpoint to select a different port per instance on the dev fabric .. so that you can test with more than 1 instance prior to cloud deployment.
Jeroen Mineur commented
I very much agree. And there is a very good reason to have this implemented as soon as possible: when the Azure Fabric Controller decides to take a role instance down for maintenance (which happens about once a month), the load balancer is informed of this immediately but the RoleEnvironment class in the other roles is not (at least not immediately). Therefore, those roles will keep trying to connect to an invalid IP/port, resulting in exceptions. An inter-role loadbalancer can resolve this.
Keith Fischer commented
I would also like to see a flavor of endpoints accessible between Hosted Services within a Subscription. It's a shame to have to redeploy the entire solution when you have only made changes to a certain tier. It occurred to me that Azure Connect might work, but this seems targeted for off-azure solutions.
Agreed. I ran into this today, and I wasnt happy. InternalEndpoints are useless if they cannot be load balanced like the InputEndpoints of a web site.