Como desarrollador web, veo que esta pregunta hace mucho sobre cómo algo escala o X no es muy escalable. En última instancia, lo que la gente necesita darse cuenta es que puede hacer que casi cualquier cosa escale. Un idioma puede realizar más operaciones por segundo que otro, pero eso no es realmente escalabilidad, sino que es un problema.
En última instancia, todo lo que Ruby está haciendo es solicitar datos, y al mostrar html, puede haber algún masaje de datos allí, pero es principalmente una capa de vista. Lo que significa que puede colocar tantos servidores web detrás de un equilibrador de carga como desee. El equilibrador de carga es el verdadero héroe en la escalabilidad web, ya que “equilibra” la cantidad de tráfico que va a cada servidor, por lo que si sus servidores comienzan a estar abrumados, literalmente puede agregar más y ponerlos en la rotación de los equilibradores de carga.
Luego, detrás de los servidores Ruby, tiene cualquier tipo de bases de datos / caché, etc. También pueden replicarse y ampliarse. La replicación de datos es más compleja entre esos servidores de back-end pero, en última instancia, Ruby probablemente esté haciendo la menor cantidad de trabajo en toda esta Infraestructura.
- ¿Cómo automatizo la incorporación de un producto SaaS técnicamente complejo?
- Cómo cobrar los pagos a tiempo por los servicios de la agencia de viajes
- ¿Por qué algunas empresas SaaS de gestión de proyectos valoran sus ofertas en función de la cantidad de proyectos (BaseCamp), y algunas, en función de la cantidad de usuarios (Wrike, Clarizen), y algunas, en función de ambos (TaskPoint)?
- ¿Dónde puedo obtener una lista completa de categorías 'AAS' (como IaaS, PaaS, SaaS, DaaS, etc.)?
- ¿Cómo se calcula el abandono de una aplicación SAAS con múltiples niveles de precios?
En definitiva, lo que realmente quieres saber es. ¿Cómo se presenta la infraestructura de AirBnB y cómo diseñaron esa infraestructura para manejar grandes cantidades de solicitudes? Una pregunta que solo un ingeniero de AirBnB realmente puede responder.
Puede reemplazar la palabra Ruby con cualquier idioma y obtendrá una respuesta similar. La mayoría de las personas en el desarrollo web nunca tendrán que construir sistemas de carga equilibrada escalables que sirvan a millones de personas, por eso se ven tantos puntos de referencia estáticos de cómo el lenguaje X maneja miles de solicitudes, pero el lenguaje Y maneja millones.
En algún momento tendrá que agregar más servidores y luego se dará cuenta de que el idioma en el que escribió su aplicación fue probablemente una de las decisiones más fáciles que tomó, la infraestructura escalable es mucho más difícil.