¿Qué lenguajes de programación son mejores para un sitio web que puede escalar de 10k a 100k usuarios?

Esto es realmente una cuestión de arquitectura más que un lenguaje individual o una pila de tecnología. Hay una gran cantidad de tecnologías que son muy capaces de manejar usuarios de 100K, 1M o 10M, pero cada una de ellas se puede construir de tal manera que caigan a 10K o menos.

En lugar de buscar un lenguaje específico, lo que debe hacer es buscar a alguien que tenga experiencia con sistemas de arquitectura para escalar bien con el tiempo. Desea a alguien que conozca las trampas y los trucos involucrados cuando las cosas van de pequeñas a medianas a realmente grandes, y que pueda tomar decisiones inteligentes por adelantado en lugar de tener que volver a trabajar mucho código más adelante cuando sus usuarios estén enojados. que el servicio no funciona

Por supuesto, también puede tener otras necesidades, como la velocidad de desarrollo, la idoneidad para un entorno empresarial, la capacidad de encontrar una gran cantidad de desarrolladores calificados, el costo de las herramientas y el entorno, o el rendimiento absoluto. Esos son todos los temas para los cuales el idioma que elija puede ser muy importante, pero para escalar su punto de dolor será la experiencia arquitectónica y de escala del ingeniero, no el idioma que elija.

Esta pregunta no se trata de la elección del lenguaje de programación, sino de cómo comenzar a encontrar un desarrollador líder capaz para un nuevo proyecto.

Aquí hay una pista … el lenguaje de programación es casi completamente irrelevante para esta elección. Si logra encontrar un individuo verdaderamente talentoso que haya construido un sistema complejo antes, elija lo que le recomienden siempre y cuando sea un lenguaje de programación razonablemente utilizado para el que pueda encontrar otros desarrolladores. Su desarrollador debe tomar esta decisión, no usted.

Su elección del lenguaje de programación rara vez será un problema con respecto a la escalabilidad. Hay ciertos pros y contras que tiene cada lenguaje de programación y uno u otro podría ser una mejor opción en su circunstancia dependiendo de lo que esté buscando (velocidad de desarrollo, búsqueda de desarrolladores calificados, etc.). Pero el cuello de botella casi siempre será la arquitectura general y la base de datos, no el lenguaje de programación.

Como ya se señaló, no es el lenguaje lo que realmente importa para escalar un sitio web transaccional. En cambio, debe preocuparse por posibles cuellos de botella y tener un plan para identificarlos y resolverlos:

  1. Debe monitorear constantemente las variables clave (tiempos de respuesta, uso de conexión, uso de memoria, etc.) para identificar cuellos de botella tan pronto como aparezcan y tener suficiente tiempo para encontrar una solución.
  2. Su base de datos es clave: asegúrese de tener un buen DBA, que su modelo de datos esté correctamente normalizado / indexado, que sus informes no se ejecuten desde su base de datos transaccional, sino desde un datawarehouse denormalizado separado, que sus datos históricos se archiven regularmente y que usted tener suficientes recursos del sistema disponibles (RAM, espacio en disco) …
  3. La interacción entre la aplicación y la base de datos también debe optimizarse mediante la agrupación de conexiones, el almacenamiento en caché y la consulta eficiente de SQL
  4. Los recursos del servidor web / de aplicaciones (subprocesos, memoria) deben usarse de manera eficiente a través de buenas prácticas de codificación y poder escalar mediante la adición de más recursos si es necesario (memoria adicional, servidores adicionales a través del equilibrio de carga).

Creo que todo lo anterior se puede hacer en cualquier idioma con cualquier base de datos (para estar seguro, he usado principalmente java + tomcat + oracle , eso funciona con seguridad). Solo necesita saber qué buscar.

More Interesting

Si tomas un trabajo de desarrollador front-end, ¿puedes obtener un puesto completo de Rails o JavaScript algún día, o te encasillaría para hacer principalmente front-end a menos que hicieras un estudio sustancial?

Groovy (lenguaje de programación): ¿Cómo empiezo con esta aplicación web?

¿Qué tecnologías se utilizaron en el desarrollo de aplicaciones web en los años 90?

¿Cuáles son algunas buenas herramientas o aplicaciones para autores de no ficción?

Para el backend de una aplicación web, ¿a qué idioma recomendaría cambiar de PHP (o LAMP stack)?

¿Cuánto tiempo tarda la App Store en aprobar varios idiomas?

¿Qué tipo de aplicaciones (web o windows) se pueden automatizar utilizando herramientas RPA?

Creación de una aplicación web con todas las funciones utilizando un marco API y Javascript

¿Por qué algunas personas eligen usar Quora en lugar de escribir un blog?

¿Cuáles son los pros y los contras de las diferentes aplicaciones web de gestión / colaboración de proyectos para proyectos de ingeniería?

¿Cuál es la diferencia entre NodeJS y Ruby on Rails basado en experiencias del mundo real?

¿Cuáles son los pros y los contras de las aplicaciones nativas frente a las aplicaciones web?

Cómo construir una aplicación web simple que calcule el precio del platino en diferentes monedas y muestre un gráfico de los precios iniciales

¿Qué marco e idioma debo elegir para mi próximo proyecto?

¿Existe una aplicación que pueda escanear la camisa de esa manera y sabremos que están usando la camiseta que les dimos?