I'm looking for some advice on building Azure applications that expose both an ASP.NET MVC 2 UI and WCF services.
Both are to be exposed to consumers over the Internet and the UI also consumes the WCF services.
In order to minimise operational costs for small deployments, yet be able to scale out, I want to host both the UI and the WCF services within the same Web Role. Though in other cases, I might want to deploy the WCF services to their own Web Role or Worker Role so that they can be scaled independently.
When the UI and Services are co-hosted, I'm pretty certain that I want the UI to consume instances of the Services that are hosted by the same Web Role instance. It doesn't seem to make much sense to incur the latency of the load balancer and potentially going to a different host to consume a service that's right there next to me. Do I even want to use WCF at all in this case, or consume the service classes directly? But if I do that, it precludes being able to exploit location transparency if I choose to reconfigure the application topology.
I've not been able to find much guidance on co-hosted UI and WCF services within Azure.
What patterns should I be following?