0

Azure VM, Cloud service or Web job?

I have a configurable console application which runs continuosly. Currently it is running on a VM and consumes lot of memory (it is basically doing data mining).

The current requirement is to have multiple instances of this application with different set of configuration which can be changed by specific users.

So where should I host this application such that the configuration can be modified using some front end which provides access managements(like Sharepoint),ability to stop it/restart (like WCF service) without logging on the VM?

I am open to any suggestions/ideas. Thanks

Community
  • 1
  • 1
Sandesh
  • 2,966
  • 1
  • 20
  • 34

3 Answers3

0

I don't think there's any sold answer to this question as there is the preference variable but for what it's worth, if it were up to me I would deploy it against individual azure VM's for each specific set of users. That way if the server resources went up because of config changes the user group made it is isolated to that group, and with azure, will scale automatically to meet the resource demand. Then just build a little .net web app to allow user to authenticate and change configuration settings.

voidzero
  • 564
  • 1
  • 4
  • 11
  • Even if I deploy each instance on a different VM how should I allow specific users only to change the config using some sort of front end? The other concerns are how should I allow the users to restart it on demand, and then the log which is generated by the application how should I display that to the end users? At no point of time will anyone log on the VM directly – Sandesh Mar 27 '15 at 05:05
  • You'll need some kind of application that allows the users to authenticate and modify settings. This application would have multiple roles and permissions levels. it would be accessed by browser. – voidzero Apr 07 '15 at 14:56
  • I have started implementing the design. The long running application is converted into a webjob. I have designed the UI in sharepoint 2013 which can take care of authentication. I am using Azure Storage to store the configuration and reading the table from sharepoint for creating and updating it. Still in development phase. – Sandesh Apr 08 '15 at 09:44
0

You could expose an "admin" endpoint for your service (obviously you need authentication here!) that: 1. can return the current configuration 2. accept new configuration 3. restart the service (if needed). Stopping the service will be harder, since that leaves the question on how to start it again.

Then you need to write your own (or use a 3-party (like sharepoint or a CMS)) application that will handle your users and under the hood consume your "admin" endpoint.

Edit: The hosting part: If I understand you correctly your app is just an console application today, and you don't know how to host it? Well, there are many answers to that question. If you have a operations department go talk to them, if you are on your own play around and see what fits you and your environment best!

My tip: go for a http/https protocol/interface - just because there are many web host out there, and you can easy find tools for that protocol. if you are on the .NET platform check out Web.API or OWASP

Jocke
  • 2,189
  • 1
  • 16
  • 24
  • Where should I host it? Your suggestion is to convert my console app into a WCF service? – Sandesh Mar 27 '15 at 07:13
  • I don't know your app. You tagged it with "wcf". I thought you hosted your service in a console app. Host it on a server. – Jocke Mar 27 '15 at 13:49
0

Azure now has Machine learning to process data mining. You should check if it's suit to you.

Otherwise, you can use Webjob:

Community
  • 1
  • 1
Thomas
  • 24,234
  • 6
  • 81
  • 125