0

I have build a web site in asp.mvc 4 with an sql server. The data on the SQL server will be updated by another program and not directly from the mvc. I have already created this migration software which connects to an oracle DB and send some data in the sql server. So I must have an opened port to the sql server from outside to migrate the data every night.

My question is which plan should I choose from Azure? I see a website plan (http://www.windowsazure.com/en-us/solutions/web/), a VM (http://www.windowsazure.com/en-us/services/virtual-machines/), and SQL server(http://www.windowsazure.com/en-us/services/data-management/).

Can someone help me with the choices I have?

thanks

Harris
  • 1,128
  • 4
  • 17
  • 41

2 Answers2

2

Azure doesn't have plans - each of the things you called out are services that you can use separately or combine. Don't think of this as a hosting company like GoDaddy.

You need to consider the complexity of what you're running, and how much control you need when installing your app.

  • Web Sites allows very very easy deployments of web apps (asp.net / mvc, python, php, node) and integrates directly with about a dozen version control engines (tfs online, dropbox, GitHub, etc.). The downsides? Only port 80/443, no VM customizations allowed, and no fixed IP address (for whitelisting purposes, for example).
  • Cloud Services (web / worker) allow you to focus on your code and not the OS maintenance. Very straightforward scaling option, and you can run any type of workload you want, that would be supported by Windows Server, with a few exceptions (no GPU support, for example). Just know that web and worker roles (equivalent except for enabling of IIS) are stateless - you have a startup script that sets up your VM with each new instance spawned, and with every reboot based on VM failure (or maybe you're moved to new hardware). This includes things like downloading/installing apps that your app needs; setting up perf counters; etc. These operations should be fast, and automated with no human interaction, since they need to be scripted. You can RDP into a web/worker role instance, but don't make any changes this way except for dev/test purposes - if the box is rebooted for some reason like disk failure, all your manually-executed changes will be lost.
  • Virtual Machines (Linux / Windows) gives you full control over the VM, and the VM is backed by durable storage - everything you do survives reboots. This is the type of environment perfect for, say, a database server like SQL Server, since it takes a while to install and requires manual intervention. When scaling, you'll need to make copies of some type of "master image" - so, if you build out a web server, you'd sysprep an image and then scale out by making additional VM copies. This is not as convenient as web/worker scaling, as web/worker scaling is controlled completely by Azure, just spinning up plain-vanilla VM images and applying your code to them.

You'll find that a typical system has a mix. Maybe in your case, you'll set up your web tier in Web Sites, and your SQL Server in a Virtual Machine. There are additional features you'll start to find as you explore further (such as IP-restricted endpoint access on virtual machines, and virtual networks). I'll leave that up to you to explore further...

Regarding difference between web/worker and web sites, I posted another StackOverflow answer, here, that goes into more detail.

EDIT - forgot to mention SQL Database Service, which is a multi-tenant SQL Server-as-a-Service offering. Trivial to set up and use (only a few seconds to get a database which scales to 150GB per database), yet restricted a bit over full SQL Server (no CLR, no FTS, etc.). There's a TechNet article pointing out more differences.

Community
  • 1
  • 1
David Makogon
  • 69,407
  • 21
  • 141
  • 189
  • very helpful answer. Thanks a lot. I believe for my kind of stuff a VM is best suited. But what can I install on a VM? Is IIS istalled by default? Can I install SQL server and if yes do I need a license? – Harris Nov 20 '13 at 09:54
  • VMs are Linux or Windows - choose your flavor from the gallery, launch, RDP/ssh in, and do whatever you want. There are "vanilla" windows images as well as pre-built images with SQL, BizTalk, and more. There's specific pricing for SQL images, or bring your own license. – David Makogon Nov 20 '13 at 09:57
0

The question what you have posted is very generic and open ended, However, I will try to explain you the terminologies.

Choosing Database - SQL Server

  1. Azure SQL Databases - Fully managed by Azure, all you need to choose is the size (maxsize & configurable later on )

  2. SQL Server on Azure Virtual Machine - You first choose the size of the Virtual Machine and it comes with OS of your choice ( Windows Server 2008 R2, or 2012 or 2012 R2 ) and you can RD to that machine and instance SQL Server as per your freedom. There are pre-built VM images which comes with SQL Server and you need not worry about the licencing cost of SQL Server.

Choosing Web Server / App Server

  1. Azure Websites - More like a PaaS - Azure will take care of the OS, IIS, Runtime etc, you can just deploy your app (ASP.net or php or node) and forget the rest.

  2. Virtual Machines - You will be given a blank VM and you will deploy your Web Server and Web Application and its health. Please note that the responsibility of the Updates, Patches for the OS, IIS and other application will be your responsibility.

Naveen Vijay
  • 15,928
  • 7
  • 71
  • 92
  • I created a pre-defined image with windows 2012 + sql server. What I see is that sql server is extra billed and much higher than windows. If I manually install sql server with a license of my own I won't have that extra bill right? Is it possible? – Harris Nov 22 '13 at 13:41
  • Yes, if you already have a valid SQL Server licence, you can make use of BYOL ( Bring Your Own Licence ) on Azure VM. Check this link for [Azure Licensing FAQ](http://www.windowsazure.com/en-us/pricing/licensing-faq/) – Naveen Vijay Nov 23 '13 at 02:56