¿Qué pila de tecnología se debe usar para una aplicación web escalable?

Para responder a su pregunta, me centraría en la ESCALABILIDAD, que es el factor que le preocupa más.

Supongo que está dispuesto a aprender cualquier pila de tecnología que eventualmente considere la mejor de todas las respuestas colectivas que obtendría en quora. (Eso si no sabes cómo usarlo, por supuesto).

Volviendo a tu pregunta:

  1. tecnología del lado del cliente: recomendaría reaccionar js como mi primera opción. Si no es por nada más, sino por el simple hecho de que reaccionar js es súper rápido (gracias a su ingeniosidad de dom virtual. Lea: Los beneficios reales del DOM virtual en React.js) y, por supuesto, su escalabilidad. Después de haber sido utilizado en la producción por las principales compañías como Facebook, WhatsApp e Instagram, no creo que deba haber preguntas sobre cuán escalable es la reacción de js, ni su eficiencia en este tema. Angular 4 es un contendiente notable, digno de mencionar. Aunque Vue.js está ganando terreno y quizás sea el más fácil de aprender de los tres, la única razón por la que debe mantenerse alejado es que es un proyecto de un solo hombre. A diferencia de React js, que cuenta con el respaldo de Facebook y Angular con el respaldo de Google, Vue.js no cuenta con dicho respaldo ni seguridad financiera.
  2. Base de datos: Mongo DB. En general, las bases de datos NOSQL son más escalables que las bases de datos SQL. Además, Mongo DB viene con una ventaja adicional de ser consultado con Javascript. Soy uno de esos desarrolladores que abogan por una aplicación de un solo idioma. Esta publicación mediana sobre javascript isomófico debería decirle mucho más sobre este tema: por qué todo el mundo habla sobre JavaScript isomorfo / universal y por qué es importante. Entonces, si conoce muy bien su Javascript, no hay necesidad de aprender SQL para consultar bases de datos como MYSQL. Esto también debería ser una ventaja si necesita aprender cualquier pila de tecnología antes de construir su proyecto. Debe saber que todo lo que tendría que aprender ahora, para convertirse en un desarrollador web fullstack es Javascript. Para obtener más información si ya se siente entusiasmado con esto, lea: Isomorphic JavaScript: el futuro del desarrollo de aplicaciones web
  3. API: Rest API es el estándar para aplicaciones web. Entonces es la elección obvia.
  4. Sí, ve a la nube. Pero mientras lo haces; considere ir “SIN SERVIDOR”. ¿Has oído hablar de eso? Aquí hay un fragmento de la informática sin servidor: Amazon Web Services: “La informática sin servidor le permite crear y ejecutar aplicaciones y servicios sin pensar en servidores. Las aplicaciones sin servidor no requieren que aprovisione, escale y administre ningún servidor. Puede compilarlos para prácticamente cualquier tipo de aplicación o servicio de back-end, y todo lo necesario para ejecutar y escalar su aplicación con alta disponibilidad se maneja por usted.

La creación de aplicaciones sin servidor significa que sus desarrolladores pueden centrarse en su producto principal en lugar de preocuparse por la administración y operación de servidores o tiempos de ejecución, ya sea en la nube o en las instalaciones. Esta reducción de gastos generales permite a los desarrolladores recuperar el tiempo y la energía que pueden gastar en el desarrollo de excelentes productos que escalen y que sean confiables “.

También puede usar cualquiera de los siguientes: Amazon EC2, Digital Ocean o Heroku.

5. Aunque puede almacenar sus imágenes en su servidor, le recomiendo hacerlo con S3. Este artículo le muestra cómo hacer esto usando Nodo js: Cargar y obtener imágenes de Amazon S3 con Nodo JS. Es posible que desee utilizar CloudFront con s3 para obtener la mejor velocidad.

6. Y esto me lleva a la pieza final de la pila de tecnología. Nodo js. Esto es lo que usaría para su backend (esto es lo que habla con el servidor). Node js es un entorno de tiempo de ejecución que le permite ejecutar y analizar código javascript fuera del navegador. Un buen marco de nodo js es express js.

Mientras usa Node js, puede estar seguro de que está trabajando con la tecnología con el ecosistema más grande del mundo. Esta publicación debería decirle mejor: cómo Node.js creó una comunidad de código abierto modelo

Todo en una pieza que estamos viendo, MERN Stack (Mongo DB, Express js, React js y Node js) Stack o MEAN Stack (Mongo DB, Express js, Angular 4 y Node js).

Espero que esto le ayude a obtener una visión general de lo que necesitaría para construir su sitio de redes sociales.

Si está buscando un lugar para aprender toda la tecnología mencionada anteriormente, un buen lugar es el campamento Free Code.

Opción 2: una buena alternativa a MERN stack y MEAN Stack es Meteor js. Si bien la pila MEAN o MERN lo haría nadar en la bondad de la aplicación de JavaScript Isomophic, Meteor js lleva esto un poco más allá. Meteor le ofrece, MEAN o MERN stack, además de muchas más ventajas de JavaScript, como su propia herramienta Construida como: gruñir o tragar, recargar el navegador y “mucho, mucho” más.

No hay mejor manera de comparar Meteor y The MEAN o MERN stack que este artículo. Por favor lea: Meteor.js vs. la pila MEAN

Si bien meteor viene con su propio marco del lado del cliente llamado blaze, puede reemplazarlo fácilmente con React o Angular. Que es lo que recomendaría. La gente de meteor no está empeñada en hacerte usar su propio marco frontend (blaze).

Si en este momento está aprendiendo javascript o recorriendo el camino para convertirse en un desarrollador completo de javascript, le animo a que aprenda meteor js y reaccione js.

Todos conocemos una vieja historia que dice que los muchachos de Ruby on Rails son los grandes del desarrollo web de back-end, meteor mete a Ruby on Rails en javascript del lado del servidor.

Actualmente, no hay nada que pueda hacer el trabajo más rápido que tener Meteor en su pila web (en mi opinión).

Aquí hay una lista de recursos para aprender meteor js: ericdouglas / Meteor-Learning. React se puede aprender de codecademy o Build with React JS, pero asegúrese de complementar sus habilidades con Learn React de los creadores de React Router.

Espero que esto ayude a limpiar el aire.

Saludos cordiales.

Para una aplicación web escalable déjame responder tu pregunta puntualmente

  1. Lado del cliente: – Angular 2 o ReactJs Lado del servidor: – NodeJs o Django
  2. Base de datos: – MongoDB
  3. Api: puede usar REST Api
  4. Sí. Puedes pagar Aws lambda o Ec2 o heroku
  5. Almacenará sus datos en los servidores que seleccione en el punto 4. Intenta mantener tus datos accesibles de forma remota.

Ahora, para una aplicación web escalable necesita usar la pila LAMP , porque:

Uso común: sitios web dinámicos y aplicaciones web.

  • Linux (sistema operativo)
  • Apache (servidor web)
  • MySQL o MariaDB (sistemas de gestión de bases de datos)
  • Perl, PHP o Python (lenguajes de script)

otras 5 pilas