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:
- ¿Cómo nos afectará el tráfico cuando cambiemos la URL?
- ¿Es http://1millionfreehit.com/ una buena fuente para atraer tráfico a su sitio?
- ¿Qué tipo de palabras clave son efectivas para generar tráfico SEO para un nuevo sitio web?
- ¿Existe algún peligro en el futuro de vehículos autónomos sin pasajeros que aumenten considerablemente el tráfico?
- Tengo un blog con 500-1,000 páginas vistas por día. ¿Cuánto podría ganar de AdSense en él y cómo puedo obtener más tráfico?
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”.