Cómo hacer que una aplicación web escalable sea un principiante

Como principiante, nunca tendrá que preocuparse por los problemas de escala. Si se enfoca en mantener la arquitectura y la codificación simple (como la normalización de tablas en mysql / postgresql, mantener las clases PHP simples, etc.), generalmente no debería tener problemas de escala. E incluso si lo ha hecho, cuando necesite más escalado para su aplicación web, será lo suficientemente rico como para contratar expertos en escalado para su proyecto.

Por ejemplo, Mark Zuckerberg nunca tuvo que enfrentar problemas de escala él mismo cuando desarrolló Facebook. Todo lo que hizo fue codificar una aplicación web de pequeño tamaño (sí, en cuanto a funcionalidad, FB no es demasiado grande, todo lo que hace es escalar a niveles astronómicos). Cuando FB comenzó a despegar, Zuckerberg era el dueño de una nueva y genial startup en Silicon Valley y pudo contratar a otros expertos en dominios que luego se encargaron de los problemas de escalado.

Todavía es útil saber acerca de los problemas asociados con el escalado, pero no es absolutamente necesario saberlo usted mismo si está trabajando en un equipo. Contrariamente a la opinión popular de muchas personas, los problemas de escala no están asociados con el rendimiento bruto del lenguaje de programación. Usar Java en lugar de PHP / Python no va a escalar mágicamente su aplicación (de lo contrario, no estaríamos ejecutando Quora y Reddit en código Python). De dónde provienen los cuellos de botella generalmente es el mal diseño de la base de datos (como tener demasiadas uniones) o las malas prácticas de codificación (niveles insanos de abstracción o el uso excesivo de un marco hinchado). Para escalar por encima de un cierto límite, también necesitará una cola de mensajes para actuar como un búfer entre su base de datos y la aplicación. La aplicación siempre obtiene un número astronómico de visitas (o solicitudes) en una aplicación popular (como Quora / Reddit). La base de datos por sí sola no puede manejar un volumen tan alto de solicitudes, por lo que necesita un buffer intermedio (aunque algunas bases de datos como postgresql tienen esta característica incorporada).

Aparte de eso, escalar es solo cuestión de escalar verticalmente (arrojando más recursos como CPU, RAM, etc. para sus máquinas que manejan la carga), o escalar horizontalmente (arrojando más cantidad de máquinas para manejar su carga).

More Interesting

Cómo usar IFTTT

¿Cuál es el mejor enfoque para la arquitectura de una aplicación de una sola página (cargando a través del servidor o el cliente)?

Escalabilidad: ¿Cómo encontrar cuellos de botella en su sitio web / producto web durante las pruebas?

¿Cómo se cargan las aplicaciones web de prueba con iframes con Team Foundation Server (TFS)?

¿Tiene que saber Razor para crear aplicaciones web modernas asp.net mvc?

¿Usaría Slim Framework para una aplicación PHP comercial, en lugar de una opción más tradicional como Laravel o Symfony?

¿Qué idiomas son los menos dolorosos de aprender y usar para hacer aplicaciones web por diversión y si querías un trabajo?

Buscando desarrolladores web talentosos con experiencia en redes sociales (principalmente Twitter y Quora). ¿Alguna sugerencia?

Cómo construir una aplicación web modelo de predicción con python 3.5

¿Cuáles son las mejores empresas de desarrollo de aplicaciones web a precios razonables?

En el desarrollo de software, ¿cuál es la diferencia entre las aplicaciones de escritorio y las aplicaciones web?

¿Las aplicaciones web siguen siendo una cosa en 2017?

¿Cómo debería un programador que nunca ha trabajado en una aplicación web comenzar a trabajar en una aplicación web?

¿Cuáles son algunas buenas ideas de aplicaciones web para un portafolio completo de desarrollo web Full Stack?

¿Cuál es la mejor herramienta de automatización de código abierto para pruebas funcionales de aplicaciones web?