Heroku is offering a new cloud database service that can start out as a single database and scale to meet demand by activating additional read-only instances of itself. The feature will help ensure that a website application served by a database can meet visitor demand far beyond levels that would otherwise tie up the database.
Much of the activity on websites involves catalog lookups, product reviews and comparisons, etc. Secondary, or "follower," database instances are capable of handling such traffic until it leads to a transaction or other event that must be precisely preserved. When that happens, control is handed off by the follower to the primary database system, which executes the transaction and captures the results. Meanwhile, hundreds or thousands of other site visitors are also being served with content without slowing down production transactions.
The secondary database instances are called "followers" of the original database system because they are updated asynchronously, and thus may lag the primary database by a few hundredths of a second up to "a few seconds," according to Craig Kerstiens, product manager for database-as-a-service at Heroku. The solution most website developers currently opt for is to scale up the primary database system with bigger I/O pipes and bigger server hardware.
[ Want to learn more about Heroku as a developers' platform? See Salesforce.com Makes Friends With CIOs. ]
Heroku, a unit of Salesforce.com since late 2010, has been beta-testing the "follow" feature for the past six months. During that period, 3,000 "follower" database instances have been created and tested. The feature will be added to Heroku's standard database service on Thursday.
Developers of database applications can produce such a system for Oracle, MySQL, and other database systems on their own "with a lot of effort," according to Kerstiens. What Heroku is doing, he explained, is offering it as a function that can be added to a production database system by clicking the "Follow" button in the database service's management dashboard.
Heroku already enjoys a large following of developers who use its Ruby and Java tools, which are included in its platform-as-a-service offering. Heroku's database service is based on the open source code system PostgreSQL 9.1, also known as Postgres. With 2.4 million applications, Heroku's database is the largest Postgres-based service in the world. Over its three-year life span, Kerstiens said in an interview, it's safely committed 19 billion transactions.
The PostgreSQL open source project has been noted for its adherence to the principles of relational database, including two-phase commit and strict compliance (exceeding even that of the most popular open source system, MySQL) with SQL operations.
Heroku has offered a database system-as-a-service to developers for three years, but a year ago it pried Postgres out of its platform. That move made Postgres available for applications running as production systems and moved Heroku a step closer to a DevOps platform, where applications produced on its platform can also be tended by developers as they run in production.
The "follow" feature is attractive in such a setting because it gives a small team of developers a scale-out capability for the applications they develop. Running additional instances of the Postgres database on additional x86 servers is a simpler solution than moving the primary database to a much larger server to handle more traffic.
At the same time, Heroku offers developers an affordable way to try out the "follow" feature: The database service is available free to developers. For production systems, it's available with 400 MB of cache for $50/month, or with 800 MB of cache for $100/month.
As part of Salesforce since December 2010, Heroku remains an independent business unit outside the Salesforce.com data center where its CRM applications run. Rather, Heroku runs atop Amazon Web Services' EC2 as a development and deployment platform.
Salesforce's executive VP of technology Parker Harris has said applications developed in each respective environment may one day be able to work together. Salesforce.com may opt to allow database applications originated on Heroku to set interfaces to interact with Force.com applications, or better yet, run in the Force.com environment in a separate Heroku layer. Parker suggested that one application could issue calls to the other, even though each originates in a separate and distinct environment, and CRM could suddenly be part of a much broader set of business processes.
Independent developers prefer working in Ruby, Node.js, and Java over Salesforce's Apex and Visual Force languages. But the increasing richness of the Heroku platform-as-a-service, now offering "follower" database systems, makes it increasingly likely the two will work more closely together in the near future.
Download the new issue of Must Reads, a compendium of our best recent coverage on IT-as-a-service. It includes articles on cloud computing myths, how to build an IT service catalog, security problems, and more. (Free registration required.)