Usaría AngularJS o Ember.js en el front-end, que consumirá puntos finales API (middleware). Elegiría uno de estos porque están listos para la producción y están bien respaldados. Los desplegaría usando una aplicación simple que sirve la página HTML inicial desde donde se inicia el Javascript.
Para el middleware, usaría Python o Go. Tengo mucha experiencia escribiendo API en Python, así que me siento más cómodo con él. También estoy familiarizado con Go, que tiene un gran modelo de simultaneidad para la escalabilidad, pero pierde muchas cosas buenas sobre la programación orientada a objetos, por lo que determinaría la mejor herramienta para eso. Es probable que los ejecute en contenedores Docker para escalar fácilmente agregando / eliminando contenedores según sea necesario para los niveles de tráfico.
Es probable que mi middleware consuma una capa API adicional (back-end) que lee y escribe en una o más bases de datos. Este servicio sería lo suficientemente inteligente como para saber que las operaciones de escritura deben ir a una base de datos maestra y que la mayoría de las operaciones de lectura podrían realizarse desde una base de datos esclava de solo lectura, suponiendo que fuera una base de datos relacional. Si se tratara de una base de datos noSQL, imagino que este servicio necesitaría conocer todos los hosts en ese clúster y consultarlos adecuadamente. También desplegaría este servicio en contenedores Docker para poder agregar más capacidad según sea necesario. Es probable que también los escriba en Go o Python por concurrencia y familiaridad.
- ¿Es cierto que los desarrolladores frontend son fácilmente reemplazables y menos valiosos que los desarrolladores backend?
- ¿Qué lenguaje de programación ha sido afectado por Node.js? ¿Es PHP o algún otro lenguaje de fondo?
- ¿Qué necesito saber sobre el desarrollo de back-end para admitir un nuevo inicio?
- ¿Puedes explicar en términos simples el back-end de aplicaciones como Facebook, Instagram o Snapchat?
- ¿Qué es diferente entre un desarrollador front y back end? ¿Estos términos se refieren tanto al desarrollo web como al desarrollo de software?
Es probable que los sistemas de bases de datos se ejecuten en algo muy cercano al “metal desnudo” en los servidores, tan optimizado como sea posible (y tan práctico).