Logotipo de Parasoft Buscar

¡Descubre GoogleTest, con certificación TÜV y la tecnología Agentic AI para pruebas de C/C++!
Obtenga los detalles »

Blog de Parasoft

Cómo tomar una herramienta de virtualización de servicios gratuita y escalarla en una implementación completa de DevOps

By parasoft • 12 de julio de 2023 • 11 minutos de lectura
12 de julio de 2023 | 11 minutos de lectura
By parasoft
Texto a la izquierda: Cómo tomar una herramienta de virtualización de servicios gratuita y escalarla en una implementación completa de DevOps. La imagen de la derecha muestra a dos desarrolladores que utilizan la herramienta de virtualización de servicios.

La virtualización de servicios generalmente se usa para conectar aplicaciones que dependen de la nube, SOA o API de terceros. Aprenda a expandir una herramienta de virtualización de servicios gratuita a una implementación integral de DevOps leyendo esta publicación de blog.

La mejor manera de implementar la virtualización de servicios en su organización es paso a paso. Úsela donde sea más valiosa para reducir el costo total de las pruebas y obtenga el control total del proceso de automatización de pruebas con un flujo de trabajo DevOps completamente automatizado.

Usemos una analogía. Cuando decides que es hora de adoptar un estilo de vida saludable, podrías investigar un poco y terminar con consejos como: "¡Deja de beber alcohol! ¡Empieza a comer col rizada! ¡Acuéstate a las 8! ¡Camina ocho kilómetros todos los días!". Si bien podría tener sentido adoptar todas estas actividades para lograr un estilo de vida saludable, si intentas adoptarlas todas a la vez, probablemente fracasarás. En cambio, necesitas ir paso a paso. Agrega un ejercicio extra aquí. Elige una comida saludable allá. Poco a poco, alcanza un nivel en el que puedas desarrollar hábitos saludables como un experto.

La virtualización de servicios no es diferente. A lo largo de los años, he ayudado a numerosos clientes a adoptar esta valiosa herramienta para DevOps. La mayoría de las organizaciones quieren implementar una solución integral de inmediato, que abarque varios equipos y esté integrada en su proceso de entrega continua.

Si bien todos estos aspectos son esenciales para aprovechar al máximo el retorno de la inversión que puede ofrecer la virtualización de servicios, si intentas implementarlos todos desde el primer día, probablemente no podrás escalar eficazmente tu despliegue DevOps completo. Entonces, ¿cómo lograrlo?

En este blog, compartiré precisamente eso. Seguiremos la historia de una persona, desde su licencia gratuita de virtualización de servicios hasta la implementación completa de la virtualización de servicios en su organización , integrada en su flujo de trabajo DevOps. Esta historia es real, pero para preservar su anonimato, la llamaremos Sally.

Paso 1: Comience con Parasoft Virtualize gratis para aumentar la eficiencia

Gráfico de Sally, la desarrolladora, liderando la implementación de la virtualización de servicios usando Parasoft Virtualize

Conoce a Sally, la desarrolladora. Sally es inteligente y puede desarrollarse a un ritmo mucho más rápido que sus colegas. Comenzó a utilizar simulacros para aislarse durante la fase de prueba, pero dedicaba mucho tiempo a desarrollar el tipo de lógica que necesitaba para incorporar a esos sistemas porque las aplicaciones reales que estaba creando eran complejas.

Así, aprendió cómo la virtualización de servicios podía crear un servicio virtual más complejo en un tiempo notablemente corto. Descargó la versión gratuita de Parasoft Virtualize para obtener virtualización de servicios sin costo alguno, lo que le permitió comenzar a crear servicios virtualizados y modificarlos fácilmente a medida que los servicios originales cambiaban. Como resultado, pudo realizar todas sus pruebas y desarrollo en un entorno completamente aislado.

Paso 2: habilite la adopción a través de la barrera de entrada del equipo

Mientras discutía estas ventajas con algunos de sus compañeros de trabajo, ellos también querían aprovechar los servicios que ella había creado porque eran servicios comunes entre los diferentes desarrolladores. Simplemente podrían apuntar sus aplicaciones a la máquina de Sally y cosechar los beneficios.

También obtuvieron virtualización de servicios gratuita con Parasoft Virtualize y comenzaron a crear nuevos servicios, ajustar esos servicios y consumir esos servicios, todo desde sus escritorios gratuitos. El equipo hizo un progreso significativo en el desarrollo y las pruebas porque pudieron reducir muchos de los cuellos de botella que habían estado presentes en el entorno. El equipo se hizo popular por su agilidad y consiguió todos los mejores proyectos.

Paso 3: Libere todo el potencial de Parasoft Virtualize

La gerencia se puso en contacto con el equipo de Sally. Tenían curiosidad por la solución de virtualización de servicios que utilizaban para desarrollar y probar las aplicaciones con mayor rapidez. Querían conversar sobre su aplicación práctica en un entorno más amplio. Se habían producido algunas interrupciones en los entornos de integración y producción causadas por aplicaciones heredadas. Dichas aplicaciones dependían de varias bases de datos Oracle, un ESB complejo y un mainframe.

Resultaba difícil probar esos sistemas por diversas razones. Sally y su equipo demostraron que era sencillo simular los servicios que se ejecutaban detrás del ESB, ya que se trataba de servicios REST y SOAP básicos, además de un par de servicios JMS y MQ con XML desarrollado internamente. Para solucionar el problema del hardware heredado, necesitaban potenciar su entorno de virtualización de servicios, por lo que actualizaron a la versión completa de Parasoft Virtualize.

Imagen de tres desarrolladores cerca de computadoras portátiles discutiendo la facilidad de implementar la virtualización de servicios.En este punto, pudieron aplicar fácilmente la virtualización de servicios para los diferentes desafíos presentes en los casos de uso descritos por la gerencia. Tomó algunos días asegurarse de que los servicios virtuales satisficieran todos los diferentes casos de uso, pero pudieron desbloquear todos los desafíos que tenían en esos entornos. Este fue uno de los puntos de inflexión clave para el movimiento de virtualización de servicios en la organización de Sally porque pudieron aprovechar la experiencia del equipo de Sally con la virtualización de servicios básicos para abordar desafíos más complicados que tenían costos reales asociados.

Paso 4: implemente un servidor virtualizado para optimizar el tiempo de actividad y la disponibilidad

A medida que el equipo se hizo más popular, quedó claro que necesitaban escalar su implementación. Si uno de los miembros del equipo tuviera que apagar la máquina o irse de vacaciones, afectaría a los usuarios que utilizan los servicios virtuales. Sally decidió que era hora de actualizar su arquitectura de implementación una vez más y adquirieron un servidor de pruebas de virtualización.Imagen que muestra a tres miembros del equipo de desarrollo que combinan esfuerzos para crear un ecosistema de prueba simulado completo al conectar sus sistemas individuales a un servidor.

Esto permitió que cada miembro del equipo combinara su esfuerzo para crear un ecosistema de prueba simulado completo. El servidor siempre estaba encendido y actuaba como una biblioteca de artefactos virtuales. Estaba conectado al control de código fuente, por lo que, a medida que se implementaban diferentes versiones de los servicios en el servidor, se registraban automáticamente. Esto permitió que el equipo tuviera un punto central de la verdad para todos los activos virtuales. Nadie tuvo que adivinar dónde estaba la versión más reciente.

El equipo funcionó a la perfección durante varios meses, resolviendo grandes y significativos desafíos para la organización. Creció con la incorporación de algunos miembros más. Para aumentar la visibilidad y el reconocimiento del equipo, y aumentar su presupuesto, Sally implementó el programa "Hoo-Rah".

Cada vez que el equipo creaba algo con un ROI cuantificable, registraban las ganancias y enviaban un correo electrónico público explicando lo que habían hecho y qué equipos se habían beneficiado. Ejemplos de estas felicitaciones fueron:

  • El equipo simuló los servicios SOAP de stormtrooper y la tabla de extensión en la base de datos principal de Oracle y habilitó un proceso automatizado para aprovisionar y probar las 111 combinaciones del servicio de pagos. Este aumento en el rendimiento de las pruebas y la ejecución de pruebas automatizadas les ahorró $ 27,950 por ciclo de proyecto.
  • El equipo pudo simplificar una iniciativa de migración a la nube al simular servicios que no estaban listos para trasladarse a la nube. Esto permitió que la transformación se llevara a cabo dos semanas antes de lo previsto porque pudieron realizar la validación en fases y seguir funcionando a pesar de que faltaban piezas. Esto les ahorró $45,875 en horas hombre para el proyecto.
  • El equipo gestionó de forma proactiva un cambio de servicio de un tercero mediante la creación de una representación virtual del nuevo servicio, brindando acceso a desarrollo/prueba de 2 a 6 semanas antes. Esta gestión de cambios redujo el tiempo de inactividad no planificado asociado con los servicios de terceros (aproximadamente un 30 %) con un ahorro del programa de $27,146 XNUMX.
  • El equipo simuló el servicio de búsqueda de miembros en Mainframe que proporcionó miembros únicos al solicitar cuentas, lo que simplificó significativamente los requisitos de prueba para el flujo del proceso. Los equipos ahora tienen control sobre los datos del mainframe y la base de datos, y pueden insertar cualquier tipo de comportamiento que estén buscando. Se prevé que esto reducirá significativamente 15,000 horas de interrupciones no planificadas del middleware.
  • El equipo simuló el servicio de búsqueda de miembros en el mainframe que proporcionaba miembros únicos al solicitar cuentas, lo que simplificó significativamente los requisitos de prueba para el flujo del proceso. Los equipos ahora tenían control sobre los datos del mainframe y la base de datos, y podían insertar cualquier tipo de comportamiento que estuvieran buscando. Se prevé que esto reduzca significativamente 15,000 XNUMX horas de interrupciones no planificadas del middleware.

Estos correos electrónicos de aliento fueron vitales para incorporar equipos adicionales y ayudaron a las partes interesadas clave del negocio a comprender la importancia de la virtualización de servicios para el proceso de automatización de pruebas.

Obtener valor de la simulación negativa

Mientras realizaba una auditoría de una aplicación crítica, un miembro del equipo de seguridad descubrió un vector de ataque potencial en el sistema que podría explotarse y provocar no solo la filtración de datos confidenciales del cliente, sino también obligar a la organización a incumplir. Si no se soluciona rápidamente, la organización se vería obligada a actualizar el comité de cumplimiento e iniciar el proceso de sanción.

El equipo se dio cuenta de que si podían remediar el defecto dentro de un período de tiempo específico, podrían impulsar los cambios en el entorno de producción y todo estaría bien. El desafío era que, para reproducir con éxito el problema, tenían que poner muchos de sus sistemas de pago de terceros en un estado en el que proporcionarían varias condiciones de error y filtrarían intencionalmente PII o datos de clientes.

El equipo no tenía la capacidad de forzar estos sistemas, que estaban fuera de su control, al estado que necesitaban para exponer el defecto y validar las correcciones que implementarían. Llamaron a Sally a media noche y le pidieron que fuera a trabajar.

El equipo hizo un trabajo rápido al reutilizar los servicios virtuales existentes que habían creado para estos sistemas de pago de terceros y ponerlos en un estado en el que comenzarían a mostrar un comportamiento negativo. Debido a que no era necesario volver a implementar la aplicación, simplemente podían modificar el comportamiento a medida que los desarrolladores realizaban sus cambios y descartar todas las diferentes combinaciones que conducían a la vulnerabilidad potencial. No hace falta decir que el equipo tuvo éxito en la entrega de un parche caliente en la producción que ahorró millones a la empresa.

Paso 5: habilite la escalabilidad de la virtualización de servicios en toda la empresa

Luego, el equipo de administración dio el siguiente paso valioso para su organización: crear un centro de excelencia de virtualización de servicios dedicado que podría aprovecharse para crear servicios virtuales cada vez que surgieran nuevos desafíos. Sally, por supuesto, era la opción natural para liderar el equipo.

Sally comenzó a desarrollar procesos en torno a la incorporación de iniciativas de virtualización y la creación de criterios de aceptación, de modo que el equipo en sí no se convirtiera en un nuevo cuello de botella. La gobernanza se convirtió en una parte importante de la conversación.

El equipo estableció una serie de cinco funciones y responsabilidades para garantizar que cada proyecto de virtualización tuviera éxito.

  1. el probador Al crear un servicio virtual, es necesario tener una razón para virtualizar el componente en cuestión. Con frecuencia, el equipo recibía solicitudes para simular una aplicación poco fiable en el entorno. En la conversación inicial con el solicitante, este preguntaba: "¿Qué es lo que no puede hacer?". Esta pregunta es crucial, ya que se deben definir claramente los criterios de aceptación para que un activo virtual esté "completado". El tester se convierte en una parte esencial de este proceso, ya que puede definir qué casos de prueba deben ejecutarse correctamente y, una vez completado, el equipo de virtualización sabrá que ha creado un activo virtual exitoso.
  2. El desarrollador. Los activos virtuales se pueden crear con poca o ninguna comprensión de la aplicación que está virtualizando. Pero, para crear un servicio virtual con una cantidad mínima de esfuerzo, ayuda tener conocimiento de dominio sobre la aplicación que está simulando. Entonces, el desarrollador se convierte en una parte esencial del proceso de creación de activos virtuales, brindando explicaciones de cómo funcionan los servicios para que cuando se creen los servicios virtuales, haya una comprensión de por qué funciona de la manera en que lo hace.
  3. Gestión de datos de prueba. Es discutible que muchos desafíos de virtualización de servicios sean en realidad desafíos de datos de prueba en el núcleo, por lo que los equipos de administración de datos de prueba se vuelven importantes al crear activos virtuales. La mayoría de los activos virtuales se crean mediante grabación y reproducción. Cuando se identifican los casos de prueba y se acuerda el comportamiento, es importante que el entorno en el que se va a grabar tenga los datos de prueba adecuados en el momento de la grabación. Por lo tanto, si bien los equipos de administración de datos de prueba en este caso tuvieron un rol mínimo en el proceso de virtualización en sí, fue crucial incorporarlos al proceso antes de crear la oferta inicial.
  4. Operaciones Los servicios virtuales replican los servicios reales, por lo que si creó el servicio virtual correctamente, es posible que un usuario no sepa que está accediendo a la simulación. Como resultado, el servicio virtual debe estar disponible en un punto final definido en el entorno donde se encuentra el servicio real. A menudo, esto puede ser un obstáculo para el proceso de virtualización porque muchas personas no tendrán acceso para reconfigurar las conexiones necesarias para dirigir la aplicación al extremo de los servicios virtuales. Parasoft Virtualize usa un mecanismo llamado proxy, que permite que un servicio se comunique a través de un hombre en el medio, que el equipo de Sally podría controlar. Pero establecer esa conexión inicial era responsabilidad del equipo de operaciones. Identificar el recurso de operaciones con anticipación y hacer el contrato por adelantado de que esta iniciativa se llevaría a cabo fue la mejor manera de garantizar que cuando llegara el momento de conectar todas las tuberías, el equipo estaría listo y podría comprender lo que estaba sucediendo.
  5. Liderazgo. Para que cualquier proyecto de virtualización de servicios sea exitoso, la gerencia debe aceptarlo. Esto no fue difícil en el caso de Sally porque comenzaron desde cero y demostraron ser de valor significativo, pero era importante mantener el enfoque continuo del liderazgo para el equipo para funcionar productivamente.

La configuración de estos roles fue fundamental para el éxito del equipo de virtualización de servicios, aclarando las necesidades para que los proyectos de virtualización tuvieran éxito. Cada miembro del equipo de virtualización de servicios tenía el software de escritorio Parasoft Virtualize. Crearían los servicios virtuales en el escritorio y luego los pondrían a disposición de los usuarios.

Paso 6: Colaboración e integración continua en toda la canalización de DevOps

El equipo del centro de excelencia de virtualización de servicios de Sally se hizo popular entre los desarrolladores y probadores. Muchos empezaron a pedir acceso a Parasoft Virtualize para poder hacer sus propios prototipos y validar escenarios negativos y positivos.

Sally tenía la infraestructura para respaldarlo, pero no necesariamente necesitaba darles el peso que era la versión de escritorio profesional. Volvió a actualizar su infraestructura e incluyó la interfaz de cliente ligero de Parasoft para habilitar completamente sus flujos de trabajo de DevOps. Este tablero centralizado dio acceso a cualquier usuario de la organización y les permitió crear servicios virtuales y casos de prueba directamente desde su navegador.Imagen que muestra un tablero centralizado al que puede acceder toda la organización, lo que permite a los equipos crear servicios virtuales y casos de prueba directamente desde su navegador.

Esta evolución de la implementación creó un modelo híbrido en el que los miembros individuales del equipo podían actuar de manera federada, creando sus propios servicios virtuales para sus necesidades, accediendo a ellos, modificándolos, etc. Y cuando llegó el momento de integrar esos servicios virtuales en la arquitectura más grande, tenían un mecanismo para colaborar con el centro de virtualización de excelencia. El equipo podría agregar servidores adicionales para soportar la carga e incorporar servidores de rendimiento cuando el equipo de rendimiento se uniera.Imagen que muestra al equipo de desarrollo con servidores adicionales para admitir la carga y ajustar los servidores de rendimiento cuando el equipo de rendimiento se incorporó a la virtualización de servicios.

En ese momento, Sally contaba con una biblioteca completa de recursos virtuales y sus correspondientes casos de prueba automatizados. Contaba con una biblioteca de datos de prueba que alimentaban ambos artefactos de prueba. La mayor parte de la creación de servicios la realizaban los equipos individuales, y el equipo de Sally era el principal responsable de orquestar todos esos diferentes servicios virtuales en un "entorno".

El entorno era realmente solo una plantilla de activos virtuales, casos de prueba y datos de prueba integrados en una configuración específica para satisfacer una iniciativa de prueba. Construyeron muchas de estas plantillas de entorno y las alinearon con las diferentes aplicaciones de la organización.

Cuando era necesario probar una aplicación y el entorno real no era suficiente, el centro de excelencia de virtualización creaba un entorno con diferentes servicios virtuales , lo que permitía a los miembros del equipo realizar las pruebas. Los equipos dependieron cada vez más de los servicios virtuales para la ejecución de sus pruebas, y esto representó una transición natural hacia el proceso de entrega continua.

La implementación final y completamente realizada para la virtualización de servicios en la organización de Sally se ve así:Imagen que muestra una implementación completa para la virtualización de servicios. Los miembros individuales del equipo pueden crear servicios virtuales y casos de prueba dentro de sus navegadores.

Los miembros individuales del equipo crearían los servicios virtuales y los casos de prueba dentro de sus navegadores. Si era necesario actualizar los servicios virtuales o agregar lógica adicional, el COE de virtualización se encargaría de eso con sus escritorios profesionales.

Los servicios virtuales y los casos de prueba luego se combinarían dentro de la interfaz del cliente ligero. Cuando esos entornos necesitaban estar disponibles, su sistema de compilación los llamaría y los implementaría en la nube o en servidores dedicados. Luego, los casos de prueba automatizados se iniciarían, los resultados se enviarían a su tablero agregado y el entorno dinámico se destruiría.

Llegar a una implementación de virtualización completamente realizada

Las verdaderas pruebas continuas habilitadas por la virtualización de servicios no son algo que sucede de la noche a la mañana. Esta historia es real y todo es posible con la virtualización de servicios. Pero requiere que la organización comience desde cero, tal como lo hizo Sally. Por cierto, ahora forma parte de la junta ejecutiva.

Este enfoque es la mejor manera de llevar la virtualización de servicios a su organización, paso a paso, utilizada donde sea más valiosa. El viaje exacto de todos será diferente, pero los resultados finales deberían ser los mismos:

  • Reduzca el costo total de las pruebas.
  • Obtenga el poder de controlar su proceso de automatización de pruebas.
Cree simulaciones de servicio confiables y predecibles con Parasoft Virtualize
Prueba la edición gratuita