Un ingeniero viendo un monitor o terminal.

¿Qué es la ingeniería de rendimiento?

Definición de ingeniería del rendimiento

La ingeniería del rendimiento es la práctica de optimizar sistemas informáticos para cumplir con las referencias de velocidad y eficiencia.

La ingeniería del rendimiento no es solo una acción individual, sino una metodología de DevOps y shift left que permite a las empresas realizar un seguimiento y optimizar el rendimiento en cada paso del ciclo de vida del desarrollo del software (SDLC). Su objetivo es garantizar que los sistemas cumplan con las métricas de rendimiento para criterios como velocidad, fiabilidad, eficiencia y tiempo de respuesta.

Los equipos de ingeniería del rendimiento establecen primero el rendimiento base del sistema mediante pruebas de estrés. A continuación, utilizan esa línea de base para identificar los problemas de la red y las oportunidades de mejora. Una vez fijados los puntos de referencia, los ingenieros pueden empezar a reconfigurar la red, implantar correcciones y supervisar continuamente la red para detectar problemas de rendimiento y planificar la capacidad futura.

La observabilidad es la base de la ingeniería de rendimiento. Las herramientas de observabilidad recopilan los datos sin procesar (registros, métricas y trazas) que describen el rendimiento del sistema, y los equipos de ingeniería de rendimiento utilizan estos mismos datos para rastrear los efectos de sus correcciones. Los ingenieros de rendimiento también utilizan otras herramientas para la gestión y la supervisión del rendimiento de las aplicaciones, las pruebas de estrés, la auditoría de los navegadores y la evaluación comparativa para obtener imágenes lo más claras posible de sus sistemas.

Ingeniería de rendimiento frente a gestión del rendimiento de las aplicaciones y pruebas de rendimiento 

La ingeniería de rendimiento es la disciplina más amplia e integral de optimizar los sistemas de TI para cumplir con los puntos de referencia predeterminados. La gestión del rendimiento de las aplicaciones (APM) y las pruebas de rendimiento son dos de las actividades implicadas en ese proceso global.

La gestión del rendimiento de las aplicaciones es una práctica que utiliza herramientas de software, análisis de datos y procesos de gestión de aplicaciones para ayudar a las organizaciones a optimizar el rendimiento, la disponibilidad y la experiencia del usuario de las aplicaciones empresariales. Mientras que la ingeniería de rendimiento abarca todo el proceso de desarrollo, la APM se centra en detectar y solucionar problemas en aplicaciones en vivo.

Del mismo modo, las pruebas de rendimiento son la actividad específica de probar el rendimiento de una red o aplicación en diversas condiciones a través de pruebas de carga, pruebas de estrés, pruebas de resistencia y otras pruebas. Al igual que APM, las pruebas de rendimiento son solo una actividad dentro de la práctica más amplia de la ingeniería de rendimiento.

¿Cómo funciona la ingeniería del rendimiento?

La ingeniería de rendimiento se lleva a cabo mediante una secuencia flexible pero integral que incluye el establecimiento de parámetros de referencia, las pruebas y la priorización, la optimización, la planificación y la monitorización del rendimiento.

Referencias

En primer lugar, la organización identifica el nivel de rendimiento necesario para que sus sistemas y aplicaciones cumplan los objetivos empresariales. Luego, los ingenieros de rendimiento prueban el rendimiento actual para establecer puntos de referencia y determinar cómo cumplir con las referencias.

Las métricas de referencia habituales incluyen la latencia, el rendimiento, la utilización de recursos y la tasa de errores. Los equipos de desarrollo pueden medir estas métricas a nivel micro (dentro de un servidor o servicio en particular) o a mayor escala en toda una aplicación o red.

La evaluación comparativa suele implicar preguntas específicas sobre los requisitos de rendimiento y el entorno de desarrollo. Por ejemplo, en lugar de intentar establecer un umbral general para la utilización de la CPU, los ingenieros podrían preguntar si se utiliza menos del 60 % de la CPU cuando 5000 usuarios utilizan simultáneamente una aplicación.

Pruebas y priorización

Utilizando herramientas de pruebas del rendimiento, los ingenieros de rendimiento validan los datos de las pruebas comparándolos con los puntos de referencia establecidos para identificar dónde y qué cambios deben realizarse para cumplir los niveles de servicio requeridos.

Las formas más comunes de pruebas de rendimiento incluyen:

Pruebas de carga

Las pruebas de carga indican cómo funciona el sistema cuando funciona con las cargas esperadas. El objetivo de las pruebas de carga es mostrar el comportamiento del sistema al encontrar cargas detrabajo  de tamaño rutinario en condiciones de trabajo normales con un número promedio de usuarios concurrentes.

Pruebas de escalabilidad

Las pruebas de escalabilidad someten al sistema a estrés al aumentar el volumen de datos o las cargas de usuarios que se gestionan. Muestra si un sistema puede alcanzar un ritmo mayor y seguir funcionando.

Pruebas de estrés

Las pruebas de estrés llevan el sistema a sus límites operativos conocidos, y luego aún más allá, para determinar exactamente cuánto puede soportar antes de llegar a su punto de ruptura.

Pruebas de picos

Las pruebas de picos observan lo que ocurre cuando el tráfico de los usuarios o el volumen de datos sufren repentinamente un aumento brusco y drástico de la actividad. El sistema debe absorber diversos cambios mientras continúa con sus operaciones habituales.

Pruebas de volumen

Las pruebas de volumen examinan cómo un sistema maneja grandes cantidades de datos, específicamente si puede procesar completamente esos datos y almacenarlos sin degradación.

Pruebas de resistencia

Las pruebas de resistencia, o soak testing, consisten en que los ingenieros observan un sistema a lo largo del tiempo para detectar problemas como la degradación gradual de los datos o las fugas de memoria.

Optimización

Tras identificar los límites y las deficiencias del sistema, comienza el proceso de optimización.

Dependiendo de la naturaleza del cuello de botella de rendimiento en cuestión, los ingenieros de rendimiento pueden utilizar estrategias de optimización como:

  • Optimización de algoritmos, en la que se ajustan los algoritmos que hacen funcionar el sistema para mejorar su eficiencia.

  • Optimización de bases de datos, en la que los problemas subyacentes con los datos del sistema se solucionan mediante procesos como la optimización de consultas (el proceso de determinar la forma más eficaz de que una base de datos ejecute una consulta) o la optimización de índices, cuyo objetivo es garantizar que el sistema utilice las rutas de recuperación más rápidas posibles.

  • Almacenamiento en caché, que almacena los resultados de operaciones informáticas exigentes para que puedan reproducirse y recuperarse con mayor rapidez.

  • Optimización de memoria, donde los ingenieros reducen fugas de memoria y aceleran la recogida de basura reutilizando objetos en memoria, reorganizando datos o almacenando algunos datos fuera del sitio.

  • Optimización de la red, que implica la compresión del ancho de banda, el equilibrio de la carga, la reutilización de las conexiones HTTP y otros métodos para acelerar el rendimiento de la red.

Planificación y monitorización

Una vez optimizado el sistema, los ingenieros de rendimiento supervisan continuamente las divergencias con respecto a la nueva línea de base y planifican el crecimiento y la actividad futuros.

La observabilidad permite a los ingenieros de rendimiento determinar si su sistema funciona según lo previsto. Al recopilar y analizar los registros, las métricas y los rastreos, las herramientas de observabilidad permiten a los equipos de TI automatizar la identificación y la resolución de problemas en tiempo real. Cuanto más observable sea un sistema, más rápidamente y con mayor precisión los equipos de TI pueden pasar de un problema de rendimiento identificado a su causa raíz sin necesidad de realizar pruebas o codificaciones adicionales.

La planificación de la capacidad permite a los ingenieros de rendimiento ir un paso por delante de las necesidades empresariales al anticipar los requisitos futuros de la infraestructura de TI. La planificación de la capacidad implica analizar la demanda actual y la capacidad disponible, comparándola con las capacidades y los recursos de la organización. A continuación, las organizaciones desarrollan una estrategia ajustable que les permite escalar de manera eficiente los recursos y la producción.

AI Academy

Cómo prepararse para la IA con la nube híbrida

El plan de estudios, dirigido por los principales líderes de pensamiento de IBM, está diseñado para ayudar a los líderes empresariales a adquirir los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

Beneficios de la ingeniería del rendimiento

Los beneficios de la ingeniería de rendimiento incluyen una experiencia de usuario mejorada, una infraestructura informática más escalable, una resolución de problemas más eficaz y una mejor planificación de la capacidad.

Experiencia del usuario mejorada

La ingeniería de rendimiento mejora la experiencia del usuario solucionando problemas de rendimiento como la alta latencia, que puede alejar a los usuarios de un servicio. Al optimizar el proceso de ingeniería de software y sus outputs, la ingeniería de rendimiento puede ayudar a generar confianza con los usuarios y generar clientes recurrentes.

Mayor escalabilidad

La ingeniería de rendimiento ofrece una imagen clara de los problemas de un sistema. Esta imagen facilita evitar cuellos de botella al expandir ese sistema (ya sea horizontalmente, añadiendo nuevos servicios, o verticalmente, usando más capacidad de red).

Resolución eficiente de problemas

La ingeniería de rendimiento ayuda a garantizar que los ingenieros estén equipados con las herramientas y los conocimientos necesarios para producir sistemas que cumplan los puntos de referencia establecidos. Los ingenieros pueden resolver los problemas de rendimiento más rápidamente, reduciendo el tiempo medio de reparación (MTTR) y a menor coste, porque los problemas se detectan antes de que tengan la oportunidad de interrumpir significativamente el rendimiento de la red.

Planificación de la capacidad optimizada

La ingeniería de rendimiento puede ayudar a mejorar la eficacia de la planificación de la capacidad al mejorar la comprensión de los ingenieros sobre el comportamiento de los sistemas. Mediante el proceso de evaluación comparativa y las prácticas de observabilidad continuas, los ingenieros adquieren una mayor comprensión de lo que necesitan sus redes. Esta información ayuda a los ingenieros a tomar mejores decisiones sobre la capacidad, reduciendo el riesgo de gastar tanto de más como de menos en la capacidad del servidor.

Desafíos de la ingeniería de rendimiento

Los desafíos de la ingeniería de rendimiento incluyen la complejidad de los sistemas modernos, la identificación de las causas raíz de los problemas, la contabilidad de los problemas de “cola larga” y la creación de los conjuntos de herramientas y la experiencia necesarios.

Complejidad

Los entornos informáticos modernos están dominados por microservicios que pueden contarse por miles, a menudo alojados en complejos entornos de nube híbrida. Recopilar, analizar y actuar sobre perspectivas en estos sistemas distribuidos puede ser un proceso que consume muchos recursos con flujos de trabajo a veces impredecibles.

Encontrar las causas raíz

La complejidad también dificulta la identificación de las verdaderas causas raíz de los problemas de red. Si una API responde con lentitud, puede ser el resultado de una base de datos mal indexada, una fuga de memoria o un problema de configuración. Es posible que los ingenieros de rendimiento tengan que realizar un análisis de la causa raíz para identificar la oportunidad real de optimización.

Problemas de cola larga

Los problemas de cola larga son malas condiciones de red que experimenta una pequeña minoría de usuarios. A menudo son causados por problemas idiosincrásicos y difíciles de detectar que eluden las prácticas normales de observabilidad. En el contexto de la ingeniería de rendimiento, estos problemas plantean un desafío porque amenazan las condiciones generales de la red, pero sus causas raíz son difíciles de descubrir mediante pruebas de rendimiento normales.

Construir la infraestructura

La práctica de la ingeniería de rendimiento requiere personal experto y sofisticadas capacidades de plataforma. Las pruebas de rendimiento requieren costosas simulaciones a gran escala de las condiciones de la red. Los equipos deben comprender los sistemas lo suficiente como para convertir una gran cantidad de datos de telemetría en información práctica. La naturaleza flexible e iterativa de la ingeniería de rendimiento requiere una estructura institucional que pueda hacer frente a los cambios rápidos.

Autores

Derek Robertson

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Soluciones relacionadas
IBM Cloud Infrastructure Center

IBM® Cloud Infrastructure Center es una plataforma de software compatible con OpenStack diseñada para gestionar la infraestructura de nube privada que se ejecuta en IBM zSystems e IBM LinuxONE.

Explore Cloud Infrastructure Center
Infraestructura de TI

Ofrezca una infraestructura segura y lista para la IA en entornos de nube híbrida

Explore las soluciones de infraestructura de TI
Servicios de infraestructura

Acelere, proteja y optimice su infraestructura empresarial y de nube híbrida con el asesoramiento experto de IBM Technology Expert Labs.

Explore los servicios de infraestructura
Dé el siguiente paso

Transforme la infraestructura de su empresa con las soluciones de nube híbrida y preparadas para la IA de IBM. Explore los servidores, el almacenamiento y el software diseñados para proteger, escalar y modernizar su empresa, u obtenga perspectivas de expertos para reforzar su estrategia de IA generativa.

  1. Explore la solución de infraestructura de TI
  2. Descubra IBM Cloud