Web role / worker role / VM role? - azure

Sorry for ambiguous question title! I have an asp.net app which works with an additional third party software(burning glass- connects to web app via tcp/ip, requires - properly configured dns entry, fixed ip and minimum of 8gb ram and it is completely managed via command prompt) in a single dedicated server.
I want to convert my web form app to MVC and deploy it in azure and also move the third party software I use( with above requirements). Is it possible to achieve the above requirements in azure?
Which role should I use for burning glass?

The general rule is to install 3rd-party software in a Web or Worker role, alongside your web app if you'd like, as long as:
You can install via MSI or some other mechanism that doesn't require manual intervention
The installation time is relatively quick (maybe max. 5 minutes or so)
The installation is reliable
If any of those are not possible, you'd need to go with a VM Role to pre-install the app.
As far as managing an app via command-line: As long as you can make the command-line calls via your app, you're ok. If you need to enter commands into a console, then that's not practical in Windows Azure unless you can connect to the console remotely. Not knowing about Burning Glass, I don't have any idea whether this can be done.
While Windows Azure doesn't let you select your IP address, the assigned IP address remains in effect as long as you don't delete and redeploy your app. You can upgrade the app without redeploying, so that shouldn't be an issue for you.

Related

azure webapp of windows service application

I have an existing Windows Service application that can run as a service or as a console application. It can be build x32 or x64.
It will by configuration file try to use a ip address and a port number.
Once it has that it will accept and send SOAP messages back and forth and service the requests.
The question is can this be deployed to Azure in a webapp framework, where scaling to meet increases in customer load is automatic. If not what implementation would work, moving from what I have?
Azure Web Apps (web sites) are not going to let you install a Windows Service, as that requires admin-level access to install.
You'd either need to run your Windows service in cloud services (web/worker roles, which are stateless Windows Server VMs) or Virtual Machines (where you have full VM access).
Alternatively, you'd need to extract your service code (pulling it out of the service shell) and run it in a different way. How you do this is up to you, but Web Apps provide certain features (such as Web Jobs) which may fit your model.

Asp.Net Web API and Azure Web Role

I created a web application using Asp.net web api in azure and i want to consume it with a web role application ! what is the difference between web application and web role and what should i do ! thanks
An azure webapp is a website you host on azure as a normal website.
you don't really have a lot you can do with the machine. Just see it as normal website hosting.
A webrole is part of a cloud service. Which is a bit more flexible. Web roles allow you to install for example applications on the vm you are running your application. The state of the machine is not held so if the machine goes down you lose all data you stored on it. In fact you upload a sort of zip package with the application inside. This installs the app and when something goes wrong a new machine is started and the package is installed again on that new machine. This is also 'an issue' with azure websites.
Here is a good link with some more info + with info on virtual machines which is in fact a layer lower, meaning that you have more control over the machine.
https://azure.microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/
In most of the scenarios Azure Web App is what you should use. It provides all the capabilities required for almost all websites.
However, Web App may not work in few scenarios e.g.,
When you have a dependency on software or library that you need to bundle with your code
You need to RDP into the machine for some purpose
...
In those scenarios you will have to depend on Web role.

Allow localhost endpoint in different Azure hosting options

I use a small webserver for inter-process-communication between .NET and and an executable process on the same machine, i.e. a POST request to http://localhost:3000/
This works fine on my local machine when I allow the process with Windows Firewall.
Having tried the same on Azure Websites, I get an error (kind of expected).
Now my question is, which of the other services allows me to open a port and listen locally? All of them? (VM, Workers, Web Roles)
Thanks
When you want to open a PORT (socket) you can use either of VM, Web Role or Worker Role. You just have to be aware of the specifics of each. Just quick tip for differences:
VM is a IaaS Service (Infrastructure-as-a-Service) - this is where you get a VM with OS and you take care of the OS from then on - updates, patches, everything
Web/Worker Roles are PaaS Service (Platform-as-a-Service) - here you get (a fully customizable) environment under Windows OS to run your code. However about OS and Framework patches and updates someone else is taking care of.
One very good article explaining IaaS, PaaS, SaaS is Pizza-as-a-Service. Which I recommend reading.
Then for your concrete scenario, I would advice you to go for a WebRole. You can combine WebRole with worker processes. Here is a quick tip on how to do this.
But, whenever you go for the cloud, be sure to check out the Azure migration cheat-sheet.

Which azure option is good for my TCP game server using node.js?

I am new to Microsoft windows azure cloud and want to run my game server using node.js in azure cloud. I read the windows azure Node.js Developer Center site and it seems my server can run in azure cloud multiple ways.
Which azure option is good for my TCP game server using node.js?
Three options:
Web Site
Cloud Service
Virtual Machine
Web Sites are essentially shared web hosting, which only supports HTTP, so not an option for you.
Cloud Services are probably what you want. This is the core PaaS offering on Windows Azure. It will let you run pretty much whatever you want, as long as it runs on Windows. It supports TCP endpoints. There's are pretty nice tools for Node.js. There are two flavors of running Node in a Cloud Service: a web role or a worker role. Web roles use IIS and run Node.js behind it. That won't work for your raw TCP connections, so you'll want to use a worker role. A worker role will simply launch your Node app and leave it running forever.
Virtual Machines would work fine too, but they don't provide much value compared to Cloud Services. In a cloud service, you can spin up new VMs on demand, a load balancer sits in front of your app distributing traffic, your app will get restarted if it ever crashes, you can have your VM automatically patched without downtime, etc. Unless you can't run in a cloud service for some reason, you rarely want to use a raw VM.
tl;dr You want a worker role in a cloud service. :-)
Windows Azure does have a toolkit for Social Games on Github, this might help you in you in your endeavours, not sure it supports Node.js mind you, there should be some takeaways to help you.
https://github.com/WindowsAzure-Toolkits/wa-toolkit-games
This blog post gives a good breakdown on where to run what and use cases for each.
http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-azure-websites-web-roles-and-vms-when-to-use-which.aspx
It really depends on your application, what backend does it have, number of users, performance, latency etc...
A word of warning though, running Node.js on Windows is mostly fine but there are several libraries that will not work. Don't know if it's a hard requirement that you use Azure but there are other Node hosting solutions out there.
Nodejitsu
Nodester
Those are only two, there are more out there.
Disclaimer: I'm building a Node.js hosting solution, modulus.io.

Can I host a website in Windows Azure VMRole

Does anyone know if one can host a website using the VMRole in Windows Azure?
If I have IIS running on the VM can I access that from the outside?
Also, if I scale to multiple instances of the same VM, will that endpoint be automatically load balanced, just like a WebRole?
Note: There are some requirements that I have that cannot be accomplished with the WebRole, so that is why I am not using it. (if you were wondering)
Thanks in advance!
Yes, you can host a web site in an VM Role. The VM Role must be Windows 2008 R2, which has IIS, so you should have everything you need to support your website. You'll just need to work with HyperV locally to construct the VHD, then prep it with Windows Azure tools, etc.
Just curious: What specific requirements do you have that cannot be accomplished with a Web Role? There are three core use cases for VM Role:
The setup process cannot be automated
The setup process is not 100% reliable (e.g. installers periodically fail)
The setup process takes too long (maybe more than 5 minutes or so)
With startup tasks, you shouldn't have any restrictions on installing software, registering COM controls, modifying the registry, etc.

Resources