Es erróneo decir que el marco es escalable o no, más bien la arquitectura del sistema del servidor.
Ruby on Rails es un gran marco para las startups, pero Twitter cambió a Scala y aparecieron muchas discusiones sobre “Rails no es escalable”.
Tenemos dos formas de escalar aplicaciones Rails: escalabilidad vertical y horizontal.
- ¿Cuál es el mercado actual para PHP y MYSQL?
- ¿Vale la pena aprender Rails en 2017? ¿O hay algo aparte de Node.js es una pérdida de tiempo?
- ¿Cuáles son las sugerencias para más bootcamps de codificación en línea como Thinkful, Bloc, etc.?
- ¿Cuáles son los mejores creadores de sitios web Drag & Drop de código abierto?
- ¿Python o HTML es más fácil?
La escalabilidad vertical significa agregar más RAM o actualizar el procesador del servidor para darle más potencia a la computadora del servidor, pero solo tiene un efecto positivo en la etapa inicial. En algún momento, aumentar el tráfico hará que la actualización del procesador sea técnicamente imposible.
La escalabilidad horizontal significa convertir la arquitectura de servidor único de su aplicación a una arquitectura de tres niveles, donde el servidor y el equilibrador de carga (Nginx), las instancias de la aplicación Rails y las instancias de la base de datos se encuentran en diferentes servidores. De tal manera, asignamos cargas iguales entre máquinas.
Nginx se implementa en una sola máquina para servir como equilibrador de carga y proxy inverso, y para distribuir la carga entre varios servidores. Este servidor envía solicitudes una por una a la primera y segunda máquinas por turno.
Las instancias de la aplicación Rails deben ejecutarse por separado del servidor Nginx. Hay muchos servidores de aplicaciones para la comunicación entre la aplicación Rails y Nginx: Unicorn, Phusion Passenger y Puma. Los servidores de aplicaciones son responsables de la entrada-salida, lo que permite que la aplicación Rails se encargue de las solicitudes de los usuarios.
Las instancias de la base de datos también deben separarse de otros servidores para crear una arquitectura tolerante a fallas: cuando una base de datos recibe demasiadas solicitudes, otras instancias de la base de datos en el nivel de datos pueden acomodar esta carga.
También quiero agregar que debe conocer las características de su aplicación particular para superar limitaciones específicas. Shopify dijo hace varios años: “No hay ninguna fórmula mágica para escalar una aplicación Rails”.
Para obtener más información sobre este tema, puede leer el artículo “¿Qué pasa si le digo que Ruby on Rails es escalable” en el blog de RubyGarage https://rubygarage.org/blog/ruby …