February 15, 2013, 1:44 PM — Insufficient documentation on how to performance-tune a legacy Ruby on Rails stack led to a highly publicized complaint from one of the largest customers of Salesforce.com's Heroku PaaS (platform-as-a-service), Heroku has acknowledged.
As a result, Heroku pledged to improve documentation for its service.
"We failed to explain how our product works. We failed to help our customers scale. We failed our community at large," wrote Heroku General Manager Oren Teich, in a blog post. "I want to personally apologize, and commit to resolving this issue."
As organizations become more comfortable with cloud services and use them for ever-larger workloads, cloud providers such as Heroku must continue to learn how to accommodate these large jobs, as well as support their customers with new issues in scalability that may arise.
In a widely read blog item posted earlier this week, James Somers, an engineer from Internet service Rap Genius, charged that Heroku's Ruby on Rails service had degraded since the PaaS moved to a new setup for load balancing incoming requests among multiple servers.
Heroku previously used an intelligent load-balancing algorithm that would distribute incoming requests evenly among the servers (or "dynos" in Heroku parlance), but had changed to an algorithm that distributes work randomly to different dynos. Because the workload is not distributed as efficiently, Rap Genius would have to procure 50 times as many servers to get the same performance as it did with the previous load balancing scheme, Somers estimated.
As a result, Somers concluded that "Heroku is not appropriate for any Rails app that's more than a toy."
On Friday, Teich responded, admitting that the Ruby on Rails software stack that Rap Genius used, called Bamboo, has suffered in performance.
"In short, Ruby on Rails apps running on Bamboo have experienced a degradation in performance over the past [three] years as we have scaled," he wrote.
Although not mentioned by Teich, Heroku has since moved to a newer default Ruby on Rails stack, Cedar. According to at least one other Heroku customer, the service has been encouraging its customers to move from Bamboo to Cedar.
Heroku plans to post an in-depth technical review that caused the issues with Bamboo, as well as improve documentation for the service.
For others, Rap Genius' experience served as a lesson in picking the right cloud service provider.