*Minimum* Moodle Setup for cloud computing hosting

*Minimum* Moodle Setup for cloud computing hosting

by Eric Novikoff -
Number of replies: 18
My cloud computing company is getting an increasing number of customers who want to host Moodle. Most of these customers want very small installations to resell to their corporate customers who have relatively few seats. They want one installation per corporate customer instead of one mega-installation for all their customers. We sell hosting on a pay-as-you-go (utility billed) basis, meaning that you pay only for the computing resources you use each month. This makes it difficult for me to provide my customers an accurate quote, since we don't have a good idea how much resources (CPU and memory) that Moodle will use when they go live. I did see the 50 concurrent user per GB of RAM note, but I was hoping the user community had more info. The challenge is probably to figure out what the lowest reliable allocation of RAM and CPU would be for a small installation (say 10 users or less.) If anyone has information on this, I'd really appreciate it!

Thanks,

-Eric
Average of ratings: -
In reply to Eric Novikoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
I had to look up "cloud computing"... another day, another buzzword big grin

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.
Average of ratings: Useful (2)
In reply to Howard Miller

Re: *Minimum* Moodle Setup for cloud computing hosting

by Eric Novikoff -
Thank you, Howard. We're getting an increasing number of clients who want Moodle deployed to the cloud, so I'm looking at either partnering with a Moodle Partner, or becoming one (though that is not part of our business mission.) The good part of cloud computing is that you can always have more resources if you want them, from 1/100th of a server to hundreds - but most customers want to provision a minimum allocation that provides acceptable performance out of the gate. Since we can change our customers' resource allocations on demand, perhaps the best approach is simply to run our remote server monitoring service on their Moodle boxes and up the resources if they boxes get too hot. It isn't going to do much for their budgeting process though!
In reply to Howard Miller

Re: *Minimum* Moodle Setup for cloud computing hosting

by Martín Langhoff -

another day, another buzzword

well, this one is at least self-explanatory. Steps:

  1. Go buy a cloud. Not a rainy one. A high-flying-in-a-sunny-day cloud.
  2. Attend one of the performance sessions that Matt, Jonathan and others from Catalyst run at Moots. Take copious notes.
  3. Send the cloud to me. I like clouds.
  4. Go buy a physical server based on the notes you've taken.
  5. Tune server as advised.
  6. Show the client a picture of the cloud, saying "and Moodle is running here"
  7. ...
  8. 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 smile

In reply to Martín Langhoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
I'll have some of whatever you've been drinking big grin
In reply to Howard Miller

Re: *Minimum* Moodle Setup for cloud computing hosting

by Martín Langhoff -
Hey, *I* wasn't the one who started talking about clouds. Eric, pass the glass! big grin
In reply to Martín Langhoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Julian Ridden -
He's mad I tell's ya, MAD!!

He also used to work for Catalyst...join those dots. tongueout
Average of ratings: Useful (1)
In reply to Martín Langhoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Eric Novikoff -
Funny... but the "go buy a physical server" advice is pretty long in the tooth. Knowing the technology that we have available to provide for our clients, I would never recommend buying a physical server nor would I ever use one for any business critical application again. Our technology allows any applications running on a physical server to be automatically restarted on another one should the physical server fail - within minutes. It also allows us to deploy applications such as Moodle with only the resources allocated that they need: from 1/10th server to 100 servers, easily changed in seconds and allowing our clients to only pay for the resources they use. Why would anyone want to pay in advance for a fixed amount of computing power that has to be oversized to allow for future growth or spikes, when you can just buy what you need, and have it be as reliable as a load-balanced failover cluster?
In reply to Eric Novikoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Martín Langhoff -
Hi Eric, didn't mean to offend. This is a technical forum, using the marketing term here is... well... your call.

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! big grin

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.
In reply to Martín Langhoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Eric Novikoff -
Hi Martin,

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 sad

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



In reply to Eric Novikoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Martín Langhoff -
Hi Eric,

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 smile and let's get back to technical matters.
In reply to Martín Langhoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Eric Novikoff -
Martin,
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 smile

In reply to Eric Novikoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
Ooohh... you've done it now big grin (waits for sky to fall in).

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?
In reply to Howard Miller

Re: *Minimum* Moodle Setup for cloud computing hosting

by Eric Novikoff -
Howard, you make good points. If cloud computing is implemented well, there is no way for the user to distinguish it from a private network of "perfect" physical hardware that never fails. In that case, it's technically shared, but it "shares" none of the drawbacks of shared hosting such as Cpanel or Virtuozzo. I don't think there are any cloud systems that reach that goal 100%, but some come close. If cloud computing is implemented poorly, then one customer's activities will affect another customer's performance, though I've never heard of any cloud vendor that has many problems with this. However, the biggest cloud provider, Amazon EC2, doesn't even offer a SLA for uptime, so you know there are going to be some hidden issues... and they make the front page when they happen, at least here in Silicon Valley. Ultimately, whether you call cloud computing the latest marketing buzzword or the best thing since sliced bread, you will still depend on the integrity of your hosting partner to do what they say they're going to do. And in the interests of reducing costs, shared hosting providers have cut a lot of corners in the past which have severely impacted their customers. In fact, I get a lot of customers from shared hosting providers who simply turn them off if they use too many resources sad

Thank you so much for your help!
Average of ratings: Useful (1)
In reply to Eric Novikoff

Re: *Minimum* Moodle Setup for cloud computing hosting

by Jonathan Moore -
I'll put my two cents in with Martin on this.

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.
Average of ratings: Useful (3)
In reply to Jonathan Moore

Re: *Minimum* Moodle Setup for cloud computing hosting

by Martín Langhoff -

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 mixed

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 mixed

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... smile

Edit: The FS with limited number of dirents is GFS, not OCFS. Fixed.

Average of ratings: Useful (2)
In reply to Howard Miller

Re: *Minimum* Moodle Setup for cloud computing hosting

by Martín Langhoff -

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 tongueout

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 smile and we can talk facts and see how we can tweak things to go faster, better, bigger...

Average of ratings: Useful (1)
In reply to Howard Miller

Re: *Minimum* Moodle Setup for cloud computing hosting

by E. L. Cooper -

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.