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.
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.
Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
Ofrezca una infraestructura segura y lista para la IA en entornos de nube híbrida
Acelere, proteja y optimice su infraestructura empresarial y de nube híbrida con el asesoramiento experto de IBM Technology Expert Labs.