http://www.dagency.co.uk/drupal-blog/can-drupal-sites-run-effectively-on-a-windows-server

It’s not uncommon for us to receive requests to build, maintain and/or host Drupal websites on Windows servers.

Here are the main reasons why:

Familiarity – The client is aware of the Windows brand and trusts it.

Experience – The client has existing IT staff, well versed in administrating and maintaining Windows servers.

Costs – The client wants to make use of their existing Windows environment to save costs.

Integration – The project needs integration between a Drupal solution and Windows specific software such as a back-end office, ERP or CRM.

Considerations

Setting up Drupal on Windows server might seem like the logical solution, but here are a few things to consider when considering deploying Drupal on a platform that is not naturally optimized for this use:

  • If set-up, deployment, development and testing tasks take longer, then development costs will be higher.
  • If core updates, security patches and contributed module work takes longer to implement, then ongoing maintenance costs will be higher. If these tasks are skipped because they’re difficult to implement efficiently, then the chances of a security breach are increased.
  • Drupal is a big beast and performance optimization is essential to a successful project. Slow loading pages increase friction, create stress, cause abandonment, and may affect your visibility in Google search.

Challenges

1. Development Skills Crossover

The Drupal community now numbers over a million individuals (based on active drupal.org member accounts).  Let’s be conservative and say that a quarter of that number is developers.

That’s a pretty healthy talent pool to dip into but is dwarfed by the number of skilled Windows technicians there are out there.  The problem is that there is not as much overlap as you might hope between the two.

No developers are well versed in every available technology, and most will focus on a number of associated technologies or disciplines, so a Drupal developer is likely to be highly up to speed with PHP, MySQL, Apache, Linux, and quite possibly other CMS’s, programming languages, etc that go together with other parts of that knowledge base, (e.g. WordPress, node.js, etc).

Likewise someone who has the skills to administrate a Windows server is quite likely to have experience with .NET, SQL Server, IIS, etc.

Unfortunately, the reverse is also true… An individual that’s dedicated a large amount of their career to open source development (which is probably the case if they’ve ended up being a Drupal Developer) is less likely to have the same skills as a Microsoft certified technician and vice versa.

Now I’m being careful to use words such as ‘likely’ here, since there will be many exceptions; highly talented and technologically agnostic individuals who can fit into both sets of shoes, but it’s safe to say these are very much a minority.

Which means that the large talent pool we were looking at before has now shrunk significantly.  There’s no reliable source of numbers here but I’m guessing that you’d be looking at most a few thousand individuals worldwide… many of whom will not be available to contract in.

You can imagine that it will be difficult to find the right people and probably more costly when you do.

If you do already have any tame Drupal Developers who are also Windows server administrators on the side then you’re in a fortunate position, but bear in mind that you would be in the same position if they become unavailable or the relationship breaks down.

2. Robustness

Drupal can and does run on Windows… There are almost certainly examples of Drupal sites on Windows out there.

However installations on Windows will be a significant minority.  Again it’s difficult to get hard numbers on this but I wouldn’t be surprised if less that 1% of Drupal sites run on Windows.

If the proportion is 1% then that means only 1% of site building and maintenance time is occurring on Windows based builds, and if we assume that Windows sites get the same average traffic then only 1% of end user interaction occurs on Windows hosted sites.

In addition, the vast majority of development of the code within Drupal itself and contributed modules and themes is likely to have been done on a LINUX/UNIX based operating system running Apache.

The upshot of this is that if there are issues with Drupal (or it’s modules/themes) that only appear on one operating system or server software then they are far more likely to have been found and solved already on say a LAMP stack then on Windows/IIS.

3. Optimization

During the process of putting together any software, including content systems such as Drupal, hard decisions have to be made based on performance.

An optimization that might improve performance in one set of circumstances could reduce it in another, and sometimes in these situations the developers end up join deciding that the improvement for the many trumps the degradation for the few.  In the case of Windows / Linux / Anything else, it’s pretty easy to imagine which system will end up getting the most benefit from optimization.

The individual decisions may not make much difference on their own, but the combined effect of many such performance decreases across a system as large as Drupal will likely be significant.

Additionally, there’s far more chance that performance issues that exist in Drupal on Windows may not have been identified / isolated / resolved purely because of the much smaller amount of time that can go into testing and developing on Windows.

4. Support

I’m talking about support from Drupal core developers, module maintainers and the community in general here.

If you encounter an issue that occurs in Drupal on Windows and is down to some low level difference in the way that Windows or IIS works, and it cannot be solved without Drupal core or a module being modified then you may find it difficult to get the help you need.

This could be because the relevant people (e.g. the maintainer of the module in question) don’t…

Have the relevant experience in the differences that are causing the issue to identify or resolve it

Have the facilities readily available and set up to replicate it

Regard it as a priority This may seem churlish but in reality if they have an issue queue with 20 open issues which could all effect 99% of users then how much priority do you think they will give to issues that only effect 1%?

Summary

Whilst Drupal can run on Windows, it may not be possible to run your particular project as efficiently on Windows over a Drupal tuned hosting stack or cloud instance such as Acquia.

If you can’t, then less efficiency means more development and maintenance cost, less reliability in certain instances, and a potential increase in friction between everyone involved in making the project a success.

Just to be clear, we don’t have any kind of anti-Windows agenda here. There’s no suggestion that Windows is in any way inferior as a hosting environment, you just need a very unique combination of expertise to match what’s possible with a Drupal specific environment that’s been designed to make workflow, performance and security as good as it can be.