Seminario web destacado: Pruebas de API mejoradas con IA: un enfoque de prueba sin código | Vea ahora

Tiempo de lectura: 4 minutos.

Resumen

Antes de la virtualización de servicios, el equipo de pruebas de rendimiento de Comcast a menudo se encontraba con conflictos de programación para compartir la infraestructura de prueba. A veces, los sistemas posteriores no estaban disponibles. Otras veces, los ingenieros de pruebas intentarían ejecutar pruebas al mismo tiempo, lo que podría afectar los resultados de la prueba. Esto condujo a la variabilidad entre las pruebas, lo que dificultaba el aislamiento de problemas particulares.

Conozca los resultados que logró Comcast después de implementar con éxito la virtualización de servicios y por qué la virtualización de servicios es un componente clave de nuestra iniciativa DevOps.

Los desafios

Por Frank Jennings, director de pruebas de rendimiento de TQM en Comcast

Mi equipo en Comcast ejecuta pruebas de rendimiento en una serie de verticales de la empresa, desde servicios comerciales hasta nuestra plataforma de servicios empresariales, interfaces de usuario orientadas al cliente y sistemas de backend que realizan el aprovisionamiento y activación de los dispositivos para los suscriptores en el Red de Comcast. Si bien nuestros objetivos de prueba (AUT) suelen tener entornos por etapas que representan con precisión el rendimiento de los sistemas de producción, los sistemas de etapas para las dependencias de la AUT no.

Para complicar aún más el asunto, se encontraba el hecho de que estos entornos eran de difícil acceso. Cuando obtuvimos acceso, a veces derribamos los entornos inferiores (el control de calidad o los entornos de prueba de integración) porque no estaban adecuadamente escalados y simplemente no podían manejar la carga. Incluso cuando los sistemas podían soportar la carga, recibimos tiempos de respuesta muy pobres de estos sistemas. Esto significaba que los resultados de nuestras pruebas de rendimiento no eran realmente predictivos del rendimiento en el mundo real.

Otro problema es que tuvimos que evitar tiempos de inactividad prolongados y frecuentes en los entornos de ensayo. El entorno de ensayo no estuvo disponible durante las frecuentes actualizaciones o actualizaciones de software. Como resultado, no pudimos ejecutar nuestras pruebas de rendimiento completas. Los equipos de pruebas de rendimiento tenían que apagar proyectos clave en períodos de tiempo críticos para mantenerse ocupados; sabían que no podrían trabajar en su responsabilidad principal porque los sistemas a los que necesitaban acceder simplemente no estaban disponibles.

Estos desafíos aumentaban los costos, reducían la eficiencia del equipo y afectaban la confiabilidad y previsibilidad de nuestras pruebas de desempeño. Sabíamos que teníamos que tomar medidas, y es por eso que comenzamos a considerar la virtualización de servicios. En última instancia, descubrimos que el tiempo y el costo de implementar la virtualización de servicios era mucho menor que el tiempo y el costo asociados con la implementación de todos los diversos sistemas en todos esos entornos de prueba, o la creación de conectividad entre los diferentes entornos de prueba.

Los resultados

Recurrimos a la virtualización de servicios por dos razones principales. Primero, queríamos aumentar la precisión de los resultados de las pruebas de rendimiento. En segundo lugar, trabajamos constantemente en torno a tiempos de inactividad prolongados y frecuentes en los entornos de prueba por etapas.

Nuestro enfoque inicial se centró en los mayores puntos débiles en términos de conflictos de programación dentro de los equipos de pruebas de rendimiento, sistemas no disponibles y sistemas en los que nuestras pruebas afectarían a otros grupos de desarrollo o prueba. Desde que comenzamos, hemos podido virtualizar aproximadamente el 98% de las interfaces involucradas en nuestras pruebas, y vimos una reducción anual del 65% en la cantidad de tiempo que nos lleva crear y mantener los datos de prueba (teniendo en cuenta el tiempo que gastar en la creación y actualización de activos virtuales). También redujimos el tiempo de inactividad del entorno de ensayo en un 60%.

Dado que podemos comenzar a trabajar en nuestros scripts en lugar de activos virtuales en el entorno de desarrollo, normalmente tenemos todo listo para comenzar bastante temprano en cada sprint. Solíamos necesitar dos semanas para probar el rendimiento del código una vez que lo teníamos en nuestros entornos de ensayo (por ejemplo, con pruebas de carga promedio, pruebas de carga máxima, pruebas de resistencia, etc.). Lo reducimos a solo dos o tres días.

Beneficios de la solución

Nuestras pruebas ahora son más predecibles, más consistentes y más representativas de lo que se vería en producción. Además, también podemos aumentar el alcance de las pruebas en muchos casos. Por ejemplo, no podemos poner cargas de producción en ciertos servicios reales, pero cuando trabajamos con servicios virtuales, podemos aumentarlo con cargas de nivel de producción y obtener respuestas realistas, tanto en términos de datos como de rendimiento. Realmente podemos aislar la AUT, no solo desde la perspectiva de las pruebas de rendimiento, sino también desde la perspectiva de la elaboración de perfiles de rendimiento. En lugar de simplemente decirle al desarrollo, "Este es el rendimiento de su sistema", también podemos decir, "Aquí es donde estamos viendo los cuellos de botella y aquí es donde creemos que los cambios podrían mejorar el rendimiento de la aplicación".

El beneficio clave para el equipo de pruebas de rendimiento es el aumento del tiempo de actividad y la disponibilidad de los entornos de prueba. La virtualización de servicios nos ha permitido obtener una gran utilización de nuestro personal de pruebas, completar más proyectos a tiempo y también ahorrar dinero al reducir el costo total general de realizar las pruebas necesarias para una versión determinada.

Virtualización de servicios y DevOps

Beyond pruebas de rendimiento En nuestros entornos de ensayo, también hemos podido utilizar la virtualización de servicios para todo, desde pruebas unitarias y pruebas de regresión en el entorno de desarrollo, hasta pruebas de rendimiento de línea base en los primeros entornos descendentes, pruebas funcionales y de regresión en el entorno QA / integrado, para Pruebas manuales / exploratorias en un entorno bastante cercano a la producción (pero que utiliza activos virtuales en algunos casos).

Toda la configuración y el despliegue de activos virtuales para los distintos entornos se automatizan como parte de nuestra infraestructura DevOps. Los entornos cambian automáticamente entre activos virtuales y activos reales de acuerdo con las reglas comerciales que hemos definido; por ejemplo, según el punto final del que proviene el tráfico, los datos contenidos en los paquetes de prueba, etc. Esta solución de virtualización de servicios nos ha permitido lograr pruebas continuas como parte integral de nuestro proceso DevOps.

Descubra cómo elegir la solución de virtualización de servicios adecuada para su organización.

  • Industria: Filadelfia, Pensilvania
  • Tamaño de la empresa: 190,000
  • Lugar: Telecomunicaciones
  • Solución: Virtualizar