Launch of many elements in azure web role

At my current company, we are researching the azure tree to transfer some of our old systems to the cloud. We have the following systems, which are all installed at the customers location.

Database (SqlServer) Processing Server (Winform Application) Various Clients (Winform Applications)

What we need to do is convert the processing server to the ASP.NET web API and create a new task scheduler as a kind of long-term process that will poll the database and send requests to the processing server.

All this is wonderful, but we are not sure how to do it.

We are pleased to use the service for the task scheduler and the ASP.NET web API for the server, but we do not know how to best manage the installation.

What we would like to do is to have one WebRole with the scheduler and server for one large client and one WebRole with the simultaneous launch of several schedulers and servers.

So to the question,

Is it possible? Can you run many elements in a web role?

+4
source share
2 answers

A web role is essentially a Windows Server virtual machine with some clouds of code. You can run anything you can install without interacting with MSI / xcopy / etc. You have startup scripts, as well as the ability to install from code (in OnStart() event processing).

The role of the web role and employee primarily depends on the activation of IIS. Otherwise, you can consider them as equivalent.

The most pleasant thing in defining individual roles (whether it is a network or a worker): each has its own size and quantity. This allows you, for example, to create a bunch of instances of a small web role for your interface and, possibly, one or two large instances to perform some computational tasks. In fact, nothing prevents you from loading everything into one role. It's just that now everything will scale in lock.

SQL Server does not fit very well with the role model for Web / Workers because the installation cannot be fully automated. This is better suited for a virtual machine (allowing you to create a virtual machine and save it so that it can be run anytime, fully integrated). Read more about virtual machines here . If you go this route, you will need to provide direct access to your database from your web role. You can use Virtual Network for this.

One last thing about SQL: Windows Azure SQL Database is a database as a service in which you don't build anything: Just turn it on, set a maximum size and start using it. Although it does not have every single SQL Server feature, it covers most of them and scales up to 150 GB per database (and provides shards for scaling beyond that). You pay only for storage capacity using Windows Azure SQL; without the cost of the servers that run it, and there is no need to maintain a database server.

+3
source

You can use WebRole for your API and WorkerRole as a scheduler. You can use different sizes and number of instances for both and save them in the same VisualStudio solution if you want.

I would not use WebRole for the scheduler.

0
source

All Articles