tags:

views:

160

answers:

5

It is possible have a bunch of web apps running in one windows azure small compute instance?

I am looking at using Azure as a place to sit a bunch of projects (web apps) that are in dev and non-production ready. Some are actually moth-balled, but I'd like to have an active instance of them somewhere. I don't want to pay for separate compute hours for each app, that is just sitting there 90 % of the time.

The other option I am considering to get a shared hosting account for these projects.

+3  A: 

It depends on what you mean by Windows Azure instance.

A single Azure Account can hold multiple services and deployments. Deployment (at the moment of writing) could hold multiple Worker and Web Roles (essentially projects).

A single Web Role can be deployed in multiple deployment instances.

Given all that, you can easily host multiple web applications in a single Windows Azure Account or even a single deployment.

If you are interested in minimizing costs and keeping multiple test web apps under a single web role instance it gets tricky - you'll need to bring them together into a single project and deploy at once.

Note: last scenario might see drastic improvements rather soon, so Windows Azure is a rather safe bet.

Rinat Abdullin
I meant a windows azure small compute instance. Updated
Adam
So basically no, unless I put them all in one solution. However, you are expecting this to change in the future.
Adam
+3  A: 

Azure in its current state (Aug 2010) will only run one application ("service", "role") per VM instance.

So the simple answer to your question is no, at this time.

Now, given all the capabilities of the platform, you could come up with some creative ways of providing this sort of sandbox. With the Service Management API, you could have the deployment sitting out in Azure storage and bring the roles online at the moment they are requested, then turn them off ("delete the deployment") when they are no longer needed. There would be some lag on the deployment as the fabric brings the VMs online .. but depending on the use-case, this could yield you some major savings.

Taylor
+1. If you want to have multiple deployments without the $$$ impact, the easiest thing is to set up your service configurations (name, url, affinity, certificates, etc.), but without any code deployed. Have your mothballed apps sitting in blob storage, with version-specific names (maybe a container per app?). Then use some simple PowerShell scripts (with Azure cmdlets) to deploy an app when needed, and tear down when done. On average, maybe 15 minutes for a deployment, much less to tear down and delete.
David Makogon
+1  A: 

Basically you're limited to one app per role.

Not sure if this will change as there are reasons behind Windows Azure hosting this way.

From reading your question, it sounds like the cloud may not be ideal for you at this time. Especially if you have something that is "90%" not utilized. That's a lot of wasted process time for a role to sit idle, while paying the $$.

My advice would be to use shared hosting or something until the site demands higher uptime, scalability, and other Cloud Features of that sort.

Adron
+1  A: 

Azure may not be the best for this use case - one VM allows only one app and all other options are somewhat complicated to implement (like having multiple apps in one web role or on-demand deploying and tearing down - also note that Azure charges for the clock hour, so I am not sure what happens if you bring up an instance, bring it down and then bring it up again within an hour).

Another cloud provider, like rackspace or Amazon might be better, you could create Windows VMs and host your apps on IIS as you would on a normal server. Only advantage in this case would be easier provisioning of that server and no infrastructure management (you still have to manage OS and other dependencies though, unlike Azure).

Roopesh Shenoy
+2  A: 

The only way to have multiple web apps running in one Azure instance is to combine the multiple apps into one WebRole project. Azure requires one web app per web role instance.

This might not be too hard if your web apps are fairly simple or just aspx generated html pages - put each app in its own URL subdirectory to keep the page names separate from other apps. Since links between pages within the same app are usually relative to the home directory, this shouldn't upset your links much. You can access each "subapp" using url paths: http://mydomain.com/app1/default.html, http://mydomain.com/app2/... etc.

You'll see diminishing returns as the complexity of each web app increases. It will be more difficult to shoehorn multiple complex apps into a common master app.

But for experiments and proof of concept type work, once you start the master app pattern it should be fairly easy to keep it going for future work. You would be using your Azure web role instance as a portfolio of works instead of a one-off scratchpad for whatever the latest experiment was.

dthorpe
Love that portfolio of work concept - makes sense
Adam