- Use una plataforma en la nube con la que esté familiarizado. Yo iría con AWS. Tenga un arquitecto que entienda el desarrollo y la escala, para que no cometa algunos errores realmente tontos desde el principio, que serán difíciles de recuperar más tarde, como almacenar sus imágenes en la base de datos.
- De 10 a 100k escalarlo verticalmente. En otras palabras, comience con una instancia pequeña o mediana y simplemente migre a una instancia más grande, cuando la carga es alta. Es posible que deba tener un tiempo de inactividad cuando migre de una instancia a otra, pero es pequeño y no va a suceder con frecuencia. Vale la pena evitar la complejidad del siguiente paso. La suposición aquí es que eres una pequeña empresa con un bajo presupuesto. Concéntrese en construir su MVP y atraer clientes.
- De 100k a 1M. Ahora ha alcanzado 100k – 250k, es hora de distribuir su aplicación. Primero, migre a tener una máquina diferente para diferentes funciones. Máquinas separadas para servidores web, de aplicaciones, de bases de datos, etc. Esto es algo dependiente de la arquitectura. Simplemente hacer esto podría llevarlo a 1 millón de usuarios, pero si no lo hace, comience a equilibrar la carga de sus diferentes servidores. Este también es un buen momento para ver cómo optimizar su pila utilizando herramientas como memcached, migrar a servidores más eficientes como nginx, usar Redis y verificar que no tenga cuellos de botella obvios. Ahora está obteniendo algo de tracción y desea dedicar un poco de tiempo a optimizar su configuración.
- 1M a 10M. Aquí las cosas se complican un poco y son más específicas de la aplicación. Puedes seguir tirando hardware al problema; después de todo, es por eso que elegimos una plataforma en la nube. Simplemente puede agregar más servidores para manejar cargas más grandes en diferentes partes de la aplicación. Sin embargo, a estas alturas, está pagando lo suficiente en tarifas de alojamiento, por lo que tiene sentido que sus desarrolladores pasen más tiempo asegurándose de que las cosas estén optimizadas en la base de datos y en otros lugares. Su principal desafío en este punto probablemente será su base de datos. Todo lo demás se puede distribuir con bastante facilidad. Hay muchas soluciones para escalar dbs en varias máquinas, pero todas tienen algunas dificultades. Haga que su arquitecto pase un tiempo pensando en cómo quieren abordar esto mejor.
- Eso es. Disfruta de tus 10 millones de visitas :-).
Echa un vistazo a http://highscalability.com/blog/…
Para una discusión sobre cómo Pintrest manejó 18 millones de visitantes en mayo. Eso es * visitantes * no * visitas *. Supongo que estaban manejando más de 100 millones de visitas, y parece que usaron alrededor de 350 instancias.
Por lo tanto, lo convertiría en 1 instancia mediana a grande por cada 50,000-100,000 usuarios.