Quiero crear una red social algo así como Instagram. ¿Qué pila de tecnología debo usar? ¿Qué es una breve lista de los pasos para construir una red social?

Entonces, si voy a crear un sitio de red social, lo haré de la siguiente manera:

1) Usaré python y django para hacer un modelo básico de todo el sitio web. (Instagram también usa Python Django)
2) Luego usaré mysql como db principal para almacenar datos inicialmente (instagram use postgres). Todos los datos y relaciones de los usuarios, pero no están muy relacionados con las claves externas (serán independientes).

3) Luego usaré postfix para hacer frente a todos los correos electrónicos que tengo que hacer.

4) Para hacer la interfaz de usuario, iré con un marco receptivo como bootstrap de twitter.

5) Como me siento cómodo con Golang, escribiré todas las cosas desagradables como apis y cosas de procesamiento de datos en Golang. Por lo tanto, python django solo se usará para obtener datos preprocesados ​​de db (nosql o sql) y también proporcionará entradas desde el navegador a los contenedores (golang / python) que procesarán los datos y los almacenarán.

6) Para la búsqueda, usaré la búsqueda elástica.

7) Confiaré en “docker” para configurar las cosas de modo que pueda expandirme a tantos servidores en minutos (implementación rápida).

8) Las cosas sofisticadas de la interfaz de usuario se realizarán utilizando angular js y D3 js.

9) Python ya tiene tantas bibliotecas para el aprendizaje automático y cosas similares, por lo que se usará allí. (como numpy, scipy, etc.)

10) Se usará una capa de memcache entre el navegador y la aplicación principal para servir datos rápidamente. Puede usar mcrouter de facebook para administrar y sincronizar todos sus servidores de memcache. Redis también se puede considerar dependiendo de las cosas que necesita mostrar. Si tiene que contar las vistas o mostrar los resultados en función de las vistas, entonces redis es una opción mucho mejor, ya que no tiene que escribir código para hacerlo por usted, redis tiene cosas incorporadas.

11) Aerospike se puede usar para publicar anuncios con una API escrita en golang (también puede usar cualquier otra capa sin sql, como redis, mongodb, couchbase, etc.)

Sé que la respuesta no está muy bien organizada y no cubre todo con mucho detalle, pero si quieres hacer algo específico solo deja comentarios, editaré la respuesta.

He respondido la pregunta similar aquí

Pila tecnológica detrás de Instagram:

La infraestructura de Instagram es bastante extensa. No es una sorpresa, si tiene en cuenta las cargas de tráfico y la demanda de ingeniería móvil rápida. Por lo tanto, React Native está en uso debido a la posibilidad de compartir código y la velocidad de iteración.

La pila de tecnología de Instagram también incluye las siguientes herramientas. Servicios web de Amazon para capacidades informáticas y equilibrio de carga: Amazon EC2, Route 53, S3, EBS . Además, Gunicorn como interfaz entre los servidores web y la aplicación.

Curiosamente, Instagram usa Ubuntu Linux 11.04 como su sistema operativo. Como servidor web de aplicaciones, implican el framework Django (en lenguaje Python), que se ejecuta en máquinas con alto CPU. Django es asistido por NGINX , un servidor HTTP y proxy inverso gratuito.

PostgreSQL es la solución óptima para el almacenamiento de datos. Instagram lo utiliza para acomodar todo, desde datos de usuario y fotos hasta metadatos, etiquetas, etc. Para más detalles, consulte la pila de tecnología de Instagram.

Pero si desea averiguar cuánto cuesta hacer una aplicación como Instagram, consulte este artículo:

¿Cuánto cuesta hacer una aplicación como Instagram?

Buena suerte !

Arquitectura de Instagram Escribí Tecnología y gestión :: Instagram, vea si esto ayuda 🙂