Heroku Add-on System will make it possible for the Ruby developers to make use of Apache's open source CouchDB, a document database that comes in a commercially supported version from Cloudant; Mongo DB, a document database from MongoHQ. In addition, it will offer systems capable of storing the unstructured data frequently generated by web applications through the key-value store systems Membase from NorthScale, and open source code Redis. These systems can store, sort and perform operations on large quantities of unstructured data, unlike relational systems. Heroku will make their services available as a one-click add-on service to a developer's application.
Heroku's website says it is currently running 73,000 Ruby applications on Amazon's Elastic Compute Cloud. In its announcement July 20, it said thousands of these customers already use its add-on services for both relational and NoSQL database systems.
The San Francisco company was founded in 2007 to supply a programming and deployment platform for the popular scripting language, Ruby. The Ruby framework, Ruby on Rails, allows rapid application development where the framework provides standard underlying connectivity and plumbing to outside resources. Ruby on Rails is often used by social networking sites, such as Facebook and Digg, noted Adam Wiggins, co-founder of Heroku in the announcement.
By bringing NoSQL systems to Rails users, Heroku is giving developers another reason to rely on it as a deployment front end to EC2. The NoSQL systems run on clusters instead of single servers and can cope with a hardware failure. They scale-out horizontally as needed by adding more server instances, and they dispense with the more complicated parts of relational database operations, such as schema designs.
"NoSQL datastores are key enabling technologies for this new generation of web apps," said Byron Sebastian, CEO of Heroku. The NoSQL system designers strive to use data already in server memory rather than unloading from disk. They also make use of the Map/Reduce technique of retrieving data from a server's disk, then processing it on the same server instead of moving it around the cluster.
At the same time, the NoSQL systems are not as precise in the timing of their updates as relational systems and hence can't be used for transactions. They also can't do joins across tables, those sophisticated but time consuming operations that pull scattered information together into a new relationship. But NoSQL systems can respond more quickly to Web site visitors with relevant information and are often used in customer-facing systems that lead to revenue generation.
Heroku offers its customers a starter or "blossom" version of the open source relational database system, PostgreSQL, a multi-tenant, shared PostgreSQL system on a server cluster, and dedicated, high performance PostgreSQL systems.