Home > FOSS, linux, Technology > CouchDB targets the cloud

CouchDB targets the cloud

Dear visitor,

effective immediately, we have moved to our dedicated servers in http://www.brizoma.com/

Please update your bookmarks, since we will not update this site anymore.

See you in BRIZOMA.COM

SQL-based relational database management systems (RDBMS) are beginning to be challenged by a new movement of NoSQL databases. Among those NoSQL databases is the open source CouchDB. This is an alternative to the relational datastores used by RDBMS vendors; they are trying to move to cloud-based deployment options to appeal more users.

CouchDB is an open source project run by the Apache Software Foundation; they have some commercial backing from startup Cloudant, who will provide cloud services for CouchDB. With the additional cloud deployment options, Cloudant is aiming to help accelerate CouchDB adoption and make the database even more scalable.

CouchDB presents a new architecture for databases, different from a SQL-based RDBMS. In a relational database, you take your data, split it up and map those data objects into a set of rows and columns. What CouchDB does is to encapsulate all of the data into a single entity, which they call the “document”. It is somehow artificial to map data objects into a table. It’s more organic to keep those as data objects.

CouchDB also allows developers to do without a Web application stack, including middleware, to deliver applications. Many lightweight applications can be fully developed right out of CouchDB. There is an application-building philosophy called the ‘CouchDB app,’ where you take JavaScript, HTML and CSS and put all those pieces directly into the database and then serve the pages and application right from the database — so no middleware layers and no framework.

CouchDB includes its own built-in Web server, although it can work with modern Web frameworks, giving users another option of how to deploy it.

The cloud is a key element for CouchDB, since people are looking to increase their data volumes and leverage the elastic compute capabilities of the cloud. Cloud computing is often used to serve Web-based applications, but it can also be enhanced, e.g. via CloudDB, to support desktop applications as well.

Today’s desktop apps try to replicate the data in the cloud to make sure it’s available anywhere you go, and a key feature of CouchDB is its bidirectional replication, through which “Ground Computing” can be set up. That is, you have your desktop app and you can be on- or offline, and then when you link up to the network, it automatically replicates the data to the cloud -e.g. to a backup CouchDB server- and then that becomes available wherever you go.

A good example of CouchDB implementation is Ubuntu One. Officially introduced in release 9.10, Ubuntu One allows users to sync their data to the Ubuntu cloud, getting 2 GB of free storage (more space as a paid alternative). There they can automatically synchronize Tomboy data, Evolution contacts, and one special “magic” directory that get synced on the fly upon any changes in any machine that is included in the sync list.

Cloudant’s specific efforts with CouchDB are being focused on the distribution layer, that is taking CouchDB from a single-server solution and distributing it across multiple servers, thus making it cloud-ready. Please note that Cloudant’s development is NOT open sourced yet. Comparing it to Canonical’s Ubuntu One, we see a tendency to keep the server side of the cloud as proprietary code.

If you are interested in NoSQL DBs, use this Wikipedia entry as a starting point.

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: