Tuesday, April 8, 2008

Open Source and the Cloud

Lately, I've been thinking about how the cloud computing model of providing software intersects with the open source model.

We've all gotten pretty comfortable with supporting Open Source apps that utilize a LAMP stack, Wordpress being a good case in point. This model works very well, generally speaking, but there are a couple problems with it, from the perspective of cloud computing.
  • First of all, if you use something like Wordpress, you regularly need to update your code and you need to deal with various compatibilities as you migrate systems. I really like applications that just kind of upgrade themselves over time, like GMail.
  • Second, applications that are installed as single instances on multiple servers can't leverage Web 2.0 style network effects like single installation, web scale applications can (eg Flickr, YouTube, WorldCat.org (what, did, I just call an OCLC product Web 2.o?), etc.).
The recently released Omeka product got a lot of things right, I think. It's really a Web 2.0 digital collections system that allows for TWO-WAY interactions with collections.

We're eager to try it out here at Lewis & Clark. To get it up and running on our server, I had to upgrade MySQL from 4 to 5. This broke our compiled version of PHP. A newly downloaded version of PHP fixed things, but that broke a couple other components on our web site. A few hours later, all was well, but the point is, loading and running something like Omeka does still require some "heavy lifting" on a sysadmin's part.

The other element lacking in Omeka is the fact that its data isn't part of a larger system. Sure it's harvestable and can be syndicated through RSS, but it's not part of a greater, two-way information ecosystem.

So how should Open Source projects be done in this cloud computing environment? Code should be shared and improved by a community and those improvements should be tested and then applied to a centralized running instance of the application.

Google has just released a platform that would work well for this sort of model, called "Google App Engine."

No comments: