views:

296

answers:

4

We have an ASP.net web application and would like to host on Azure to scale to thousands on concurrent users. Also have a bunch of application and services written in .NET that the web app accesses using TCP/IP or .net remoting which handle long running processes. For example a media transcoder server, a system monitor, image server, schedule server just to name a few.

Questions:

  1. Will Azure allow us to install these on the Azure instance?
  2. Suppose demand for the site grows and Azure needs to scale to multiple instances, we would still only require one instance of these servers. How would we even get the IP of the main instance.
A: 

You would have to rewrite existing applications to run on Azure.

Sounds like you are looking for a way to run instances in the cloud, have a look at:

http://aws.amazon.com/ec2/instance-types/

Shiraz Bhaiji
the links dont tell me what kinds of applications azure allows me to install
Tuviah
No, my point was that you cannot install a standard app in azuure, the link was to a service that allows you to run server instances. On those server instances you can run your software.
Shiraz Bhaiji
+2  A: 

Since Windows Azure introduced full trust support, you can run virtually any app on to of the Azure WebRole or WorkerRole. The main difficulty being that you need to repackage your apps for Windows Azure. If your apps are written in .NET, then the port should rather straightforward.

Concerning long running processes, the Queue/Worker pattern should be very handy, you can check Lokad.Cloud for a practical implementation.

Joannes Vermorel
A: 

Rather than installing your services on Azure, you would need to re-architect your services to run as Worker Roles within Azure - might not be too difficult as the patterns are very similar. However, Microsoft will very likely be adding "VM Roles" to Azure early next year to compete with Amazon's EC2 instances. When VM roles are implemented, you could likely do whatever you like to them, i.e. install your services.

jspru
A: 

Amazingly enough, Azure was built with your use case in mind. You do have to repackage your services for Azure (as people have mentioned). I recommend Microsoft PDC for Azure information. They have tons of great presentations, articles, videos, and samples to start from.

Azure had a nice system for mapping services to IP addresses. This is called the AppFabric Service Bus. When you connect to the service bus, you connect as either a consumer of the service or a provider of the service. The Bus takes care of mapping consumers and providers together. You can even have consumers or providers running all around the world and inside firewalls. This sounds like exactly what you are looking for. With this system, you do not have to worry about IP addresses at all. You connect with you application ID and token and then request a service by name. Azure takes care of the rest.

To scale the number of instances of each role up or down, all you have to do is edit the service configuration file to change the number of instances of the appropriate roles and send the changes to Azure. It will automatically adjust the instances.

Jacob

TheJacobTaylor