Open Source CouchDB Heads to the Cloud

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, which provides an alternative to the relational datastores used by RDBMS vendors -- and which is banking on cloud-based deployment options to sweeten its appeal to users.

CouchDB is an open source project run by the Apache Software Foundation but with some commercial backing from startup Cloudant, which provides 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.

"There is no one company that owns CouchDB -- it's an open source Apache project that is worked on by a large community," Cloudant CEO Alan Hoffman told InternetNews.com. "We provide commercial support for CouchDB, we host CouchDB and we have our own flavor that we use internally to beef up some of the capabilities. But we also work within the community to provide development for CouchDB, as we want to push the project along."

Hoffman noted that Cloudant's staff includes multiple contributors to the CouchDB project, such as its CTO, Adam Kocoloski.

CouchDB offers a different architectural approach for databases than a SQL-based RDBMS. Hoffman explained that in a relational database, you take your data -- which for a Web application can be anything ranging from users to blog posts -- and you split it up and map those data objects into a set of rows and columns.

"The alternative way to do it is instead of mapping onto rows and tables, you encapsulate all of the data into a single entity, which in CouchDB is called the document," Hoffman said. "It's artificial to map data objects into a table. It's more organic to keep those as data objects."

The CouchDB approach also offers an alternative to the notion that developers require a Web application stack, including middleware, to be able to deliver applications.

"For building many lightweight applications, you can basically do the whole thing right out of CouchDB," Hoffman said. "There is an application-building philosophy called the 'CouchDB app,' which is where you take JavaScript, HTML and CSS and you 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."

Related Articles

Hoffman added that CouchDB includes its own built-in Web server. Still, he noted that CouchDB can work with modern Web frameworks, giving users another option of how to deploy it.

As to why the cloud makes sense for CouchDB, Hoffman noted that he has seen people looking to increase their data volumes and leverage the elastic compute capabilities of the cloud. While cloud computing is often about serving Web-based applications, it can also be leveraged, in CloudDB's case, to support desktop applications as well.

"There is also a push towards desktop apps, and half of that is about taking those apps and replicating the data to the cloud to make sure it's available anywhere you go," Hoffman said.

He added that a key feature of CouchDB is its bidirectional replication, through which developers can setup what's known as "Ground Computing."

"Ground Computing is where 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 -- to a backup CouchDB server -- and then that becomes available wherever you go," Hoffman said. "We think it's a powerful idea and the future of the desktop app."

In terms of Cloudant's specific efforts with CouchDB, Hoffman noted that his company is focusing on the distribution layer.

"Our main efforts have been in the distribution layer, meaning the ability to take CouchDB from a single-server solution and spread it across multiple servers and making it cloud-ready," Hoffman said.

However, despite CouchDB's open source origins, not everything that Cloudant is developing as part of its CouchDB efforts is currently open source.

"A lot of what we're building we plan to release back to the CouchDB community, but right now, we're still testing and developing," Hoffman said. "We will probably be releasing the distribution layer at some point. There are some things we will keep internal to Cloudant, but we do give back a lot to the community."

He added that Cloudant has contributed multiple patches and added features back to the core Apache CouchDB project.

"We're big fans of open source," Hoffman said. "It's important and we do want to make sure we help grow the developer community and have a lot of people working on it."