¿Cómo manejan las startups web jóvenes el tráfico grande con popularidad inesperada?

Una startup es un camino de equilibrio. Debería, por supuesto, pensar en el escalado y en el rendimiento de su código, pero si profundiza demasiado en la creación de una arquitectura escalable, probablemente no pueda lograr su objetivo principal. Con una excepción: si no es el núcleo de su negocio, por ejemplo, está haciendo un alojamiento súper confiable, una aplicación bancaria o un motor a reacción.

En primer lugar, definamos cómo podría funcionar una arquitectura súper escalable. Hay toneladas de diferentes metodologías que puede emplear para hacer una aplicación de alta carga: acoplamiento flojo, localidad de referencia, microservicios, arquitectura orientada a servicios, integración continua, desarrollo basado en pruebas, pruebas de carga, fragmento (arquitectura de base de datos), etc.

Si el uso no lo está ralentizando, continúe y úselo. De lo contrario, intente programar su código evitando cosas importantes:

1) Bloqueo (informática), Bloqueo (base de datos)
2) Cuello de botella mayor (software)

Haga algunos planes sobre cómo escalará cada componente de su aplicación cuando llegue el momento. Comente cada posible cuello de botella. Pero un algoritmo de trabajo es hacer primero la mayoría de las cosas críticas del negocio, luego dibujar una imagen completa y luego introducir detalles.

Conoce tu plataforma tecnológica. Por ejemplo, muchos servidores web de ruby ​​pueden procesar una solicitud por vez. Y tienen parámetros de configuración: un número máximo de subprocesos / procesos. Entonces, si un sistema puede procesar 1 solicitud por segundo y usted tiene 10 procesos de trabajo, entonces su límite teórico es de 10 solicitudes por segundo. ¿Por qué teórico? Debido a que el sistema también debe procesar una cola (si conoce los conceptos básicos de la teoría de la cola, será extremadamente útil). Un software de procesamiento de colas también tiene algunos límites. Entonces lea algunas guías de “Cómo escalar X”. Las cosas esenciales a menudo se describen en varias páginas.

Obviamente, hay algunos límites de hardware. La red, el almacenamiento, los poderes de procesamiento. La solución rápida será: elija un alojamiento donde pueda escalar estos parámetros fácilmente sin ninguna interrupción importante. Pero no temas las pequeñas interrupciones. Compruebe si es posible agregar más capacidad de red, almacenamiento, potencia de procesamiento y memoria razonablemente rápido. Especialmente, piense en el almacenamiento. A menudo tiene algún directorio que comienza a crecer rápidamente y la expansión de volumen será la solución inicial más fácil. El escalado de las bases de datos también es un tema muy difícil, así que asegúrese de tener algo de capacidad aquí, antes de que la base de datos se vuelva demasiado lenta.

Controle su rendimiento para descubrir cuellos de botella. Hay plataformas como New Relic, te ayudarán.

Recuerde que no hay sistemas técnicos con 100% de confiabilidad. Tener un plan de interrupción, al menos informal. Tenga un sitio estático en Twitter, donde pueda comunicar un problema y lo que está haciendo para resolverlo.

Después de haber alcanzado una tasa de crecimiento, comience a dar pequeños pasos hacia una arquitectura “correcta”.

Depende de la puesta en marcha. Cada vez que tiene una explosión en el negocio web, en realidad hay dos tablas principales donde las cosas pueden salir mal.

Tablón 1: no tiene la capacidad suficiente para manejar todo el tráfico. A menudo ves esto con nuevos sitios web que solo compran una capacidad de datos de 10 GB porque no esperan ser tan grandes. Si se vuelven virales, este límite puede alcanzarse muy rápido dependiendo de la cantidad de datos que consuman las páginas. Si alcanza el límite, puede cerrarse y provocar pérdida de exposición e ingresos.

Tablón 2: problemas de la cadena de suministro. Viste esto con el tipo que inventó el negocio web de enviar brillo a tus enemigos. Su negocio se volvió viral y no pudo completar todos los pedidos porque no tenía los suministros ni la mano de obra para hacerlo.

Al final, tenga cuidado con estos dos tablones y asegúrese de tener contingencias en caso de que vaya a lo grande.