Si tuviera que comenzar un sitio web con tanto tráfico como Facebook desde el día 1, ¿qué tecnologías utilizaría para hacerlo?

He construido a esta escala un par de veces diferentes: MFS Datanet, Genuity, Enron Broadband.

Construir para admitir a millones de usuarios es diferente a construir para admitir a millones de usuarios al mismo tiempo . Uno es un problema de datos, el otro es un problema de ancho de banda y computación.

Esto es completamente diferente a admitir un solo sitio web en WordPress.

Como señala Vinay Kumar, primero tiene que resolver todo un problema de programa y arquitectura de datos, para que sea posible escalar así. Si te equivocas, simplemente no sucederá. Podría continuar durante días sobre ese tema, pero se trata de hacer que su almacén de datos sea correcto, hacer que sus servidores web estén completamente sin estado (o lo más cerca posible) y obtener las comunicaciones y API entre procesos correctas.

La buena noticia es que NO vas a alcanzar esa escala * Día uno *. Vas a ir en rampa, y eso significa que tienes la oportunidad de equivocarte y aún así recuperarte. La mala noticia: puedes llegar muy rápido y las cosas se ponen feas si no estás preparado.

Mira esta lista de PSFK (ciertamente tiene un año pero sigue siendo instructiva)

¿Qué 15 startups alcanzaron a un millón de usuarios más rápido? – PSFK
Aquí está la lista:
1. Camino relanzado – 2 semanas
2. Aplicación Oink – 3 semanas
3. Instagram – 2.5 meses
4. Spotify- 5 meses
5. Fabuloso – 5 meses
6. Dropbox – 7 meses
7. Facebook – 10 meses
8. Cuadrangular – 13 meses
9. Pinterest – 20 meses
10. Gilt Groupe – 24 meses
11. Twitter – 24 meses
12 Tumblr – 24 meses
13. One Kings Lane (decoración del hogar) – 26 meses
14. Airbnb – 30 meses (estimado)
15. Kickstarter – 30 meses

Ahora mire lo que varios de ellos tienen en común: son o comenzaron como clientes de AWS (Pinterest, Dropbox, Instagram, tal vez otros). Así que el meme “tienes que construirlo tú mismo” es INCREÍBLE . Fatalmente.

Tomemos un pequeño ejemplo … SlideStorm (descargo de responsabilidad: lo ejecuto, la compañía para la que trabajo lo posee, pero al menos sé de lo que estoy hablando con él 🙂) se queda sin AWS. Está construido de la manera más económica posible teniendo en cuenta la escalabilidad. En este momento, creado para admitir aproximadamente 200,000 usuarios, admitiendo aproximadamente 500 seminarios web simultáneos, nuestro costo en AWS es … (redoble de tambor …) menos de $ 1000.

El siguiente nivel de escalabilidad implica pasar a múltiples centros de datos de AWS, usar Route 53 para enviar a los usuarios al centro de datos más cercano y usar CloudFront como CDN para la distribución de datos. Cuando presiono el botón “ir” en eso, la implementación tomará menos de 2 días (ya que está “integrada” en la arquitectura y las aplicaciones), el total de usuarios admitidos se ampliará a aproximadamente 2 millones y (ya que habrá un núcleo cambio de arquitectura a los servidores de transmisión de audio y video en vivo como parte de eso) cerca de 25,000 seminarios web simultáneos (cada uno de los cuales puede tener hasta aproximadamente un millón de asistentes). Y se estima que el costo será de menos de $ 28,000 al mes. Ah, y eso incluye contratar a dos tipos más para ayudar a ejecutarlo todo.

Si tuviera que construir mis propios centros de datos, incorporar un ancho de banda de Internet de alta disponibilidad, construir mi propia red para interconectar mis centros de datos, etc. Probablemente terminaría gastando al menos $ 10 millones en costos de equipamiento de capital y de construcción, más gastando alrededor de $ 120ka al mes en salarios para que la gente maneje todo eso, más otros $ 100-300k al mes para “gastos operativos”.

No, gracias.

Sé que esto es cierto porque he construido esas redes gigantes y centros de datos, y sé lo que se necesita. Es por eso que estoy completamente comprometido a NUNCA HACERLO DE NUEVO.

A menos que, por supuesto, estés leyendo esto, tengas un montón de dinero, realmente quieres que se haga bien Y quieres contratarme. Entonces envíame un PM, iremos de allí.

Definitivamente no lo pondría en Google o AWS. Es simplemente demasiado grande para eso.

Yo diría que lo coloque en tantos centros de datos de Nivel IV como pueda. Necesitará más de uno, porque necesitará mucho espacio físico, por lo que es mejor que los extienda. Además, minimiza el impacto si pierde un centro de datos.

O puede construir un montón de centros de datos propios para las especificaciones de Nivel IV. Que es lo que ha hecho FB.

Use un montón de máquinas económicas (que es un término relativo) que ejecutan Linux en OpenStack (esto se escala hasta el punto en que la complejidad de OpenStack se ve más que compensada por las ventajas).

Qué tal si:

1. Sus propias máquinas linux baratas (sin costosas nubes problemáticas), cada una con un montón de unidades atacadas.
2. Datos fragmentados mongoDB (o quizás Riak o algún otro nosql db altamente escalable).
3. NodeJS sin sesión para servir los datos y validarlos antes de almacenarlos.
4. Algún tipo de colas de mensajes escalables para implementar algoritmos complejos (javascript apesta para lógica compleja como algoritmos basados ​​en gráficos)
5. Inicio de sesión y autenticación basados ​​en PKI (no es necesario que las sesiones almacenen al usuario conectado)
6. Equilibrio de carga basado en DNS y algún tipo de enrutamiento de solicitud inteligente como haproxy

Tenga en cuenta: a esta escala, solo la programación relacionada con la escalabilidad hará que la parte de codificación más de 10 veces más costosa de construir en comparación con una escala de inicio. Por lo tanto, si aún no tiene Facebook y desea comenzar, comience con poco, tanto en el conjunto de funciones como en la base de usuarios para la que está diseñado.

Simplemente comenzaría con una plataforma de nube privada …

Asegúrese de que Apache esté funcionando

Asegúrese de que PHP esté en funcionamiento,

Asegúrese de que mi servidor node.js esté en funcionamiento,

Asegúrese de que MySQL esté funcionando

Asegúrese de que mi servicio de caché esté en funcionamiento: estoy familiarizado con memcache …

Al menos con la tecnología mencionada anteriormente, puede abrir un sitio web como Facebook sin preocuparse por la sobrecarga de rendimiento …

Usaría la metodología y escala lean startup solo según sea necesario, enfocándose en las características específicas que los usuarios usan más y validando la hipótesis de uno antes de implementar.

Hacer todo lo que implica su pregunta es la peor manera posible.

Proyecto “Nrop reverse”:

  • Plantilla de diseño Sasha-Grey.css
  • Plugin Sunny-Leone.js
  • Marco Terra-Pattrick
  • Kit de desarrollo de plataforma Brazzers
  • Base de datos de videos gratis
  • Complemento Java de compatibilidad HD

Estas son las tecnologías requeridas para un proyecto del “Día 1”.

Comenzaría desde AWS, aprovechando todos estos servicios, tal vez excluyendo DynamoDB con un precio excesivo, intercambiándolo por un grupo propio de Tarantool / Redis en los servidores virtuales de Amazon.