Platform-as-a-Service provider Heroku is expanding its horizons by offering an on-demand version of the PostgreSQL Database-as-a-Service. The new service, aptly called Heroku Postgres, is a commercial version of what Heroku has been providing to its own developers for years, only it’s now available to all developers regardless where they host their applications. It’s a pretty bold move for Heroku to offer a database service, but it also makes perfect sense.
Like many technology companies, Heroku has had to tweak open-source software — Postgres, in this case — to fit its unique needs. Unlike many other companies like Facebook and Google, however, Heroku is already in the business of selling an application Platform-as-a-Service. If it thinks its own unique brand and delivery model for Postgres is strong enough to stand on its own without the rest of the PaaS components, then it might as well offer it to the world.
“When we started the company, we thought of this database service being a whole business that someone else should start,” Heroku Co-Founder James Lindenbaum told me. When no one came along with a better offering, Heroku just kept working on its Postgres service and eventually decided it would be valuable to a broad audience who, for one reason or another, can’t utilize the entire Heroku platform.
Heroku Postgres comes in six plan options, starting at $200 a month and reaching $6,400 a month. The service is billed by the second — not the hour, like many cloud computing services — and Heroku is adamant about its reliability and security. In the blog post announcing the new service, product manager Matt Soldo writes, “Heroku Postgres has successfully and safely stored 19 billion customer transactions, and another 400 million transactions are processed every day.”
He also notes a new feature in Heroku’s service, called Continuous Protection, designed to ensure customers never lose their data:
[Continuous Protection] is a set of technologies designed to prevent any kind of data loss even in the face of catastrophic failures. Taking advantage of PostgreSQL’s WAL (write-ahead-log of each change to the database’s data or schema), Heroku Postgres creates multiple, geographically distributed copies of all data changes as they are written. These copies are constantly checked for consistency and corruption. If a meteor were to wipe out the each coast, you won’t lose your data.
Heroku also is playing up the pure-play, open-source nature of its offering: “We are committed to running community PostgreSQL ‘off-the-shelf’ – unforked and unmodified,” Soldo wrote. During a phone call, he explained to me that Heroku chose Postgres in the first place because it “is owned by no one” (unlike MySQL) and because it’s “exceedingly mature in terms of its durability and reliability.”
Certainly, Heroku parent company Salesforce.com isn’t about to complain about Heroku doing something crazy such as trying to sell a Database-as-a-Service. Salesforce.com launched its own database service, called Database.com, shortly before buying Heroku late last year. However, whereas Lindenbaum says Database.com is ideal for applications that want to tie into the Salesforce.com platform and utilize certain management features, Heroku Postgres targets all modern web applications that rely on a relational database. Heroku has already proven quite popular among various types of programmers, ranging from Facebook developers to enterprise developers.
Heroku joins a number of other companies offering relational databases as a cloud service, including Amazon (Relational Database Service), Microsoft (SQL Azure) and Xeround. Google also has its Google Cloud SQL offering, although it’s currently limited to App Engine applications.