Gestionar tus recursos es crucial para optimizar el rendimiento y la estabilidad de tu sitio. Un sitio de WordPress tiene que ser capaz de gestionar los picos de tráfico, escalar los recursos cuando llegue el momento y detectar rápidamente cualquier anomalía en el rendimiento.

Por supuesto, también es necesario aplicar todas estas tareas. La API de Kinsta tiene unos cuantos endpoints que pueden ayudar a predecir el escalado de recursos y la detección de anomalías.

En este artículo, examinaremos los conceptos de escalado predictivo de recursos y detección de anomalías y cómo encaja la API Kinsta en tu flujo de trabajo. Discutiremos algunos escenarios reales de este tipo de escalado, examinaremos las capacidades de la API y consideraremos cómo integrar estas estrategias en tu flujo de trabajo.

Sin embargo, como primer paso, deberíamos intentar comprender las tareas a las que nos vamos a enfrentar.

Comprender el escalado predictivo de recursos y la detección de anomalías

En breve veremos en qué puede ayudarte la API Kinsta. Antes de eso, vamos a ver lo que te puede aportar predecir la escalabilidad de tus recursos. A partir de ahí, también vamos a ver las ventajas de poder detectar anomalías en el rendimiento de tu sitio.

Ventajas del escalado predictivo de recursos

En pocas palabras, el escalado predictivo de recursos es una forma de gestionar los recursos de tu sitio en función de la demanda que prevés. Es un enfoque proactivo que implica analizar datos, estudiar patrones de uso y otros factores relevantes.

Predecir cuándo es probable que tu sitio experimente un aumento del tráfico o del consumo de recursos te permite escalar para adaptarte a la demanda. El resultado final es un rendimiento optimizado y una mejor experiencia general del usuario (UX).

Sin embargo, el escalado predictivo de recursos tiene muchas otras ventajas:

  1. Mejora del rendimiento del sitio. Escalar tus recursos puede ayudar a evitar cuellos de botella en el rendimiento. A su vez, esto puede garantizar que tu sitio siga respondiendo durante los picos de tráfico.
  2. Optimización de costes. El escalado predictivo te permite asignar recursos con mayor eficiencia. Así, no sobreaprovisionarás esos recursos y reducirás costes innecesarios.
  3. Mejora de la experiencia del usuario. Los picos de tráfico podrían mitigarse, lo que mejoraría la UX. Tu sitio podrá manejar esos picos con menos tensión, ofreciéndote una experiencia front-end consistente, fluida y rápida.

Combinar el escalado predictivo con la capacidad de detectar anomalías de rendimiento en tu servidor es una gran combinación. A continuación, hablaremos de las ventajas de detectar esas anomalías.

La importancia de la detección de anomalías

Un aspecto que suele ir de la mano de una estrategia de escalado es la detección de irregularidades en las métricas de rendimiento de tu sitio. Tus estadísticas tendrán una línea base y valores extremos cuando se trate de uso de CPU, consumo de memoria y tiempos de respuesta, que pueden ser una fuente de problemas y de optimización potencial.

Detectar estas anomalías a tiempo te permite abordar cualquier problema potencial antes de que afecte a la disponibilidad y la UX de tu sitio y se convierta en un problema grave. Además, hay muchas otras ventajas:

  • Resolución proactiva de problemas. Si puedes detectar incoherencias antes de que se conviertan en problemas mayores, puedes tomar medidas rápidas para resolverlas. Esto puede minimizar el tiempo de inactividad y garantizar la disponibilidad continua de tu sitio.
  • Mejoras en la estabilidad del sitio. La detección de anomalías te permite identificar y abordar los problemas de rendimiento actuales. Solucionarlos puede contribuir a la estabilidad y fiabilidad general de tu sitio.
  • Perspectivas de optimización. Al analizar las anomalías que surgen, puedes obtener información valiosa sobre las áreas de tu sitio que pueden requerir una mayor optimización.

Tanto la detección de anomalías como el escalado del rendimiento son dos caras de la misma moneda. Esto significa que debes utilizar las estrategias conjuntamente para crear una base de rendimiento sólida para tu sitio. En la siguiente sección, veremos cómo funciona esto en algunas situaciones habituales.

Escenarios reales para el escalado predictivo de recursos y la detección de anomalías

La necesidad de aumentar los recursos del servidor a tu disposición tiene muchos usos prácticos. Es justo decir que casi todos los sitios necesitarán alguna forma de esta estrategia.

Para comprender mejor cómo utilizarías el escalado predictivo de recursos y la detección de anomalías en un entorno real, repasemos algunos. El primero es posiblemente uno de los escenarios más populares.

1. Sitios de comercio electrónico en temporada alta

En un mundo ideal, tu sitio de comercio electrónico tendrá un tráfico y una participación constantes durante todo el año. Sin embargo, en la realidad, su actividad fluctuará. Por ejemplo, considera un sitio de comercio electrónico que tiene grandes picos de tráfico durante las fiestas o las rebajas.

El sitio web de plugins Pulsar audio muestra imágenes de productos de varias interfaces de plugins de audio y un anuncio de rebajas de primavera que ofrece hasta un 60 por ciento de descuento.
El sitio web de Pulsar Audio, mostrando una oferta de rebajas de primavera.

En este caso, la detección de anomalías se convierte en una inmersión analítica más amplia. Empiezas con tus métricas y observas los datos históricos en torno a tus niveles de tráfico. Si puedes utilizar estas métricas para anticipar los aumentos de tráfico previstos, puedes empezar a pensar en los recursos.

El trabajo consiste en ser proactivo sobre el escalado de recursos en función de tus niveles de tráfico previstos en momentos concretos del año. Por ejemplo, podrías aumentar la asignación de CPU y memoria para ayudar a gestionar un aumento de la carga. En el front end, la experiencia de compra puede ser estable y fluida para tus clientes. A su vez, esto no sólo puede evitar pérdidas de ingresos, sino también aportarlos.

2. Sitios de noticias y medios de comunicación durante grandes eventos

Los sitios que se dedican a contenidos centrados en el tiempo, como los de noticias, también se enfrentan a los mismos retos que los sitios de comercio electrónico. En este caso, esos picos de tráfico se producen cuando hay grandes acontecimientos o noticias de última hora.

La página de inicio del sitio web de NBC News, con una cabecera destacada y enlaces de navegación a diferentes secciones de noticias. Hay una noticia principal de última hora acompañada de imágenes relevantes. Alrededor hay otras noticias principales, un reportaje especial y un reproductor de vídeo para retransmitir en directo. La página de inicio también destaca las últimas noticias de EE.UU., las historias más destacadas y las noticias políticas.
El sitio web de NBC News.

Sin embargo, aquí la diferencia es más importante, ya que los picos se producen con más frecuencia y también son más imprevisibles. El acceso a contenidos relevantes también suele ser crucial. Piensa en los avisos meteorológicos, por ejemplo.

Aquí es donde el escalado predictivo de recursos puede ser muy útil. Al igual que con el comercio electrónico, analizar los patrones de tráfico anteriores durante eventos similares puede ayudarte a tomar decisiones informadas sobre cuándo escalar y en qué medida. El seguimiento de las tendencias actuales de las noticias también puede ser beneficioso. El objetivo principal aquí es garantizar que tu sitio siga siendo accesible y responsivo. Aunque una UX fluida también es importante, el acceso sin interrupciones es clave.

3. Aplicaciones de software como servicio (SaaS) con patrones de uso variables

Las aplicaciones SaaS pueden ser volátiles, con patrones de uso fluctuantes basados tanto en el comportamiento del cliente como en la demanda general del servicio. Un buen ejemplo de ello ocurrió durante el brote de Covid-19 en marzo de 2020. 16 millones de trabajadores especializados tuvieron que quedarse en casa, y Slack tuvo un aumento del 20% de usuarios durante esas dos primeras semanas.

Boceto de la ventana de una aplicación Slack. Muestra la interfaz de una aplicación de colaboración en equipo para
La aplicación de mensajería Slack.

La detección de anomalías puede ayudarte a comprender qué podría ir mal al escalar tus recursos. Esto fue muy importante para Slack porque era importante ayudar a la gente a seguir trabajando durante la pandemia.

El escalado predictivo de recursos también es vital, ya que es una forma de optimizar tu infraestructura para adaptarla a cualquier patrón de uso. De nuevo, revisar los datos históricos y aplicar una estrategia de escalado proactiva puede ayudar a la UX, minimizar los costes y generar confianza y reputación externa entre tu base de usuarios.

Las capacidades de la API de Kinsta para la gestión de recursos

Tener una forma de implementar el escalado de recursos y detectar desviaciones es tan vital como conocer las estrategias. Para los usuarios de Kinsta, tienen el panel de control MyKinsta, que contiene una gran cantidad de métricas:

Una imagen del panel de MyKinsta que muestra una visión general de los sitios de WordPress alojados. Incluye el número de versión de PHP y el recuento de visitas recientes. Hay registros de la sección Actividad reciente, y el área de Notificaciones muestra mensajes sobre planes de alojamiento de WordPress de pago y sitios supervisados.
El panel de MyKinsta.

Sin embargo, esto no ayuda en situaciones en las que necesitas una mayor flexibilidad. En su lugar, la API de Kinsta será la herramienta adecuada. Esto te proporciona una serie de endpoints para conectar a nuestra funcionalidad, algunos de los cuales serán de vital importancia para la escalabilidad y el análisis:

  • CPU Usage. Podrás controlar el uso de la CPU de tu servidor a lo largo del tiempo, lo que te ayudará a identificar tendencias y posibles cuellos de botella antes de que se conviertan en un problema.
  • Memory Usage. Puedes hacer un seguimiento del consumo de memoria para asegurarte de que tu sitio dispone de recursos suficientes para manejar su carga de trabajo y aumentarla cuando sea necesario.
  • Bandwidth. Analizar los datos totales que transmites puede ser un buen indicador para aplicar tu estrategia de escalado.
  • Slowest Requests. Este es uno de los muchos endpoints que pueden mostrarte qué peticiones y respuestas tienen mayor impacto en el rendimiento de tu sitio.

Más adelante veremos en detalle algunos de ellos. Sin embargo, es importante comprender que la API de Kinsta solamente cubre la mayoría de las bases del escalado de recursos y la detección de anomalías:

  • Debes predecir cualquier problema futuro. La API de Kinsta sólo puede enviarte datos; tú tienes que interpretarlos.
  • Por extensión, cualquier escalado que necesites implementar es responsabilidad tuya. La API de Kinsta no puede hacerlo por ti, y esto es comprensible.
  • Aunque la API de Kinsta ofrece muchas formas de monitorizar tu sitio, es posible que no disponga de todos los endpoints que necesitas para satisfacer tus objetivos (¡aunque estamos trabajando en ello!).

En cualquier caso, la API tiene mucho que ofrecer, y su naturaleza programática significa que puedes vincularla a otros sistemas, implementar tus propias funciones y clases, y casi cualquier otra cosa que desees.

Detectar anomalías con la API de Kinsta

No vas a utilizar el escalado todos los días, y puede que sólo decidas recurrir a él un par de veces al año. Por ello, veamos algo que harás con mucha más regularidad — detectar cualquier incoherencia en las métricas de tu servidor.

Configurar la monitorización y las alertas

Tu sistema de vigilancia será la columna vertebral de tu proactividad. Hay muchas consideraciones a tener en cuenta, pero nuestro consejo es que al principio lo hagas de forma sencilla:

  • Decide qué quieres monitorizar. Puedes basarte en tus propios informes para indicar las métricas clave o simplemente mirar tu panel de MyKinsta para ver lo que sueles consultar con frecuencia.
  • Evalúa cómo te gustaría recibir las alertas. Por ejemplo, podrías recibir notificaciones de Slack o un simple correo electrónico cada vez que alcances un umbral.
  • Determina una línea base. Deberías dedicar algún tiempo a comprender el comportamiento típico de tu servidor. Aquí es donde miras los datos métricos históricos y cualquier indicación o tendencia futura.

Una vez que tengas estos conocimientos, puedes empezar a utilizar la API de Kinsta para configurar los endpoints que necesites.

Endpoints de la API de Kinsta para detectar anomalías

Hay algunos endpoints que pueden ser útiles en este caso. Ya hemos mencionado algunos anteriormente en el post, pero para completarlo, aquí tienes una lista que creemos que encajará a la perfección:

  • Bandwidth. Ya hemos hablado de éste, en el sentido de que es la forma en que medirás los datos totales que transmites.
  • HTTP Requests Per Minute. Es muy sencillo: mide literalmente cuántas peticiones HTTP recibe tu sitio cada minuto

Hay un par de endpoints que son buenos para el análisis de tendencias:

  • CPU Usage. Nuestra métrica muestra la media del uso total de la CPU durante un periodo de tiempo seleccionado.
  • Memory Usage. Del mismo modo, es la media del consumo total de memoria para un periodo de tiempo seleccionado.

Si necesitas alguna orientación sobre las oportunidades de escalar, hay algunos endpoints que te ayudarán:

  • Build Time. El seguimiento de esto te muestra cuánto tiempo tardas en construir tu aplicación. Combinado con métricas sobre tu uso de CPU y memoria (entre otras), puedes formarte una opinión sobre si necesitas escalar.
  • Run Time. El tiempo total de ejecución de tu aplicación puede ayudarte a decidir dónde priorizar tu uso, encontrar cuellos de botella en el rendimiento y mucho más.

Veamos un ejemplo de uso de un endpoint para la detección de anomalías. Aquí, estamos utilizando Node.js para comprobar el ancho de banda de un sitio. Ten en cuenta que necesitarías implementar la validación de la clave API — probablemente utilizando variables de entorno — y alguna forma de controlar constantemente el ancho de banda.

import fetch from 'node-fetch';


const API_TOKEN = <YOUR-API-TOKEN>;
const APPLICATION_ID = <YOUR-COMPANY-ID>;

async function checkBandwidth(token, id, timeframeStart, timeframeEnd, intervalInSeconds) {
  const query = new URLSearchParams({
    interval_in_seconds: intervalInSeconds,
    timeframe_start: timeframeStart,
    timeframe_end: timeframeEnd,
  }).toString();

  const resp = await fetch(`https://api.kinsta.com/v2/applications/${id}/metrics/bandwidth?${query}`, {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR-API-KEY>',
    },

  });

  const data = await resp.json();

  if (!resp.ok) {
    console.error('Error checking bandwidth:', data);
    return;
  }

  console.log('Bandwidth data:', data);

}


async function run() {
  const timeframeStart = '2021-07-22T18:10:45.511Z';
  const timeframeEnd = '2021-07-22T18:10:45.511Z';
  const intervalInSeconds = '3600';

  await checkBandwidth(API_TOKEN, APPLICATION_ID, timeframeStart, timeframeEnd, intervalInSeconds);
}

run().catch(error => {
  console.error('An error occurred', error);
  process.exit(1);
});

En cuanto a las notificaciones, podrías configurar un canal de Slack para iniciar una conversación cuando el ancho de banda alcance un determinado límite.

Para detectar cualquier anomalía, deberías examinar los datos que obtienes en busca de valores atípicos — aunque también podrías crear una forma programática de buscar métricas atípicas. A partir de ahí, puedes empezar a formular una respuesta.

Responder a las anomalías

En pocas palabras, tu secuencia de comandos detectará una anomalía, hará un ping a Slack y tú podrás entrar en acción. Cómo lo hagas dependerá de tu plan de respuesta. Este proceso establecerá cómo seguir investigando, diagnosticando y resolviendo la causa raíz del problema.

Por ejemplo, puede que tengas un acuerdo de nivel de servicio si se trata del sitio de un cliente, que exija que respondas en un plazo determinado. En el caso de tu propio sitio, puede que simplemente accedas a tus analíticas y revises tus registros.

Una ventana de visualización de registros del panel de control de MyKinsta. Muestra una lista de entradas de registro con fecha y hora en el formato
Sección de un archivo de registro de Kinsta Nginx.
La forma en que configures esto dependerá del tamaño de tu equipo, de tus necesidades y de tus recursos. Independientemente de esto, tu siguiente paso será implementar tu estrategia de escalado de recursos.

Implementar el escalado predictivo de recursos con la API de Kinsta

Una vez que conozcas tus métricas de referencia, podrás decidir si escalas tus recursos o no. Como hemos indicado en una sección anterior, la predicción automatizada es algo que debes implementar. El alojamiento de aplicaciones de Kinsta ofrece esto para todos los planes. Puedes encontrar la opción en el panel de control MyKinsta, en la pestaña Aplicaciones.

Sin embargo, la API de Kinsta puede darte las herramientas para hacer tus predicciones con precisión y confianza.

Aquí puedes seguir algunas estrategias:

  • Observa las oportunidades para aprovechar el escalado.
  • Evalúa tu consumo global y macro de recursos.
  • Busca cuellos de botella como objetivos para tu escalado de recursos.

Si te fijas en los endpoints bandwidth, HTTP requests per minute, y average response time, son formas estupendas de encontrar el alcance del escalado. Te darás cuenta de que comprobar el ancho de banda y las peticiones HTTP tiene una «doble función» para el escalado de recursos y la detección de anomalías.

Los mismos endpoints que utilizas para analizar tendencias también son estupendos para predecir el escalado de recursos. De hecho, tanto el uso de la CPU como el de la memoria son signos reveladores de que necesitas aumentar la potencia de tu servidor.

Por último, los cuellos de botella en los procesos de carga de tus páginas pueden hacer estragos en tus recursos y ser un objetivo ideal para el escalado. El endpoint slowest requests es uno de los que hay que vigilar. Señala los peores problemas de tu sitio, y es algo para lo que el panel de MyKinsta te ofrece un gráfico:

Una tabla que muestra las transacciones más lentas en un sitio web durante un periodo seleccionado. La tabla tiene tres columnas: Transacción, Duración (%) y Duración (ms). Enumera cuatro transacciones, siendo /wp-cron.php la más lenta con un 35,99% y 440,48 milisegundos, seguida de /single con un 30,04% y 367,72 ms, /wp-login.php con un 15,42% y 188,75 ms, y /search con un 9,61% y 117,6 ms. El título de la tabla explica que estas transacciones probablemente requieran un análisis para mejorar el rendimiento de tu sitio web.
Un panel que muestra las transacciones más lentas en un sitio web Kinsta.

Sin embargo, esto podría ser una señal de la necesidad de escalar hacia arriba y también podría poner de relieve un punto de optimización. Estas serán «victorias rápidas» (en teoría) a lo largo del camino, porque solucionar estos problemas encapsulados debería reducir la cantidad de recursos que asignas a tu sitio y, en consecuencia, liberarlos.

Consejos y trucos para integrar el escalado predictivo y la detección de anomalías en tu flujo de trabajo

Antes de terminar, hablemos de algunas tácticas, prácticas típicas y consejos para integrar el escalado predictivo y la detección de anomalías en tu flujo de trabajo. La proactividad es algo que mencionamos mucho a lo largo de este artículo, y hay algunas formas de ir un paso por delante en este aspecto:

  • Encuentra unas líneas base y unos límites claros para el rendimiento de tu sitio que te ayuden a orientar tus estrategias de escalado y detección.
  • Dedica tiempo a revisar y actualizar periódicamente tus modelos predictivos para comprobar su precisión y relevancia.
  • Implementa la supervisión automatizada siempre que sea posible, utilizando alertas que todo el equipo pueda ver. En esencia, quieres minimizar el número de intervenciones manuales que tienes que hacer.

Sobre el tema de equilibrar las intervenciones automáticas y manuales, hay algunos consejos que también podemos transmitir aquí:

  • Tiene que haber un equilibrio entre cualquier acción automatizada de escalado y la supervisión manual. Esto es más importante de lo que crees para el nivel adecuado de control y responsabilidad de tu estrategia.
  • Cuando implementes el escalado automatizado, debe haber directrices y reglas claras sobre cuándo debe activarse y cuándo necesitará intervención manual.
  • Revisa y afina tus reglas de automatización con regularidad. Esto te ayudará a aumentar la eficacia y minimizar los falsos positivos en tus informes.

Tenemos un último consejo sobre el análisis y la supervisión. Esta parte del proceso implica comprobar constantemente tus métricas y reaccionar ante cualquier cambio. Por ello, hay algunas formas de facilitar esta tarea.

La más importante, en nuestra opinión, es analizar regularmente los resultados de las decisiones que tomes. Esto puede ser clave para el siguiente ciclo, porque una mejor comprensión de cómo tomas las decisiones hará que las siguientes sean más eficaces.

Resumen

El escalado predictivo de recursos y la detección de anomalías son dos de las mejores formas de ser proactivo a la hora de gestionar el rendimiento y la capacidad de respuesta de tu sitio web de WordPress. La API de Kinsta puede ayudarte a implementar y desarrollar estas técnicas mediante programación.

Por ejemplo, muchos endpoints te ayudan a controlar el rendimiento de tu sitio. Con los scripts adecuados, puedes establecer líneas base y puntos de referencia. Si unes esto a una plataforma como Slack, puedes tener alertas automatizadas que te ayuden a poner en marcha tu plan de respuesta.

¿Necesitas una estrategia para la supervisión predictiva de recursos y la detección de anomalías y, en caso afirmativo, qué es importante para ti? ¡Háznoslo saber en la sección de comentarios más abajo!

Jeremy Holcombe Kinsta

Editor de Contenidos y Marketing en Kinsta, Desarrollador Web de WordPress y Redactor de Contenidos. Aparte de todo lo relacionado con WordPress, me gusta la playa, el golf y el cine. También tengo problemas con la gente alta ;).