0

Some background is I currently have a VM deployed on Azure. On the VM I have 3 java web applications running on a Tomcat server. Each are integrated in some way or another. They all run on the same MySql server which is running on the vm and all 3 also need to read and write to the filesystem for images and other file types. The MySql server is being backed up with the MySql backup to ftp application that I have set to backup to my dropbox account. (Dropbox is not a requirement, however I do need some type of backup service)

I have lately seen the big push towards Azure Web Apps, as they are managed, easy to scale, and overall more reliable and simple. However I find they are built more towards a simple application that doesn't have the requirements I listed above.

My question is, should I move to Azure Web Apps? If so, what is the best plan of action? As in how can I write to the filesystem, and is cleardb reliable enough?

Ethan
  • 43
  • 5

1 Answers1

1

Your question whether you should move to Web Apps is mainly opinion-based, but from an objective standpoint: Web Apps and VMs are not interchangeable, nor are they intended to be. Web Apps (part of Azure App Service) are specifically targeted at web/app tier, and offering everything you'd need for that (including scaling, certificate management, etc.). App Service won't support 100% of what you're working with, so you'd either need to stay with what you have or create an environment where you're using both VM and App Service.

Web Apps fully support VNets, so even if you do split your app environment between the two, you can maintain secure communication between the tiers.

Web Apps aren't for simple applications per se. But you are somewhat limited in what you can install. For example, you cannot install MySQL. Nor would you want to, as you would have no control over system resources and attached disks to manage something like that reliable.

You also have specific port access for Web Apps. That is, only ports 80 and 443. Along with web sockets support.

The Web App environment is multi-tenant (another reason why you can't install something heavy like MySQL). Your app tier will run on any number of instances (or be moved to a different VM in the cluster as needed).

Web App environment is Windows-only (which usually doesn't matter when dealing with running code such as node, .net, php, Java, and python (the current list of supported languages).

It's true that Web App service is fully managed, and that you only worry about your code. Along with version control integration, it's near-trivial to update your app (e.g. push new build to github, and have a new version of your app roll out automatically). But given there's usually a need for database and other complex services, this is where you could take advantages of a VM (if an Azure-provided service isn't what you want). You'd still have to manage the VMs you create, but you would be able to offload a subset of your app to Web Apps.

I know you're not using Web / Worker Roles (which fit between Web Apps and VMs), but I wrote up a comparison between the two on StackOverflow here. This gives a bit more insight into how you could use Web Apps.

David Makogon
  • 2,767
  • 1
  • 19
  • 29
  • Thank you for the thorough answer. So in your opinion should I move to a Web App, or are my requirements too complicated and should stay with a VM? – Ethan Dec 27 '15 at 17:17
  • @Ethan - That's totally up to you. Doesn't hurt to try using it, and seeing if your app tier will run in that environment. – David Makogon Dec 27 '15 at 17:56
  • Ok I will try to mess around and see if it will work. I have however been unable to find how filesystem access would work. It seems you cannot mount a data disk to a Web App so how would this work? – Ethan Dec 27 '15 at 18:00
  • @Ethan please ask a separate question about persisting data in web apps. Let's not start q&a in comments. – David Makogon Dec 28 '15 at 15:08