Ideas….

a blog for me to record thoughts and ideas

Browsing Posts in Work

Backing Up Moodle to the Cloud

1 comment
Moodle Architecture

Visual depiction of the rotating Moodle architecture

I have a plan to back up Wheaton’s Learning Management System (LMS) to the cloud on a yearly basis. I talked about the basics of this architecture in my post I <3 Redmine and You Will Too.Essentially each academic year I will rotate a years worth of Moodle into the cloud, only keeping the current year and the previous year.  Here’s a picture to give you a little help in understanding.

So now I need to find a way for people that are not me to access the Moodle that lives in the cloud.  The problem is that every moodle has a config file, and in that config file, Moodle asks you to specify the URL for where your Moodle is located, this is slightly problematic because:

  1. Amazon EC2 servers are not given IP addresses, they are given a Public DNS like
  2. Technically they can be assigned to an IP address but Elastic IPs cost money when they aren’t being used, and frankly I would rather not have to pay extra if I don’t have to.
  3. The people accessing these Moodles can’t be expected to ssh into a server and change the config file.

So I need to make this happen automagically when the server starts up.  I tried using the php variable $_SERVER but I got some weird things.  So my idea is to have a start up script call the public-hostname (using the API amazon provides) and then edit the config file.  That way when the server starts up, Moodle will automagically be available.

Misinterpretations

1 comment

So last night James Urquhart tweeted that he was misinterpreted in my blog post.  He said in another tweet:

I never argued *against* PHP/Python/Perl or even use of Linux/Apache by PaaS vendor. Just noted PaaS users *shouldn’t* care.

I apologized and asked for clarification since it seemed to me that there was an argument about whether or not a PHP/Perl cloud was necessary.

I re-read the article a few times, and on the last go around the only new explanations I could see from it was:

  1. if i wrote in php a vendor would deploy in another language
  2. he meant that the LAM in LAMP was what didn’t matter  (although that didn’t seem to be explicitly stated)

In the meantime though, I’ll just wait for a response (I sent it late last night and people tend to sleep) rather than possibly misinterpret more.

Last week Geva Perry wrote a post published on GigaOm called Who Will Build the LAMP Cloud.  In it he speculated on current cloud providers that may be interested in building a PaaS (platform as a service) offering of the traditional LAMP stack.  A few days later James Urquhart responded with his blog post entitled Does Cloud Computing Need LAMP.  In it he questions whether the Linux and Apache piece are really necessary in a PaaS offering.  He then goes on to question the usefulness of P languages (PHP, Perl, Python) and MySQL, using a comment to Geva’s post as a jumping off point.  Geva then comments back with a post on his own blog entitled Who Will Build the LAMP Cloud? And Who Cares? In it he agrees with James’ comments on not caring about the LA in LAMP, but says:

James’ last question: “Is the ‘open sourceness’ of a programming stack even that important anymore?” is a good one, but orthogonal to the discussion about a LAMP/PHP cloud, in my mind.

So why has this conversation gotten me in a tizzy and forced me to write two blog posts in one week?  Well two reasons:

  1. Many web based open source projects are built on the back of P languages (PHP, Perl, and Python)
  2. The cloud exists to make technology easier for the masses.

Now before I go any further I will disclose that the first language I learned was PHP.  The second one was Perl.  While I know there are wars that start on listservs about what languages are better, that is not the purpose of this post, so put it out of your head and don’t say anything about how much you think PHP sucks in the comments.

Web based open source projects are built on the back of P languages

Now I could write something about this, but I like lists.  So here is a brief off the cuff list of what open source projects use P languages:

  1. MediaWiki (PHP)
  2. WordPress (PHP)
  3. Bugzilla (Perl)
  4. Drupal (PHP)
  5. Plone (Python)
  6. Moodle (PHP)
  7. AWStats (Perl)
  8. MovableType (PHP and Perl)
  9. Subversion (Python and C)
  10. Trac (Python)

Now, I’m not going to argue the merits of how good each of these piece of software are. Again that’s not my point.  But they are popular whether you like it or not.  And to just dismiss them would be foolish.

The cloud exists to make technology easier for the masses

Google Docs makes it easier to get to files you need to edit.  Heroku makes it easier to deploy Ruby on Rails apps.  Amazon EC2 makes it easier for you to deploy a server.  The fall out of the cloud is that technology suddenly becomes much easier to create and deploy.

So what happens when my mom wants to write her own blog.  Well, most likely she heads over to WordPress.com and creates a blog for herself.  And if she needs a little more, then she signs up for the WordPress Premium services.  But what if I want my own blog.  Well right now I have my friend hosting my stuff.  But what if I want it hosted elsewhere and I don’t want to maintain servers (since I do that all day long).  My only option right now is to do what my mom is doing, but the reality is, that’s not what I want.  I want something like Heroku but for PHP.  And if I had it, I could install any of the PHP applications listed above.

And I think this conversation is very pertinent given that Google just announced its open source learning management system written in Python and intended to be deployed in Google App Engine.  This could potentially be a big blow to Moodle who doesn’t have a cloud to turn to.

Conclusion

So yes a PHP based cloud does matter.  And yes it should be built because there are lots of people clamoring to use it (or who have already figured out a way).

And yes this blog post could be more coherent.