L'absence de documentation adéquate pour régler la performance d'une pile Ruby on Rails a suscité des critiques très médiatisées de la part de l'un des plus gros clients du PaaS Heroku de Salesforce.com. Du coup, Heroku s'est engagé à améliorer la documentation pour l'usage de son service. « Nous n'avons pas su expliquer comment fonctionnait notre produit. Nous n'avons pas su aider nos clients à réaliser leur mise à l'échelle. Nous avons déçu notre communauté », a plaidé le directeur général d'Heroku, Oren Teich, dans un blog. Ajoutant : « Je tiens à m'excuser personnellement, et je m'engage à résoudre ce problème ».

Alors que les entreprises se sentent plus à l'aise avec les services cloud et qu'elles se mettent à les utiliser pour y traiter des charges de travail toujours plus volumineuses, les fournisseurs de cloud comme Heroku doivent continuer à apprendre à s'adapter à l'augmentation des charges de travail. Ils doivent aussi soutenir leurs clients et les aider à faire face aux nouveaux enjeux liés à l'évolutivité. Dans un article posté la semaine dernière dans un blog très suivi, James Somers, ingénieur du service Internet Rap Genius, se plaint de la mauvaise qualité de Ruby on Rails chez Heroku depuis que le PaaS a modifié sa façon de traiter les requêtes entrantes pour gérer l'équilibrage de charge entre plusieurs serveurs.

Distribution différente du travail 

L'algorithme intelligent utilisé auparavant par Heroku pour gérer l'équilibrage de charge redistribuait les requêtes entrantes uniformément entre les serveurs (ou «dynos» dans le jargon de Heroku). Mais le service a adopté un nouvel algorithme qui distribue le travail aléatoirement aux différents dynos. Selon James Somers, la charge de travail n'est pas répartie de manière aussi efficace, si bien que Rap Genius a dû recourir à 50 fois plus de serveurs pour obtenir les mêmes performances. Et, de l'avis de l'ingénieur, « Heroku n'est pas adapté pour les applications Rails qui sont autre chose que des gadgets ».

Vendredi, Oren Teich a admis que la pile Ruby on Rails Bamboo utilisée par Rap Genius avait souffert d'un manque de performance. «  En bref, au cours des trois dernières années, la performance des applications Ruby on Rails tournant sur Bamboo s'est dégradée », a-t-il reconnu. Ce que celui-ci a omis de mentionner, c'est que, dans l'intervalle, Heroku a adopté une nouvelle pile standard Ruby on Rails, du nom de Cedar. Selon au moins un autre client de Heroku, le service a incité ses clients à passer de Bamboo à Cedar. Le service doit réaliser une étude technique approfondie pour évaluer les problèmes rencontrés avec Bamboo, et a promis de fournir une documentation plus détaillée pour son service.

Des clients sont partis ailleurs 

Pour d'autres clients, l'expérience de Rap Genius a servi de leçon, les incitant à chercher un fournisseur de service cloud plus approprié. « Je pense toujours que Heroku est le meilleur fournisseur de PaaS pour débuter facilement, mais il est clair que ceux dont le trafic Rails est important, se tourneront plutôt vers un service IaaS qui permet plus de contrôle sur l'évolutivité et le coût », a écrit dans un courriel Andrew Glover, CTO de App47, une entreprise qui vend du service de management d'applications mobiles pour l'entreprise. D'autres estiment que Rap Genius aurait du chercher un fournisseur plus adapté à ses besoins. L'observateur et vice-président de 10gen, Matt Asay, critique la réaction de Rap Genius. « Sérieusement, que demande vraiment Rap Genius ? Est-ce que cette agitation lui a permis de résoudre son problème ? Il existe une solution facile : payer pour un autre service », a écrit le CTO sur Twitter.

Heroku est un des nombreux fournisseurs de  PaaS sur le marché, au même titre que Google, CloudBees et Engine Yard. Celui-ci fournit une pile logicielle hébergée pour faire tourner des applications en ligne. À l'origine, Heroku proposait Ruby on Rails en service hébergé, mais a étendu son offre à d'autres technologies dont Node.js, Clojure, Java, Python et Scala.