Moodle on Windows/IIS/MS SQL - known issues ?

Moodle on Windows/IIS/MS SQL - known issues ?

by Angelin Lalev -
Number of replies: 23
Greetings!

In the last several years my university ran several very successful small-scale (1000 or so users, up to 50 simultaneous active users) Moodle deployments. Each was based on single server and ran at departmental level. They all worked on Linux/Apache/MySQL. It was policy of the university to not engage in administering Moodle installations so I ended as administrator of one of them, even though I am not professional administrator or PHP developer.

Now the whole university plans to integrate all the projects into one "big" university-level Moodle installation, but due reasons, which are related to financing, manpower and already procured servers. they want it on Windows/IIS/MS SQL. Such installation would have up to 500 simultaneous active users in peak moments from up to 15000 or so active accounts. We would add up to 4000 accounts each year for our new students and remove the roughly same number of accounts for our graduates. Of course we are prepared to use load balancing, several web servers and MS SQL clustering to achieve performance.

In my capacity of "successful" Moodle administrator I was asked a question I cannot answer, based on my experience - are there any known problems with using Moodle in such scale in such environment?

I've already read in the docs that PHP is basically 32-bit app under Windows, so tables are limited to 2 billion records in table. I am making steps to get input from the other Moodle admins at the university to try and judge how big will the tables become (my own departments Moodle database is not quite representative for the activity of an average user).

So I would appreciate input and opinions from people with similar deployments regarding this and other potential problems.

Thanks is advance!



 






Average of ratings: -
In reply to Angelin Lalev

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
You (they) don't have to look very far. Read this current sub-thread: "Unable to backup beyond 2GB backup files" https://moodle.org/mod/forum/discuss.php?d=321109#p1309409.

Well if they (you) don't have Linux proficiency, and the Univ. claim that they have the necessary Windows know-how, then the question is answered, right?

P.S. Why you have a huge blank space below you reply? Aren't you finished with your question?
In reply to Visvanath Ratnaweera

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Angelin Lalev -

Thanks! Blanks are typed mistakenly...

In reply to Angelin Lalev

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Usman Asar -

Angelin, if you talk about scale-ability, then I can give you working examples, CatalystIT of NewZealand have implemented Moodle using RackSpace as technology partners for Saudi Government, housing nearly 3 millions Moodle users, also another good example of Open University UK with 10 web servers and 1 database server with Master -Slave replication (see, they didn't even put their DB server on clustering) and at times they have nearly 1500 users at a time using Moodle. So you should be fairly comfortable in knowing that it shouldn't be an issue.

Secondly, you mentioned registered users, then you can have million users registered in Moodle, all that actually matters is simultaneous/concurrent users and what activity they are doing that actually defines your need of server hardware, where you mentioned 500 concurrent, it is a fairly normal limit to consider clustering, as for clustering you can start from 1000+. Even if you have to at some point, then beauty of IIS is it comes with scale-ability (Server Farming) right out of the box and free solution without need of any additional hardware based load balancer.

Where you mentioned PHP as just 32-bit under windows, then let me clear you on few things, until PHP 5.6, 64-bit version comes as experimental, but that doesn't means it doesn't works, I have ran Moodle installation on 64-bit Windows with PHP 5.6 without any issues, where you want absolute support in terms of windows supporting 64-bit versions of PHP, then PHP 7.0 has just released with full 64-bit support for windows, and it's not even experimental anymore. More over, recent tests and Moodle 3.0.1 coming out with PHP 7.0 tested, I would definitely recommend going for PHP 7.0 for it not only lowers memory footprint required to run moodle, as well renders pages twice as fast as in case of {HP 5.x or earlier versions, so as of PHP 7.0 now one can run moodle with twice the capacity as before.

For Database, can I ask why the decision of MS SQL server? I personally haven't tested MS SQL Server on Windows/IIS, but don't doubt it's performance too, still I will prefer MariaDB/MySQL, for with MS SQL server, if you are considering free option then you'll be going with MS SQL Server express edition and that is limited to 10G Database size, and if you have already invested in Developer/Web Edition, then I can understand. If you haven't already, then I would definitely recommend going to http://goo.gl/RKSpQJ and learn about Windows/IIS setup for Moodle installation as I have mentioned many things for people going for WIMP setup for Moodle.

Average of ratings: Useful (1)
In reply to Usman Asar

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Angelin Lalev -
How we procure software/hardware is beyond me on so many levels smile The fact is, that we have available server machines with licensed Windows Server and MS SQL server. Guess it will be slightly embarassing (on quite many levels smile) to have to wipe the rather expensive combo of Windows Server / SQL Server and put Linuxes on these, especially if the Linux happens to work ok. This, in my humble experience, is not always guaranteed though, especially on relatively new server hardware.

Thanks for the WIMP link. Also, for the CatalystIT deployment. It is very encouraging. I've googled it and could not find any info about the operating system used. I'd appreciate if you happen to have such link!
In reply to Angelin Lalev

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Usman Asar -

For CatalystIT, they are on Linux but I was referring to the scale-ability that Moodle can achieve, for Windows based platforms three are Universities running Windows/IIS with 10,000+ registered users, you'll find links in example implementations in moodle documentation. 

In reply to Usman Asar

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
Hi Usman

You wrote:
> CatalystIT of NewZealand have implemented Moodle using RackSpace as technology partners for Saudi Government, housing nearly 3 millions Moodle users,

Impressive! Do you have more information on this installation, like why they went for Windows, which software stack exactly, the architecture, its usage?

> For Database, can I ask why the decision of MS SQL server? I personally haven't tested MS SQL Server on Windows/IIS, but don't doubt it's performance too, still I will prefer MariaDB/MySQL, for with MS SQL server,

So you are not so sure whether the choice MS SQL server is a good one?

The OP wrote:
> Now the whole university plans to integrate all the projects into one "big" university-level Moodle installation, but due reasons, which are related to financing, manpower and already procured servers. they want it on Windows/IIS/MS SQL.

Do you have the feeling that the resources this university put in to the project would be comparable to what Saudi Government gave in contract to Catalyst?

@Angelin
You said:
> In my capacity of "successful" Moodle administrator I was asked a question I cannot answer, based on my experience - are there any known problems with using Moodle in such scale in such environment?

Isn't your know-how in Moodles on LAMP? If the university has the necessary know-how in Windows server area, why do they ask _you_?

In reply to Visvanath Ratnaweera

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Usman Asar -

Viswanath, sorry CatalystIT has this number and implementation but I was referring to moodle scale-ability, so there's on Linux based  platform. rest assured they started with 2 million and is recently re-confirmed by member of CatalystIT as I mentioned them that now the registered users have reached 3 million.

Regarding MS SQL Server, I have seen a test based on Windows IIS + MS SQL Server running Microsoft Virtual Academy test website as they may have tested Moodle for their MVA implementation, though they did not mentioned Moodle directly,  but I could see Moodle logo in favicon and Bootstrap based theme, and they were comparing it to Apache based installation where IIS showed quicker results, so assuming SQL Server MAY be if not better than as good as any other competitive, but I will still prefer using open source for then shifting from WIMP to LAMP wont be a big issue, where using MS-SQL, database has to be converted. I was more concerned about the cost of MS-SQL as it's not cheap smile


In reply to Usman Asar

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
Hi Usman

Yes, the original question has all the gradients for an explosive discussion! We haven't had one for some time, so 2016 is the time!
wink

On a serious note, the question here is a case of a "several very successful small-scale (1000 or so users, up to 50 simultaneous active users) Moodle deployments" on LAMP are being fusioned to one "big" Moodle installtion on Windows/IIS/MS SQL resulting a Moodle site of "up to 500 simultaneous active users in peak moments from up to 15000 or so active accounts. We would add up to 4000 accounts each year for our new students and remove the roughly same number of accounts for our graduates". What the prospects of this fusion is? It would be nice if we can keep the numbers to this order of magnitude!
In reply to Visvanath Ratnaweera

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Angelin Lalev -
That's easy. Moodle was somewhat "grass-roots". Official university would not touch it, so at present time we have no professional specialist that has worked with Moodle in reality. On the bright side we had this enourmous e-learning system, developed for 15+ years in house, so we have some expertise in Windows development techs. But we digress from the topic...
In reply to Angelin Lalev

Don't touch Open Source!

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
Hi Angelin

You wrote:
> That's easy. Moodle was somewhat "grass-roots". Official university would not touch it, ...

A modern day Pariah, you mean? Your official university has a long way to go. A big, soft-spoken IT boss said Linux is cancer. And now they got it. (Search the web for Microsoft Azure and Linux.)
;-P
In reply to Visvanath Ratnaweera

Re: Don't touch Open Source!

by Angelin Lalev -

Thanks for all the inputs! I guess the discussion reached the limits of what can be said in principle, so I'm off to do some testing now.

And yup,  "open-source" is still scarry phrase around here for the guys that make the big decisions. We won't even mention "public cloud" wink

In reply to Angelin Lalev

Re: Don't touch Open Source!

by Marcus Green -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers

I'm not sure what the "public-cloud" means. I am familiar with the general term cloud-computing which is where you get your software to run on someone elses computer. When people question the reliability or advisability of free libre and open source software it is worth noting that it is close to impossible to spend a day on the web without using it.  

The Apache web server runs more than 50% of publicly visible web sites, free software runs much of the internet's email processing, the domain name system is dependent on it and you can be confident that Google is not paying a license fee to Microsoft for each of its operating system instances. Just because you don't know you are using it doesn't mean you are not using it.

In reply to Visvanath Ratnaweera

Re: Don't touch Open Source!

by Usman Asar -

Visvanath, Azure platform is built on Server 2012 and IIS 8.0, so even if you are putting Linux, underneath its IIS running the VM's.

In reply to Usman Asar

Re: Don't touch Open Source!

by Matteo Scaramuccia -

Hi Usman,
are you sure of that?

If you run a VM i.e. a Virtual Machine, what will be served from that VM will strictly depend on the Software running on that VM: Azure is kind of Hyper-V in the Cloud with some extra services but still a virtual environment available for some Linux flavors too. Isn't it?

Refs.: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-tutorial/.

HTH,
Matteo

In reply to Matteo Scaramuccia

Re: Don't touch Open Source!

by Usman Asar -

Hello Matteo,

Yes absolutely sure as the hypervisor running these VM's is Hyper-V, and is based on IIS 8.0 on Server 2012 (not even updated 8.5) as there wasn't much changed in Hyper-V development when Server 2012 R2 was released, but with Server 2016, they are bringing loads with Hyper-V development and I believe this has to do with pumping up their Azure platform, so I am assuming that next upgrade to Azure platform is with Server 2016 using IIS 10.

You're right saying VM depends on the base platform, but then there are 2 kinds of Hypervisors, one that runs inside O/S adding a layer of O/S between hardware and VM, and then there are independently running that enables direct interaction of VM with the hardware, not all hypervisors are capable of that, only Microsoft's Hyper-V and VMWare I believe. Of course there will be tutorial for running Linux on VM, as VM runs independent of hypervisor regardless, just like Emma is using LAMP stack on Hyper-V.

Just for your information, quoting implementation of Azure websites:

"Microsoft Azure Web Sites is implemented as websites that are dynamically created on-demand, on servers running Windows Server 2012 and IIS 8.0. When a client posts a request to a web site, Microsoft Azure Web Sites dynamically provisions the site on one of the Azure virtual machines pointing it at content stored in Azure Storage containers. The Azure Virtual Machines are deployed in groups called "Stamps", which may contain hundreds of such machines. Microsoft deploys these stamps in its Azure data centers across the world, and adds more stamps as demand grows."

In reply to Usman Asar

Re: Don't touch Open Source!

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
I'd expected that. If MS was forced to replace their HyperV with an OS product, that would be a statement of bankruptcy. Now http://tech.slashdot.org/story/16/01/29/1639209/microsofts-windows-phone-platform-is-dead, they need HyperV and its like dearly. In fact, "Windows and Office aside, another wildly popular business tool from Microsoft is Azure. This cloud platform is great, ..." http://betanews.com/2016/01/26/ubuntu-linux-open-source-microsoft-azure-stack-technical-preview/.

The only problem with this love affair is that it wakes up memories of that Gorilla of a CEO screaming "Linux is cancer".
In reply to Usman Asar

Re: Don't touch Open Source!

by Matteo Scaramuccia -

Hi Usman,
that is called IaaS vs PaaS big grin.

HTH,
Matteo

In reply to Matteo Scaramuccia

Re: Don't touch Open Source!

by Usman Asar -

Lolzzz Matteo, sometimes community forums really becomes place to enjoy reading posts. but anyway, I have nothing against Linux, for still being most used web server platform, Just because I am more comfortable on Windows Server environment so I tend to choose it over Linux for my personal rigs, should i come to learn about Linux to this much extent, my servers will be on Linux.

In reply to Usman Asar

Re: Don't touch Open Source!

by Matteo Scaramuccia -

Me too! Yes
No "religion war" here smile.

If you look at my posts, here and in the Tracker, you'll understand that I'm used to play with Windows Servers a lot... but, I must be transparent, for PHP web apps my personal preference goes to Linux envs.

My goal here was to keep the technical details correct enough since I strongly believe that the Moodle Community forums are the most informative among other Products' Communities.

HTH,
Matteo

In reply to Matteo Scaramuccia

Re: Don't touch Open Source!

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
No religious wars? Yes, yes. Wait till you get hit by a Gorilla: https://www.youtube.com/watch?foo=bar&v=I14b-C67EXY
smile
In reply to Visvanath Ratnaweera

Re: Moodle on Windows/IIS/MS SQL - known issues ?

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators

There's no way we would deploy something of that scale on windows architecture! smile

here's an old release about the project:

https://www.catalyst.net.nz/news/2-million-users-new-training-platform

Since that release the numbers of users on the platform has increased.

You will need to have some very good developers and sysadmins with a good amount of time availability with a range of monitoring systems in place to help track down performance bottlenecks - both with using MS Sql (and debug issues with the PHP MS Sql driver) and performance issues with running PHP on IIS - there are a lot of different ways of doing this and getting the best performance will require a bit of trial and error from your sysadmins and developers - to do it well would also likely require some development time to improve compatibility with windows specific caching like wincache - the best performance I've seen so far with IIS/Moodle is using standard php opcode but with wincache installed for MUC - last time I checked the wincache moodle plugin didn't support sessions though so you would probably want to improve the code or look at trying to install something like memcache for sessions. If none of that makes sense you might want to think about contracting a Moodle Partner to help with the setup. (although it's unlikely you'll find one willing to setup/support a windows stack.) I would also recommend you trial PHP 7 to see how it performs (although there will be a very small number of sites running php 7 on windows with Moodle and some 3rd party plugins may not work with PHP 7)


Average of ratings: Useful (1)
In reply to Dan Marsden

Moodle architecture for million+ users

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
Many, thanks for the statement.

Catalyst's national level Moodles tend to unsettle the local Gurus. So, I allowed myself to give this sub-discussion a different name. If there is enough information at million+ level, it could be split. (The OP talks of a Moodle for 10 to 20 thousand users. I wish, I could put my hands to a Moodle in that scale - BUT not on Windows, ha, ha, ha.)