Thanks,
-Eric
I'm going to suggest (especially as nobody else has replied) that you will have a big struggle with this. It is incredibly difficult to asses Moodle requirements, as it really does depend on what the end user is doing with it. Somebody doing lots of quizzes will be using an order of magnitude more resources that somebody putting up static materials. For better or worse, most sites tend towards the latter.
Defining what a concurrent user is can be interesting too - the one most people seem to use, I think, is the maximum number of distinct users in a rolling 5 second window. You can work that out from the logs but, of course, only in retrospect.
With my Moodle Partner hat on, what we (and I think most others selling Moodle space) do is to charge on a rather loose number of users/amount of space basis and then take the rough with the smooth. Some will use lots of resource some very little.
Re: *Minimum* Moodle Setup for cloud computing hosting
another day, another buzzword
well, this one is at least self-explanatory. Steps:
- Go buy a cloud. Not a rainy one. A high-flying-in-a-sunny-day cloud.
- Attend one of the performance sessions that Matt, Jonathan and others from Catalyst run at Moots. Take copious notes.
- Send the cloud to me. I like clouds.
- Go buy a physical server based on the notes you've taken.
- Tune server as advised.
- Show the client a picture of the cloud, saying "and Moodle is running here"
- ...
- profit!
The main advantage of cloud computing is that I get clouds to play with. Sometimes it gets a bit out of hand: http://www.stuff.co.nz/4637457a11.html
Web apps such as moodle run on hardware as usual, but clients do buy clouds sometimes
Re: *Minimum* Moodle Setup for cloud computing hosting
Re: *Minimum* Moodle Setup for cloud computing hosting
Re: *Minimum* Moodle Setup for cloud computing hosting
He also used to work for Catalyst...join those dots.
Re: *Minimum* Moodle Setup for cloud computing hosting
Re: *Minimum* Moodle Setup for cloud computing hosting
If you are offering a combined shared-hosting/load-balanced/HA setup, that is something we've seen plenty. The normal high scalability advise applies, and you will want to understand the good and bad aspects of your HA solution to tweak it to your setup. Feel free to ask technical questions -- in technical terms!
I agree in that a well setup shared-hosting/load-balanced/HA ("cloud" in marketese) can be better than non-HA, non-LB shared hosting. So for plain-old shared hosting customers it's a step up.
As any complex hosting solution it is rather hard to judge -as a potential client- whether it is well setup. And shared resources have a tragedy of the commons dynamic - for those reasons, I generally shy away from shared-hosting setups personally.
But clouds are a hot market, so go go GO! And send me some.
Re: *Minimum* Moodle Setup for cloud computing hosting
You didn't offend. While Cloud Computing could be considered to be a marketing term (especially since the "experts" have yet to agree exactly what it is!) it also has non-marketing meaning to lots of people who are already benefiting from it. In general, it refers to scalable, reliable computing services delivered on utility-billed basis over the internet. Beyond that, the specifics are up for grabs - or interpretation by the cloud provider, some of whom (no names here...) interpret things rather liberally in their own favor
I can understand that you might be cynical about cloud computing, but ultimately as you know the human factor makes all the difference in the customer-vendor relationship. If you genuinely care that your customers are satisfied and successful, everyone wins. That's why I'm trying to put a personal face on Cloud Computing. Given that the best advice I've gotten about Moodle so far is essentially that CPU usage is loosely related to number of active users (not all that uncommon an observation for any application) I wouldn't want to deploy a customer on any sort of shared hosting because their load is too unpredictable. I want to be able to guarantee my customers that their application perform acceptably at all time no matter what application it is.
Given that the economics of cloud computing are so good, I figure you'll probably be seeing an increasing number of discussions in this technical forum about deploying Moodle successfully to the cloud.
The HA solution we offer isn't shared hosting of any sort. It's a virtual private data center, with guaranteed resource allocations to each virtual private server. Monitoring systems check that the hardware is running, and if it experiences problems, move the virtual servers to other standby hardware, so the users don't experience significant downtime. It's HA without the doubled-resource price you'd usually expect.
Essentially what we do is draw a picture of the VPDC the customer needs on the screen, annotate each virtual server with the desired resource allocation (or our best guess, hence this thread!) and the press a button. In minutes, the customer gets a data center they can't distinguish from physical hardware, except that HA is built in and it can be scaled on demand from 1/10th server to hundreds.
-eric
Re: *Minimum* Moodle Setup for cloud computing hosting
this is a technical forum. In technical terms, "guaranteed resource allocations" _mean_ shared hosting, with some guarantees to prevent some of the problems of shared hosting.
Leave the marketing for *other* forums and let's get back to technical matters.
Re: *Minimum* Moodle Setup for cloud computing hosting
At the risk of offending, I don't think you understand the technical differences between clustering and cloud computing. I'm happy to discuss it offline. I also don't think the question I originated this thread with was marketing oriented. I simply needed help understanding the mapping of resource requirements from physical servers to virtual servers that someone with more Moodle experience than I have could provide. Fortunately, someone graciously obliged
With respect, if anybody understands Martin does. Please, virtual private servers *is* shared hosting. You are *sharing* a virtual space with other users on a single piece of hardware. I hear this all the time about VPS. While there are clearly big advantages over conventional sharing, to suggest it's anything other than sharing resources with a big red bow tied around it is just crazy talk (and I talk generally here, no offense!)
I hadn't even heard of it until you mentioned it, but my interpretation of "cloud computing" is that it really is a marketing term that unfortunately masks the technical aspects of providing a high available solution. Which is rarely a trivial task. Well it comes over that way anyway.
But.... I wouldn't (and don't) use my own servers either. Who wants to worry about all that boring stuff?
Thank you so much for your help!
Re: *Minimum* Moodle Setup for cloud computing hosting
There are some great potential benefits to the idea of utility/grid computing, or the new popular term cloud computing.
However there are still shared resources that have to be balanced; to say otherwise is to ignore the technical details, which is what Martin was pointing out. I am sure you are well aware of these, since you have them in production. In particular, how you deal with the storage back-end and databases. These can all be "virtualized" as well but there are inherent limits in how far you can scale these (esp with standard databases). You can't automatically move instances of VMs in the case of hardware failure without some sort of storage system outside the servers running them. These are a "shared" resource amongst all the clients using them. The pool of available hardware to run VMs is also a shared resource. It is fair to say that aggregation effects are in favor of sharing clients amongst a cloud of servers, rather than within a single server, but there is no free lunch. The cloud still has to have enough spare resources to meet all the flexible demand from clients. In fact I remember reading a pretty good article recently talking of the need for open protocols for sharing cloud resources between clouds to make it easier to grow on demand.
To imply that these systems won't go off-line are all that it takes is a competent manager/vendor is also to ignore the human factors and to assume that the utility coding behind the scenes is trivial. A single human error can take the entire cloud offline. The same human error in a dedicated server arrangement takes out a single client. Not saying one is better than the other, just pointing out what I see as a trade off.
Cloud computing has this nice simple marketing face to prospective users, come to us and all your problems about scaling and uptime will be solved. The truth is there is a lot of complexity happening to deliver it and the more complex a system the more potential for unknown bugs. One bug or one exploit can propogate across the entire cloud system. The recent EC2 failure is a perfect example of this in the wild. A couple of corrupt management messages and the entire storage system thrashed itself out of existance.
I am excited about what might be possible with this concept but it seems early days to me.
Re: *Minimum* Moodle Setup for cloud computing hosting
I am excited about what might be possible with this concept but it seems early days to me.
Completely. There are lots of cool tech behind the "cloud" marketese, some of which is fantastic, and other bits are ho-hum.
For example, FSs designed to run on a SAN are fantastic, and mostly mature. RedHat's GFS and OCFS scream with performance over a well tuned SAN, but do have some growing pains -- minor these days AFAICT, but unavoidable. For example GFS can't deal with large directories (ask the github guys), so until we start hashing the top of moodledata dir the really large installs that would make the most of it, can't use it.
We've hashed out some plans with Petr about revamping the moodledata layout so perhaps 2.0 is GFS happy.
But sharing disk resources is still tricky, seek-heavy loads are damned hard to schedule with fairness across competing users, so heavy use-databases hurt unless you put a ton of spindles to work. DR is hard - few outfits setup redundant SANs -- and when they do, they are under the same roof
On the OS/CPU/Memory side, I would love to see something like linux-vserver that is stable and gets merged into Linus' tree. Catalyst uses vserver a lot and w/o trouble, but OLPC's tried to use it and things blew up big time. And the kernel folk say the code is unmergeable, so
So, shaking the "cloud" tree, some nice things fall out of it - fast load balancers, fancy SAN-based FSs and lightweight "zone" type VMs. All with some limitations/bugs that you have to workaround, but with definite gains.
Now, if the apache/php memory mgmt could get a revamp to work in more kernel-friendly ways, then we'd see a big leap in what can be done...
Edit: The FS with limited number of dirents is GFS, not OCFS. Fixed.
Re: *Minimum* Moodle Setup for cloud computing hosting
Howard dixit:
Defining what a concurrent user is can be interesting too - the one most people seem to use, I think, is the maximum number of distinct users in a rolling 5 second window. You can work that out from the logs but, of course, only in retrospect.
I wanted to highlight this. It would be fantastic if we could get everyone talking in terms of that rolling 5s window. So we can all agree on concurrent numbers and get to a productive discussion with metrics that are actually comparable.
I mean, if we're going to play "mine's bigger", let's get agreement on the measuring unit
One way to get that # for your site is SQL - I used to have a nice (but expensive to run!) bit of SQL that is somewhere on the NZVLE cluster. Probably in a custom admin/cron.php
The other way is to enable the apache user logging (see the hints in config-dist.php). Warning: with some old & buggy versions of PHP/Apache it manages to hang apache, specicially, it messes up with "graceful" restarts (-HUP), so you'll want to check that if you enable it. Now, once you have it enabled, with the right tweak in the apache config, you get usernames logged in access.log, so we can do the rolling-window count in a trivial perl script. And if you post-process with webalizer the stats become much more useful.
With good quality metrics, all the FUD and marketese stop "clouding" the issues and we can talk facts and see how we can tweak things to go faster, better, bigger...
Old thread but the issue of cloud hosting has entered my life. A client with a site where classes range from 500 students to almost 3000 students moved from dedicated hosting to a cloud host against my advice. Since then they have had technical issues. Imagine that.
Of course backup and restore of classes with users is not functional even when I set the timeout an hour and set the php_value memory_limit 2000M.
I turn on error reporting and get nothing really. Backup just stops at Writing categories and questions.
Technically they are running 1.94.
database mysql version 5.0.51
php version 5.2.6
Part of the dilema is I tell the IT sort of guy that cloud hosting is not working for his install, he says why, I say because you need to fully control memory in an install of this scope and we keep circling the issues not resolving them.
I understand that it might be possible to make cloud work but the other side of this coin is it will be expensive to maintain support.
I guess I need someone besides me to tell them no way this is going to work or tell me it will work.