¿Sería difícil si creara una aplicación web con un marco, en caso de escalabilidad?

Una excelente pregunta de diseño:

De hecho, no estoy de acuerdo con la mayoría de las respuestas de ” No, no será difícil de cambiar ” en el contexto de la escalabilidad. La razón por la que no estoy de acuerdo es que si usa algún marco, ha creado una dependencia en ese marco . Dicho esto, estoy de acuerdo con la evaluación de que, en general, Frameworks le ahorra mucho tiempo de desarrollo . El marco de Laravel es un marco sólido.

Sin embargo, mi metodología ha sido utilizar Slim Framework como una API RESTful liviana para el back-end de lógica de negocios de PHP. Para el front-end he estado usando Ember, Angular o Electron. Esta es mi preferencia, ya que Laravel es demasiado pesado para lo que generalmente me asignan.

Permítanme aclarar que NO ESTOY APROVECHANDO Laravel , solo por mis métodos de diseño tiene una huella demasiado pesada para mis necesidades. Puede ser justo lo que necesita para su proyecto. Depende de lo que necesite lograr, sus habilidades de codificación front-end y back-end (Ember, Angular tienen curvas de aprendizaje muy pronunciadas, por ejemplo), y el alcance general y la evolución y crecimiento esperados de su aplicación.

Te deseo lo mejor con tu proyecto.

no es tan dificil. en términos de escala, intente separar su servidor en lo siguiente

servidor db (1 o 2 o más servidores)
servidor de caché (1 o 2 o más servidores)
servidor de archivos (1 servidor)
servidor de aplicaciones (1 o 2 o más servidores)

su aplicación, caché, servidor db puede tener múltiples servidores para cada uno.
en cuanto a su servidor de archivos, use amazon s3.

use los servicios web de Amazon para todo esto.

He usado estas tecnologías en StocksPH – Monitoreo en tiempo real de la Bolsa de Valores de Filipinas

y estaba ejecutando el sitio web como esperaba.

Respuesta corta: no .

Respuesta más larga: el marco generalmente no es un cuello de botella, pero la mala optimización y las restricciones arquitectónicas sí lo son. Piense qué partes de su aplicación pueden ser “lentas” y requerirán escala / optimización, y desarrolle con la debida consideración. Algún tiempo después de que inicie su aplicación en “modo de producción”, obtendrá una mejor comprensión de los cuellos de botella y podrá repensar su estrategia de desarrollo para satisfacer mejor sus necesidades.

La optimización requiere tener estadísticas de casos de uso reales, por lo que no debe dedicar demasiado tiempo hasta que comprenda los posibles beneficios. Lo mismo con el escalado (en primer lugar, horizontal): debe pensarse desde las primeras etapas de desarrollo, pero una vez más, no se preocupe demasiado por eso (obtener máquinas adicionales, CPU, RAM, etc.) hasta que haya una necesidad real.

No. He tratado con aplicaciones de alta capacidad con varios frameworks (yii, Laravel y Symfony) y todas escalan bien. Los cuellos de botella generalmente se basan en db, aunque los marcos agregan algo de sobrecarga a la memoria debido a todo el código que se llama.

Por lo general, se maneja mejor al proporcionar una capa de almacenamiento en caché para aumentar el rendimiento al eliminar la base de datos.

La escalabilidad tiene poco que ver con su elección de lenguaje de programación o marco de elección.

Si sientes que serás más productivo con Laravel, ve con eso; solo tenga en cuenta que tiene poca relación con la escala de la aplicación.

No estoy 100% claro sobre lo que quiere decir con la dificultad de cambiarlo o alterarlo en el futuro, pero los marcos generalmente están diseñados teniendo en cuenta la facilidad de mantenimiento, por lo que no es un problema. Si quiere decir que puede transferir fácilmente su aplicación Laravel a otro marco o algo por el estilo, no, eso no se puede hacer, al menos no simplemente. Probablemente sea mejor construir desde cero de nuevo.

Laravel no obstaculizará tu capacidad de escalar si sabes lo que estás haciendo. Pero probablemente no sabrá qué optimizar hasta que llegue allí. Como otros han dicho, observe de cerca la capa db. Haga las cosas obvias que son compatibles de inmediato, CDN, sesiones de base de datos, flujos de trabajo de activos de front-end de minifiy … confíe en la carga ansiosa, etc.

Soy mi experiencia, generalmente es la parte frontal que debe ajustarse antes que nada … entonces las consultas lentas de db.

Un marco básico bueno, estable, establecido le ahorrará tiempo.

Puede optimizar el entorno si algo se ralentiza o no se escala bien por otros motivos.

Mi experiencia es que las consultas SQL se atormentan la mayor parte del tiempo.

Lo básico con el desarrollo, o la innovación, es construir el prototipo primero. Crea la versión beta con lo que tienes.

Si puede hacerlo con un marco, hágalo. Una vez que tenga un equipo de desarrolladores que pueda idear un lenguaje más escalable de acuerdo con sus preferencias, entonces puede hacerlo.

“Es mejor construir su idea con lo que tiene, para que pueda mostrar lo que obtendrá”. – Chizom Echehieuka

Así que adelante y use ese marco si ya sabe cómo usarlo. El resto se alineará con el paso del tiempo.