BLOG

Lo suficientemente bueno sólo es lo suficientemente bueno hasta que no lo es

Miniatura de Lori MacVittie
Lori MacVittie
Publicado el 8 de junio de 2017

Hablemos claro. O huevos de crema. O cajas de dulces. ¿Qué tienen en común? Todos ellos están asociados con vacaciones, por supuesto. Y resulta que esas vacaciones son el principal generador tanto de ganancias como de bajo rendimiento de los sitios web.

Consideremos una investigación reciente del Reino Unido , “en la que participaron más de 100 tomadores de decisiones de comercio electrónico”, que “reveló que más de la mitad (58%) admitió haber enfrentado problemas de velocidad del sitio web durante el período pico del año pasado”.

Ahora bien, todos sabemos que el rendimiento es importante y que incluso microsegundos de retraso suponen millones de dólares en pérdidas. No hace falta decir más.

La pregunta es ¿qué puedes hacer al respecto?

La respuesta está en recordar el Axioma Operacional #2: A medida que aumenta la carga, el rendimiento disminuye.

No importa si el servidor de aplicaciones se ejecuta en la nube o en el centro de datos, en una máquina virtual o en un contenedor. Este axioma es un axioma porque siempre es verdadero. Pase lo que pase. Cuanto más carga se le impone a un sistema, más lento funcionará. Período.

La clave para un mejor rendimiento es equilibrar la necesidad de mantener bajos los costos maximizando la carga y optimizando simultáneamente el rendimiento. En la mayoría de los casos, eso significa utilizar todas las herramientas posibles para restablecer ese equilibrio, especialmente durante los períodos pico (que ejercen mucha presión sobre los sistemas, sin importar dónde se encuentren).

en el axioma 2

1.Equilibrar la carga

Es por esto que no existen servicios de aplicaciones suficientemente buenos (y rudimentarios). Porque si bien a menudo escalan sin esfuerzo, en realidad no necesariamente equilibran la carga entre los recursos disponibles. No necesariamente proporcionan la inteligencia necesaria para seleccionar recursos en función del rendimiento o la carga existente. Su 'máximo esfuerzo' no es mucho mejor que el azar.

Para equilibrar la carga es necesario comprender la carga existente para que las nuevas solicitudes se dirijan al recurso que tenga más probabilidades de responder lo más rápido posible. El equilibrio de carga básico no puede lograr esto porque su enfoque está puramente en decisiones basadas en algoritmos, que rara vez tienen en cuenta algo más que la ponderación estática de los recursos disponibles. Las decisiones en tiempo real requieren información en tiempo real sobre la carga que existe en este momento . De lo contrario, no estás equilibrando la carga, sino distribuyéndola

2.Reducir la carga

Es más que una simple selección de recursos que ayuda a mejorar el rendimiento y equilibrar la carga. Poder emplear una variedad de funciones que mejoren el protocolo y reduzcan la carga sin afectar la disponibilidad también es clave. La multiplexación y reutilización de conexiones TCP, la descarga de cifrado y seguridad, y la reasignación de tareas de compresión a servicios ascendentes alivian las cargas en los servicios web y de aplicaciones que liberan recursos y tienen impactos reales en el rendimiento.

Los servidores deben funcionar, ya sea que estén en la nube o en el centro de datos, ejecutándose en un contenedor o una máquina virtual. La criptografía y la compresión siguen siendo funciones que requieren un gran esfuerzo computacional y que pueden ser realizadas por servicios ascendentes diseñados para esa tarea.

3.Eliminar la carga

La eliminación de saltos adicionales en la ruta de solicitud-respuesta también mejora el rendimiento. Sí, se puede escalar horizontalmente a través de servicios de equilibrio de carga, pero al hacerlo se introduce otra capa de toma de decisiones (enrutamiento) en la ecuación que lleva tiempo tanto en ejecución (¿cuál de estos debería atender esta solicitud?) como en tiempo de transferencia (enviarla a través de la red a esa ). Esto significa menos tiempo para que el servidor web o de aplicaciones haga su trabajo, que es realmente todo lo que queríamos en primer lugar. Bajo una carga típica, las diferencias entre un sistema que gestiona un millón de conexiones y diez sistemas que gestionan cada uno una parte del mismo pueden ser insignificantes. Hasta que la demanda impulse una mayor carga y los axiomas operativos entren en vigencia también. Porque no se trata sólo de la carga en el servidor web o de aplicaciones lo que contribuye al bajo rendimiento, sino de toda la cadena de distribución de aplicaciones.

Cuanto más capacidad (conexiones) pueda gestionar simultáneamente su servicio de equilibrio de carga, menos instancias necesitará. Esto reduce la sobrecarga de gestionar otra capa de recursos que requieren la misma atención al axioma operativo n.° 2 que cualquier otro servicio.

El rendimiento sigue siendo un problema importante para los minoristas y, con la economía digital en rápida expansión, se convertirá (si no lo es ya) en un problema para todos los que tengan presencia digital. En la prisa que siempre aparece antes de las vacaciones, la gente se vuelve aún menos tolerante con el bajo rendimiento. Lo que fue bueno el día anterior, ya no lo es. La mayoría de las veces, los problemas de rendimiento no son culpa de la aplicação, sino de la arquitectura y los servicios utilizados para entregarla y protegerla. Al utilizar los servicios adecuados con el conjunto correcto de capacidades, las organizaciones tienen más probabilidades de evitar problemas de rendimiento bajo una carga pesada.

Lo suficientemente bueno es suficientemente bueno, hasta que deja de serlo. Entonces será demasiado tarde para convencer a los clientes frustrados de que regresen. Ya encontraron otro proveedor de lo que fuera que intentabas venderles.