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.
Related
Can we install 2-3 windows servers on a single Azure virtual machine? Or, can we only install one operating system on a single virtual machine?
I would encourage you to look at Azure Websites. Azure Websites provides "slots" that can be configured as dev/test/staging/production very easily and you can run your entire environment on a single VM or multiple VM's (exactly what you were asking for). Websites also provides excellent publishing capabilities, whether directly from Visual Studio, TFS, Git or whatever.
Websites supports scheduled or auto-scaling, custom domains, SSL, scheduled backups (including the database) and if you need Worker Role (back-end processing) capabilities, WebJobs are built in and are easy to use.
Definitely worth checking out. It is extremely rare that I use VM's to host anything anymore. Azure Websites pretty nearly can handle anything.
Hope that helps.
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.
I have an IIS server on VPS.
I'm thinking about switching to Azure, but the problems are:
I have 7-8 old applications (that currently cannot be replaced and using classic asp)
I have many different applications pools
The questions is if there is some tool to move my entire IIS (including all the rules, applications pools and everything) to Azure or my only option is to move the apps one by one?
If you got a VM from Azure, you can move the entire VM.
Otherwise you'll need to move your applications one by one if you are moving to azure Web-Sites. But there is an export tool in IIS with Web-Deploy that can help you with applications settings: http://www.iis.net/learn/publish/using-web-deploy/export-a-package-through-iis-manager
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.
I am trying to understand what is the difference between Windows Azure and other competitors, in the technical level.
From what I understand Azure is a multitenant OS, meaning, that every application is running in some kind of a sandbox based on Hyper-V.
In other words, every application being loaded is running by Azure in its closed sandbox.
Meaning, the operating system is "real", but the application is running in a virtual environment.
That is opposed to, lets say, Amazon EC2, where they give you a virtual machine, with a full virtual operating system (a virtual computer).
Am I right, or have I got it totally wrong?
With respect to multi-tenancy and dedication of an instance to one tenant, both Azure and Amazon EC2 are exactly alike. Both dedicate a VM to you as a compute instance.
Difference between EC2 and Azure (currently) is that Amazon provides you a real VM with an OS and an ability and a REQUIREMENT to manage the OS as well as anything installed on that OS.
Azure takes away some of the "ABILITY" power away from you (currently you don't get to manipulate the OS) while at the same time taking maintenance as well.
In my mind, unless you have some special requirements that require a full access to the OS (and upcoming Azure release will let you actually install stuff on your instances like legacy COM components, etc) I would stick with Azure as it has a less of an administrative cost.
Windows Azure gives you VMs running Windows, just like Amazon EC2 does.
No. In Azure you get a VMs as well (one per role instance). They are just more abstracted from you, than Amazon or Rackspace.
You get different VMs in Azure as well. What happens in Amazon EC2 for instance is that the abstraction ends at the hardware level. Everything above the virtual machines, ie the operating system updates, the application frameworks, the web server, etc; everything needs to be managed by you.
With Azure, the abstraction is taken far above just the hardware level and to an entire application framework level. For instance Web roles are nothing but VMs, preloaded with IIS and .net framework (and other application frameworks) tuned to serve web traffic. You are able to just deploy your application and all the other configurations are handled for you, but underneath it, it is still a VM.