Bueno, no hay una respuesta directa aquí. Elija el idioma que desee y ejecútelo. Si comienzas a profundizar en las aplicaciones más grandes, encontrarás que son una combinación de un montón de lenguajes como Java, C ++, C #, Ruby, Python, JavaScript (y todos sus muchos sabores), etc.
Así que supongo que la verdadera pregunta que quiere que se responda es: una vez que escribo mi aplicación / sitio web, ¿cómo puedo ampliarla?
Comience preguntándose qué determina la escala de una aplicación que aloja localmente en su computadora. Su computadora solo puede manejarlo ejecutando la aplicación. Eso significa que es su computadora la que está limitando su escala. Bien, entonces compras una segunda computadora que puede servir a múltiples usuarios a la vez. Genial, ahora tienes un servidor.
- ¿Cuáles son las habilidades / tecnologías requeridas por un principiante completo para convertirse en un diseñador / investigador de UX?
- ¿Cuál es la tecnología detrás de la versión web de WhatsApp?
- ¿El motor de Bethesda Creation está completamente desactualizado?
- ¿Cuáles son los efectos potencialmente peligrosos de una singularidad tecnológica?
- ¿Cuál es el objetivo del podcast de TEA? ¿Qué lo diferenciará del sitio web y las cuentas de Instagram y Twitter de TEA? ¿Y pueden los seguidores / lectores de TEA enviar preguntas para ser respondidas en el podcast?
Pero ahora su aplicación ha crecido más allá de sus amigos, por lo que compra más computadoras para alojar su aplicación. Pero es realmente molesto tener que copiar nuevas versiones de su aplicación a cada computadora cada vez que hay una actualización. Entonces configura su computadora de desarrollo dedicada para enviar actualizaciones a cada una. Ahora tienes una granja de servidores.
Pero ahora tiene un problema, a veces una de sus computadoras falla, por lo que algunos de sus usuarios no pueden acceder a su aplicación hasta que la arregle. Para evitar esto, obtiene otra computadora, redirige todas las solicitudes de aplicaciones a ella y luego selecciona qué computadora manejará esa solicitud en función de la cantidad de recursos gratuitos que tienen disponibles sus computadoras. Ahora tienes un equilibrador de carga.
Pero espere, si alguien estuvo en una computadora un día, y luego se trasladó a otra, sus datos no están allí, todavía están en el disco de la computadora anterior. Entonces, ahora tiene que comprar algunas computadoras más con un montón de almacenamiento para alojar centralmente todos los datos. Ahora tienes una base de datos.
Oh, dispara, has crecido tanto que todas tus computadoras no pueden comunicarse entre sí a través de una red. Así que ahora tiene que comprar aún más computadoras con el único propósito de crear redes virtuales y dirigir el tráfico de red entre computadoras. Ahora tienes controladores de red.
¡Pero sigues creciendo! Y ahora ha aprendido la peor parte sobre el escalado: el hardware se rompe TODO EL TIEMPO. Las computadoras fallan, las unidades fallan, las fuentes de alimentación fallan, los interruptores de red fallan, etc. Así que ahora debe tomar todo lo que ha hecho y volver a hacerlo varias veces para crear redundancia local. También necesitará comprar más computadoras para manejar esta redundancia. Pero, ¿qué sucede si se produce un terremoto o se corta la electricidad en su ciudad? Tendrá que elegir un nuevo lugar, lejos, y volver a hacer todo esto. Ahora tienes redundancia geográfica.
Uf, está bien, creo que ahora podemos decir con seguridad que su aplicación puede manejar 100 millones de usuarios diarios. Enhorabuena, usted, señor, tiene una nube.
Su arquitecto de software (o más probablemente su equipo de arquitectos de software en este punto) tiene que descubrir cómo todas estas computadoras cumplen su función y comunicarse entre sí sin parecer. Honestamente, no importa qué idioma elijan, porque fundamentalmente, todo este sistema que ha construido no es más que computadoras individuales que ejecutan una sola copia de su aplicación. La escala proviene de la infraestructura física que construye alrededor de su aplicación y no de cómo escribe su aplicación.
Si todo esto parece increíblemente intimidante, tienes razón. El juego en la nube tiene una barrera de entrada asombrosa, y solo quedan unos pocos jugadores. Pero tiene suerte, porque estas empresas se encargarán de esta escala automáticamente. Amazon Web Services, Microsoft Azure, Google Cloud y algunos otros como IBM y Oracle tienen ofertas para encargarse de todo lo que describí anteriormente para usted.
Espero que ayude.