Para cualquier tipo de escalamiento, ten en cuenta la arquitectura de tu aplicación y las optimizaciones posibles. Por ejemplo, el contenido estático debe entregarse desde redes de distribución de contenidos optimizadas que ofrecen beneficios de precio y rendimiento. El almacenamiento en caché adicional para el backend de almacenamiento de datos también puede mejorar el rendimiento y minimizar los requisitos de escalamiento costoso.
Pruebas de rendimiento y comparativas
Las comparativas y las pruebas de rendimiento pueden identificar posibles cuellos de botella de rendimiento durante el desarrollo, ayudar a hacer un seguimiento de las tendencias en el tiempo y respaldar la toma de decisiones mediante la comparación de arquitecturas, pilas tecnológicas, proveedores de servicios en la nube y otras opciones.
Las pruebas de carga usan tipos predeterminados y controlados de carga, tráfico o datos para medir el rendimiento del backend en comparación con los objetivos. Puedes ver cómo varios niveles de carga afectan el rendimiento de tu aplicación.
Las pruebas de escalabilidad se centran en analizar la capacidad de tu aplicación para escalar verticalmente y escalar horizontalmente. Las pruebas de escalabilidad muestran cómo responde tu aplicación al aumento de cargas y cómo se adapta el backend (incluido el almacenamiento de datos).
Define objetivos claros antes de comenzar a comparar la aplicación, incluidos el rendimiento y la velocidad (por ejemplo, latencia, capacidad de procesamiento y velocidad), el uso de recursos (uso de CPU, uso de memoria, tráfico de red entre componentes de backend) y el costo. Ten en cuenta las demoras en el escalamiento, por ejemplo, si la aplicación necesita escalar más allá de un conjunto asignado de recursos de “reserva” cuando se producen aumentos repentinos de tráfico.
Hay muchas herramientas disponibles para las comparativas y las pruebas de rendimiento, como Apache JMeter y Locust. Cuando selecciones una herramienta de prueba, ten en cuenta los tipos de pruebas disponibles, incluido si necesitas compatibilidad con secuencias de comandos, integraciones de IDE para depuración, complementos adicionales o compatibilidad con el tipo de tráfico y escala que se probarán.
Si usas un proveedor de servicios en la nube, determina si existen requisitos adicionales o prácticas recomendadas para cualquier prueba de carga a fin de evitar posibles restricciones. Por ejemplo, considera las prácticas recomendadas para Cloud Run.
Consideraciones de costo y rendimiento
Si bien el escalamiento vertical es esencial para mejorar el rendimiento, disminuir la escala también debe ser una consideración para minimizar el costo. Considera el costo de referencia de tu aplicación de backend sin ninguna solicitud y los costos que implica escalar verticalmente la aplicación.
Es posible que tengas costos fijos para las arquitecturas locales o basadas en el servidor, sin importar el uso. Algunos entornos de nube te permiten “escalar a cero” para evitar costos cuando no se realizan solicitudes. Los proveedores de servicios en la nube ofrecen calculadoras para que explores diferentes opciones de configuración y estrategias de precios, como los compromisos previos para los recursos.