We have three "types" applications:
- MainSite (MVC Web Role, 6 instances)
- CoreServices (TCP-based WCF Worker Role, 20 instances)
- NewFeaturesPreviewSiteOne (MVC Web Role, 3 instances)
- NewFeaturesPreviewSiteTwo
- ... 14. NewFeaturesPreviewSiteTwelve
Both MainSite and CoreServices are bundled up as two roles in one deployment. This is updated ~once every 2 months. MainSite accesses CoreServices via an InternalEndpoint
on CoreServices. This works great!
We now want to add NewFeaturesPreviewSite (in reality, we have 12 totally different/unrelated apps that you can think of like this). NewFeaturesPreviewSite is updated every couple days and is its own deployment. However, we REALLY want this to consume the already-deployed CoreServices app.
What is the best (or a good) way to accomplish this while considering the following?
- Load-balancing is a must-have (20+ CoreServices instances handling requests from three NewFeaturesPreviewSite instances).
- We do NOT want CoreServices being publicly exposed to the internet or to anything outside of our applications we're deploying to Azure.
- I'd really like to have a solution that leverages Azure's PaaS platform rather than its IaaS platform.
Ultimately, I suspect there's something with Azure's Local Network
or Virtual Private Network
features that might help me here but I'm not sure - there's something about those that I don't quite get yet.