X
BLOG

Defender a Westeros de interrupciones en el rendimiento

Defender a Westeros de interrupciones en el rendimiento Tiempo de leer: 3 minutos

El domingo, el estreno de la temporada 7 de Game of Thrones estará disponible para millones de fanáticos rabiosos. El final de la temporada pasada fue visto por más de 8.9 millones de personas (un récord para HBO), y aparentemente si se toman en cuenta todos los diferentes tipos de formatos de medios (transmisión, en vivo, DVR y reposiciones), ese episodio único tuvo alrededor de 23 millones. espectadores en total.

El estreno de la temporada 7 ha sido muy esperado y promocionado, ya que el programa continúa desarrollándose y las tramas están llegando a su culminación. ¿Será John Snow el rey del norte? ¿Qué está pasando con Dany y ese ejército al otro lado del mar? Y lo más importante, ¿Tyrion Lanister finalmente obtendrá el respeto que se merece? (No lo sé, tal vez soy parcial, pero definitivamente él es lo mejor de ese programa ...)

Pero tengo esta pequeña punzada en el fondo de mi mente cuando pienso en 23 millones de espectadores que intentan simultáneamente acceder al mismo programa de HBO. ¿Qué tipo de infraestructura pusieron en marcha? Y, lo que es más importante, ¿cómo probaron el desempeño del escenario? ¿Qué pasaría si todos estuviéramos 30 minutos en el episodio y de repente hubo una interrupción?

Yo personalmente veo Game of Thrones en el HBO Go app, transmitiendo a mi televisor, así que pensé que podría investigar un poco para ver qué hay debajo del capó en este caso de uso particular.

Esto es lo que yo descubierto sobre la HBO Go aplicación:

  • Está principalmente basado en Java
  • Utiliza Cassandra como su principal fuente de datos.
  • Se comunica en casa a través de API REST
  • Publica contenido para transmisión en Amazon EC2 en asociación con MLB Avanzado.

Según el  swells de conocimiento de Internet .. HBO originalmente planeó el servicio de transmisión internamente bajo el nombre en clave Project Maui. Esto fue alrededor de 2014, pero tuvieron algunos desafíos, incluidas algunas interrupciones que ocurrieron durante los episodios de Game of Thrones y True Detective. (Se alegó en ese momento que algunos asociados de desarrollo sabían sobre una posible fuga de memoria, pero la anotaron como un problema que no era un problema, y ​​desafortunadamente se determinó que esas filtraciones eventualmente llevaron a las interrupciones).

Para poner en contexto la importancia de este tipo de cuestiones, El CTO de HBO renunció a raíz de los problemas del Proyecto Maui, muchos de los cuales estaban relacionados con estas pérdidas de memoria que conducen a interrupciones. La falla de su propia plataforma personalizada llevó a un cambio total de dirección para el equipo de la plataforma, lo que resultó en un cambio a una solución de terceros. No se puede subestimar el impacto de la calidad, el rendimiento y la seguridad en la infraestructura de misión crítica.

No obstante, después de estos problemas, HBO se asoció con MLB Advanced y ahora hacen la transmisión. Entonces, ¿cómo sería probar adecuadamente el rendimiento de esa infraestructura para asegurarse de que no tengan una interrupción catastrófica el domingo?

Aquí hay un diagrama que modela cómo supongo que se ve la pila y dónde encajarían los tipos de prueba apropiados:

Comenzaría recreando los flujos de trabajo de inicio de sesión, búsqueda y selección. Probaría las llamadas a la API REST que se realizarían desde el servidor de aplicaciones a los servicios, y validaría las llamadas funcionales a las bases de datos de backend. Luego reutilizaría esas llamadas para crear pruebas de rendimiento y carga contra los componentes individuales, para asegurarme de que funcionarían de forma aislada y no sufrirían sobresaturación. Luego registraría la experiencia del usuario tanto de la aplicación móvil como de la experiencia del navegador, y las reutilizaría para las pruebas de rendimiento. Sería importante agregar esos dos resultados juntos mientras se monitorea la tecnología subyacente en busca de subprocesos, fugas de memoria, uso de CPU, etc. Esto les ayudaría a comprender dónde se encuentran los puntos de acceso potenciales en la pila de aplicaciones.

Conclusión

Las pruebas de rendimiento a veces se pasan por alto, pero es fácil con las soluciones adecuadas. Descuide esto y podría tener una manada de salvajes enojados que vendrán detrás de usted cuando su flujo se detenga repentinamente.

Si desea copiar lo que hice en ese diagrama, para aprovechar una enfoque de prueba basado en entornos, puede utilizar Parasoft SOAtest para su automatización de pruebas funcionalesy Parasoft Virtualize para virtualización de servicios. Estas tecnologías se conectan a la perfección para que sus pruebas sean fáciles de administrar.

Escrito por

Chris Colosimo

Como Gerente de Producto en Parasoft, Chris elabora estrategias para el desarrollo de productos de las soluciones de pruebas funcionales de Parasoft. Su experiencia en la aceleración de SDLC a través de la automatización lo ha llevado a implementaciones empresariales importantes, como Capital One y CareFirst.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft