MRCollective / AzureWebFarm

MsDeploy enabled Web Farm using Web Roles in Azure based on Windows Azure Accelerator for Web Roles and including a background worker execution model
Other
19 stars 4 forks source link

Static site deployment using MsDeploy? (or FTP/Git support)? #4

Closed mikoskinen closed 11 years ago

mikoskinen commented 11 years ago

Our company is currently running our own web farm on Azure, which we have built using IIS and DFSR. It's working OK, but we're not IT experts so we would prefer Cloud Services or Web Sites. We can't use Azure Web Sites as they can't be connected to a Virtual Network so we're now wondering if the Cloud Services with the help of Azure Web Farm project would suite our needs.

We have some sites which aren't Visual Studio projects. For example some of them are just static HTML+JS+CSS sites, some are PHP projects. Currently we're deploying these using FTP. Azure Web Farm uses MsDeploy and the big question is, could we use that to deploy these sites which live outside the Visual Studio? Can we point MsDeploy to a directory and tell it to publish it?

I wonder if there's plans to add more publishing mechanism in addition to MsDeploy, like FTP or Git? Or maybe something like "Azure Storage Deployment", where a site could be zipped and uploaded to some container in blob storage and the Azure Web Farm would automatically poll that container and update the site if the zip is updated.

robdmoore commented 11 years ago

Hi Mikael,

Thanks for the questions.

Completely agree that Web Sites or Web Roles are a much better option than Virtual Machines (unless you have legacy applications that can't be easily ported and aren't compatible, or you want extra control and have the IT support staff that can keep the farm up to date and you are happy to forgo some of the advantages that you get with Web Roles / Web Sites). Obviously, out of the box Web Roles have a (relatively) abysmal deployment experience, but that's what this project is concentrating on solving (so you've come to the right place :P).

Coincidental timing for this conversation actually, given I'm currently preparing a Web Sites vs Web Roles vs Virtual Machines talk for the local Cloud User Group next week. If you are keen to see the slides for it (they aren't done yet, but should be finished on Wednesday since that's when the talk is :P) then I'm developing them on GitHub: https://github.com/robdmoore/AzureWebAppsPresentation

Now, as per your questions:

@MattDavies and I are currently using AzureWebFarm in a number of production environments successfully and it's working well. The main "problem" we have (that will allow us to make it 1.0 when fixed) is how long it can take to sync a deployed site between all nodes (it can take between 30 and 60 seconds). This is largely due to the architecture that we inherited from Accelerator for Web Roles (the initial codebase we started from - written by some Microsoft guys). We have been thinking about the different options on and off over the last few months and one of the ones we are considering is DFSR - if we do end up going with that can we hit you up for some advice and code reviews given you have experience with it?

mikoskinen commented 11 years ago

Hi Rob,

Big thanks for the detailed reply. Your presentation looks good, thanks for sharing it. I also blogged about the same subject few months back, though it's now outdated (Web Sites + SSL): http://mikaelkoskinen.net/azure-virtual-machines-vs-azure-web-roles-vs-azure-web-sites/

Regarding DFSR, the big problem with it is that it requires that the servers are domain joined. At the moment, in addition to having the custom built web farm, we also have one VM working as a domain controller and that's also a big reason why we would like to move away from VMs :)

I've been playing with the Azure Web Farm project and I really like it. Once you get it up and running, it's easy to use and to configure. I've also done small code changes to it in order to enable SNI support, but I'm thinking of putting these changes behind a configuration parameters, after which I could create a pull request.

I haven't yet tested the "folder publishing", but I'll try that soon. Thanks for providing guidance on how to do it.

robdmoore commented 11 years ago

Awesome - thanks for the advice re: DFSR.

We have another idea that we think should work well (that now I know more about the architecture for Azure Web Sites quite closely matches how Microsoft do it!).

It would be awesome if you can submit a PR to get SNI support :)

Thanks!

Make sure to let us know how you go and feel free to reach out if you have any trouble using it...