Hace unas semanas comenzaron a aparecer ciertas críticas hacia Heroku debido a cambios en la política del enrutado de las peticiones a los dynos.

Antes de este cambio en la política, cuando una petición llegaba a una aplicación, esta se dirigía en primer lugar a alguno de los dynos que estuvieran libres. A partir del este cambio en la política de enrutado, el dyno al que se dirije la petición se selecciona de manera aleatoria, por lo que hay una bajada de rendimiento importante, sobretodo en aplicaciones que usen muchos dynos.

 

Si por ejemplo, tenemos una aplicación que tiene 100 dynos, de los cuales 99 están ocupados, y llega una petición el funcionamiento es el que sigue.

  • Con el enrutado antiguo, la petición se dirige al dyno libre y se atiende instantáneamente.
  • Con el enrutado nuevo el dyno al que se dirige la petición se selecciona de manera aleatoria, con lo que tenemos un 99% de posibilidades de que la petición se dirija a un dyno ocupado y ésta sea encolada.

Esto es un ejemplo muy básico pero puede servir para hacernos a la idea.

 

Una de las razones que esgrimía Heroku para este cambio en la política, es que ahora se aceptaban muchos más frameworks en la plataforma, y que con este cambio era más sencillo gestionar las colas de peticiones. El problema es que las aplicaciones Rails sólo aceptaban una petición, con lo que quien más salía perdiendo con este cambio era el framework que fue el principal y único de Heroku durante mucho tiempo.

 

Parece ser que la política de enrutado no va a volver a ser la que era, pero como compensación, Heroku ha comunicado que a partir de ahora habilitará la posibilidad de utilizar Unicorn para servir las aplicaciones Rails. Unicorn es un servidor de aplicaciones que si admite peticiones concurrentes, con lo que se mitiga en cierto modo el problema de la política de enrutado.

 

En el blog de Heroku han escrito un post sobre cómo configurar nuestra aplicación para que utilice Unicorn.

 

Referencias:

Heroku

Unicorn

Heroku Blog - Adding Concurrency to Rails Apps with Unicorn

Publicado por Rubén el 27/02/2013 a las 11:35



Publicar comentario: