Featured Database Articles

CouchDB Moves to the Cloud With Couchio

According to its motto, the underlying premise behind the open source CouchDB NoSQL database is about helping developers "relax" -- chiefly by providing them with a simple, powerful database alternative.

To better help achieve that goal, Couchio, a commercial entity led by the founder of the Apache CouchDB project, is now launching a cloud hosting project to make it easier to ramp up CouchDB projects.

The new Couchio hosting service is currently in beta, but it could hold the promise of helping to accelerate usage of CouchDB among developers, supporters said.

"Basically, we're trying to provide a super-low-friction way to enable people to get started with CouchDB hosting online," Damien Katz, creator of CouchDB, told InternetNews.com. "We're not focusing on large customers or high scalability. Primarily we're focusing on making it dead simple for people to have a CouchDB instance in the cloud."

Katz noted that with the Couchio hosting service, the plan is to get around some of the barriers that users have had in getting started with CouchDB. Among the issues cited by Katz is problems that developers may encounter when they try and build a CouchDB instance from source files.

Couchio will also be providing some additional components beyond just a core CouchDB instance.

"We'll be including Apache Lucene full-text indexing," Katz said. "That's an add-on for CouchDB that people usually have to download and build themselves."

Katz added that support will also be included for the GeoCouch geospatial indexer, which enables address information inside of a document to be added and interpreted. As an example of what the feature can do, a query could be written to find all the points within a certain distance, and GeoCouch can return the appropriate information.

From a management perspective, the Couchio hosting platform will leverage the existing Futon interface technology that CouchDB already provides.

"When you have your own CouchDB install, there is a Web-based admin panel that we call Futon," Katz said. "It's the same for users of the hosted service, with the exception that we lock down the settings so users can't destroy their CouchDB installations."

Moving forward, the plan is to add some additional capabilities to the Couchio hosting platform to further extend the capabilities of CouchDB. One of the items for which Katz sees a need is image-processing capabilities.

"So if people save images into a CouchDB database, they might want to generate a thumbnail," Katz said. "With PHP, there is something called ImageMagick that does those sorts of things, and we want to find a way to integrate that as well into CouchDB and our hosting service."

For now, Couchio's CouchDB service is using Amazon EC2 (Elastic Compute Cloud) as its delivery platform, but that's not likely to remain where the service is based. For one thing, Couchio will be moving off Amazon -- at some point in the future -- to reduce cost.

"We're just trying to validate the market demand, what the conversion cost will be and what the usage patterns will be like," Katz said. "There are a lot of unknowns about how our users will use the hosting service. So part of us being on Amazon is being able to iterate quickly."

He also noted that Couchio initially will lose money on the service, but he expects that once it has a better understanding of the usage model, that will change as well.

Focus on encouraging CouchDB apps

The Couchio service will not be without competitors, of course, with rivals like startup Cloudant also providing hosting for CouchDB databases. Katz said that there is some overlap between the Couchio and Cloudant services, but that his company's focus is on end-user developers that don't have huge datasets. Overall, though, Katz is interested in growing the usage model for CouchDB among developers.

"The real challenge is getting the developer community behind building CouchDB apps," Katz said. "We want people to see the power of using CouchDB without a middleware layer."

Key to this idea is the fact that CouchDB isn't just a database: Katz explained that CouchDB includes its own HTTP Web server and it can be used to store and serve HTML, CSS and JavaScript components.

"An application can entirely be delivered in CouchDB," Katz said. "So the challenge is developing the tools that make developing CouchDB apps really simple and educating developers as to why they want to do it in the first place."