What does Heroku sell?

Stop Heroku

Heroku is a multi-language cloud application platform, that supposedly assists web application developers deploy, scale, and manage their apps without spending time and energy on servers or systems administration. Heroku claims its platform makes deploying, scaling, monitoring and maintaining apps simple, cost-effective and even enjoyable. Since its inception in 2007, over one million applications have been deployed to Heroku.
When an app is deployed to Heroku, it is actually deployed to many different "dynos" (virtualized Ubuntu servers) that live on Amazon Web Services. Heroku's sales-hook centers on its "dynos" ability to allegedly route web traffic intelligently. Heroku enticed its customers by claiming it uses "intelligent scaling" through which its router (Heroku's "routing mesh") decides which dyno should work on a page request from your site. The purpose of the routing mesh is to balance traffic intelligently between dynos to prevent bottlenecking. If at any given time all of the dynos are busy, then the router is supposed to queue the request and send it to the dyno that first becomes available or has the shortest queue.
This "intelligent routing" was marketed to compare and compete with the far-less efficient, random routing, which can easily backlog web traffic requests and hinder a website's development as its traffic increases.
The sales pitch was successfully aimed at companies with rapidly growing web traffic. The dynos' intelligent scaling was marketed to enable developers to work on the content of their sites instead of spending valuable time and resources on back server management.

Honesty in Sales

To gain customers' confidence, Heroku actively marketed that it could track and analyze how the dynos routed web traffic through its partner, New Relic's analytical tools. Heroku claims its Logplex provides an unprecedented level of visibility into an app's operation and that customers can see all logging output from every component of your application and each dyno. More egregiously, Heroku claims that its logging enables output from every piece of Heroku's platform as it deploys your application, manages your dynos, and handles HTTP requests.
In reality, Heroku hides the slower than advertised performance of its dynos by not even including an entry for the time spent in the in-dyno queue. Heroku's analytics partner, New Relic, also failed to track the time spent in the in-dyno queue.
Without informing its customers, Heroku redesigned its routing mesh so that requests would now be routed randomly rather than intelligently. This decision was not announced to Heroku's customers. Thus, the routing system is no longer intelligent and unused dynos only have some probability of seeing a request, which probability decreases as there are more dynos. As a result, under Heroku's random routing approach, you need substantially more dynos to achieve similar throughput if the requests were routed intelligently.


0 yorum: