X
BLOG

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

Cómo tomar una herramienta de virtualización de servicios gratuita y escalarla a una implementación completa de DevOps Tiempo de leer: 11 minutos
La mejor manera de llevar la virtualización de servicios a su organización es paso a paso, utilizado donde es más valioso, para reducir el costo total de las pruebas y obtener el poder de controlar verdaderamente su proceso de automatización de pruebas con un flujo de trabajo DevOps completamente automatizado.

Cuando decida que es el momento de, por ejemplo, perder algo de peso, puede investigar un poco y terminar con consejos como "Sarriba bebiendo alcohol! ¡Empieza a comer col rizada! ¡Vete a la cama a las 8 en punto! ¡Camine 5 millas todos los días! " Y aunque podría tener sentido adoptar todas estas actividades para adoptar un estilo de vida saludable, si intenta adoptarlas todas a la vez, probablemente fracasará. En su lugar, debe ir paso a paso: agregue un ejercicio adicional aquí, haga una elección saludable de alimentos allí ... lentamente suba a un nivel en el que realmente pueda hacer dieta como un profesional.

La virtualización de servicios no es diferente. A lo largo de los años, he ayudado a numerosos clientes a adoptar este valioso habilitador de DevOps, y descubro que la mayoría de las organizaciones quieren hacer el enfoque del Big Bang: traer de inmediato una solución completamente implementada que abarca varios equipos y se integra como parte de su canalización de entrega continua. Y si bien, sí, todas esas cosas son esenciales para realizar plenamente el ROI potencial que la virtualización de servicios puede brindarle, si intenta hacer todas esas cosas desde el primer día, probablemente no podrá escalar de manera efectiva su implementación completa de DevOps. Entonces, ¿cómo llegas ahí?

En este blog, compartiré solo eso. Vamos a seguir a una persona, desde su única licencia de virtualización de servicios gratuita hasta la implementación completa de la virtualización de servicios de su organización, integrada en su flujo de trabajo de DevOps. Esto se basa en una historia real, pero en aras del anonimato, vamos a llamar a esta persona Sally.

Paso 1: Una única versión de escritorio gratuita de Parasoft Virtualize

Conoce a Sally the Developer. Sally era inteligente y podía desarrollarse a un ritmo mucho más rápido que sus colegas. Había comenzado a usar simulacros para aislarse durante la fase de prueba, pero pasaba mucho tiempo desarrollando el tipo de lógica que necesitaba construir en esos sistemas porque las aplicaciones reales que estaba eliminando eran algo complejas.

De modo que aprendió cómo se podía utilizar la virtualización de servicios para crear un servicio virtual más complicado en muy poco tiempo. Ella descargó el versión gratuita de Parasoft Virtualize para obtener la virtualización de servicios de forma gratuita, lo que le permitió comenzar a crear servicios virtualizados y modificarlos fácilmente a medida que los servicios reales estaban experimentando cambios. Como resultado, pudo realizar todas sus pruebas y desarrollo en un entorno completamente aislado.

Paso 2: Más miembros del equipo con licencias de escritorio gratuitas

Mientras hablaba de 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 y simplemente podían apuntar sus aplicaciones a la máquina de Sally y cosechar los beneficios.

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

Paso 3: Una licencia empresarial de Parasoft Virtualize para admitir el entorno completo

Un día, la gerencia se acercó al equipo de Sally, quienes tenían curiosidad acerca de la solución de virtualización de servicios que el equipo estaba usando y que les ayudó a construir y probar las aplicaciones más rápidamente. Querían tener una discusión sobre su aplicación práctica en un entorno más amplio. Hubo algunos rumores sobre las interrupciones en los entornos de integración y producción causadas por aplicaciones heredadas. Las aplicaciones se basaban en una serie de bases de datos de Oracle, así como en un ESB complejo y un mainframe.

Esos sistemas fueron difíciles de probar por una serie de razones, y Sally y su equipo pudieron demostrar que era fácil simular los servicios detrás del ESB porque eran servicios básicos de REST y SOAP, y un par de JMS y MQ con XML de cosecha propia. Para abordar el hardware heredado, necesitaban potenciar su escritorio de virtualización de servicios, por lo que se actualizaron a la versión completa de Parasoft Virtualize.

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 administración. Se necesitaron unos días para asegurarnos 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 en realidad tenían costos reales asociados.

Paso 4: Un equipo de virtualización de servicios que afronta los desafíos clave de las pruebas

Luego, el equipo de administración dio el siguiente paso valioso para su organización, creando un centro de virtualización de servicios dedicado de excelencia dentro de la organización que podría aprovecharse para construir servicios virtuales siempre que surgieran nuevos desafíos. Sally, por supuesto, era la persona idónea para liderar el equipo.

Sally comenzó a crear procesos en torno a la incorporación de iniciativas de virtualización y a crear criterios de aceptación, por lo que el equipo en sí no se convirtió en un nuevo cuello de botella. La gobernanza se convirtió en una parte importante de la conversación. El equipo estableció una serie de roles y responsabilidades para garantizar que cada proyecto de virtualización fuera exitoso. Había 5 roles:

  1. El probador. Siempre que cree un servicio virtual, debe tener un razón para virtualizar el componente en particular. Muy a menudo, el equipo recibía solicitudes para simular una aplicación no confiable en el entorno. Cuando tenían la conversación inicial con el solicitante, preguntaban "¿Qué es lo que no puedes hacer?" Esta pregunta fue fundamental porque debe tener criterios de aceptación claramente definidos para tener una definición de "terminado" para un activo virtual. El evaluador se convierte en una parte esencial de este proceso porque puede definir qué casos de prueba deben ejecutarse con éxito y el equipo de virtualización sabrá que ha creado un activo virtual exitoso cuando se logre.
  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 un esfuerzo mínimo, es útil tener conocimientos de dominio sobre la aplicación que está simulando. Entonces, el desarrollador se convirtió en una parte esencial del proceso de creación de activos virtuales, dando explicaciones de cómo funcionaban los servicios para que cuando se crearan los servicios virtuales, se entendiera por qué funcionaba de la manera en que lo hacía.
  3. Gestión de datos de prueba. Se puede argumentar que muchos desafíos de virtualización de servicios son en realidad desafíos de datos de prueba en su 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, por lo que cuando se identifican los casos de prueba y se acuerda el comportamiento, es importante que el entorno que va a grabar tenga los datos de prueba adecuados en el momento de la grabación. Entonces, si bien los equipos de administración de datos de prueba tenían un papel mínimo en el proceso de virtualización en sí, era crucial incorporarlos al proceso antes de crear la oferta inicial.
  4. Operaciones Los servicios virtuales replican los servicios reales, por lo que si ha creado correctamente el servicio virtual, es posible que un usuario no sepa que está utilizando 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 apuntar la aplicación al punto final 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 podría ser controlado por el equipo de Sally. Pero conseguir ese conjunto de conexiones 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 realmente todas las tuberías, el equipo estaría listo y sería capaz de entender lo que estaba sucediendo. teniendo lugar.
  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, ya que aclara las necesidades para que los proyectos de virtualización sean exitosos. Cada miembro del equipo de virtualización de servicios tenía un 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 5: Agregar un servidor de transición de virtualización

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 acceden a los servicios virtuales. Así que Sally decidió que era hora de actualizar su arquitectura de implementación una vez más, y adquirieron un servidor de almacenamiento intermedio de virtualización.

Esto permitió a cada miembro del equipo unir fuerzas y compartir sus activos virtuales. El servidor estaba "siempre encendido" y actuaba como una biblioteca virtual de artefactos. El servidor estaba conectado al control de origen, por lo que, a medida que se implementaban diferentes versiones de los servicios en el servidor, se registraban automáticamente. Esto le permitió al equipo tener un punto central de la verdad para todos los activos virtuales, y nadie tuvo que adivinar donde estaba la versión más reciente.

El equipo tarareó alegremente durante varios meses resolviendo desafíos grandes y significativos para la organización. Había crecido en tamaño y había agregado algunos miembros más. Para aumentar la visibilidad y la conciencia del equipo (y también aumentar el tamaño de su presupuesto), Sally implementó el programa "Hoo-Rah". Cada vez que el equipo construía algo con un ROI cuantificable, realizaban un seguimiento de 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 estos "hoo-rah" 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 mediante la simulación de servicios que no estaban listos para trasladarse a la nube. Esto permitió que la transformación ocurriera 2 semanas antes de lo programado porque pudieron realizar la validación en fases pero aún funcionaron a pesar de que faltaban piezas. Esto les ahorró $ 45,875 en horas hombre para el proyecto.
  • El equipo administró de manera proactiva un cambio de servicio de terceros mediante la creación de una representación virtual del nuevo servicio, brindando acceso a desarrollo / prueba de 3 a 2 semanas antes. Esta gestión de cambios redujo el tiempo de inactividad no planificado asociado con servicios de terceros (~ 6%) para un programa de ahorro de $ 3.
  • 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ó con éxito 112 servicios requeridos para el escenario de regresión de entrada de clave maestra. Esto permitió al equipo implementar los servicios virtuales en torno al servicio de entrada clave y redujo la necesidad de un entorno de rendimiento físico, lo que le permitió a la organización ahorrar $ 123,654 en costos de inversión de capital designados para adquirir un entorno de rendimiento adicional.

Estos correos electrónicos “hoo-rah” fueron vitales para incorporar equipos adicionales, pero también ayudaron a las partes interesadas clave de la empresa 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

Luego, una noche a fines del verano, un miembro del equipo de seguridad estaba haciendo una auditoría de una aplicación crítica y descubrió un vector de ataque potencial en el sistema que podría ser explotado y causar no solo la filtración de datos confidenciales de los clientes, sino también forzar a la organización. fuera de cumplimiento. Si no se remedia rápidamente, la organización se vería obligada a actualizar el comité de cumplimiento y comenzar el proceso de penalizació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 al entorno de producción y todo irí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. A Sally la llamaron a media noche y le pidieron que se 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 la aplicación no tenía que volver a implementarse, simplemente podían modificar el comportamiento a medida que los desarrolladores realizaban sus cambios y eliminar todas las diferentes combinaciones que llevaron al potencial exploit. No hace falta decir que el equipo logró poner en producción un parche caliente que le ahorró millones a la empresa.

Paso 6: Agregar un espacio de trabajo colaborativo para permitir la integración continua como parte de DevOps

El equipo del centro de excelencia de virtualización de servicios de Sally ahora era popular entre los desarrolladores y evaluadores, y muchos de ellos comenzaron a solicitar acceso a Parasoft Virtualize ellos mismos para poder hacer sus propios prototipos y validar escenarios negativos y positivos. Sally tenía la infraestructura para soportarlo, pero no necesariamente necesitaba darles el martillo pesado que era la versión de escritorio profesional, por lo que actualizó su infraestructura nuevamente e incluyó la interfaz de cliente ligero de Parasoft para habilitar completamente sus flujos de trabajo de DevOps. Este panel de control centralizado dio acceso a cualquier usuario de la organización y les permitió crear servicios virtuales y casos de prueba directamente desde su navegador.

Esta evolución del despliegue creó un “modelo híbrido”, en el que los miembros individuales del equipo podían actuar de forma federada, creando sus propios servicios virtuales para sus necesidades, accediendo a ellos, modificándolos, etc. Y cuando llegó el momento de integrar esos virtuales servicios 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, así como instalar servidores de rendimiento cuando el equipo de rendimiento se incorpore.

En este punto, Sally tenía una biblioteca completa de activos virtuales, así como los correspondientes casos de prueba automatizados. Tenía una biblioteca de datos de prueba que se alimentaban de estos dos artefactos de prueba. La mayor parte de la creación real del servicio estaba a cargo de 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 en realidad 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. Crearon muchas de estas plantillas de entorno y las alinearon con las diferentes aplicaciones de la organización.

Siempre que sea necesario probar una aplicación y el entorno real no sea suficiente, el centro de excelencia de virtualización creará un entorno de diferentes servicios virtuales y permitirá que los miembros del equipo realicen pruebas. Los equipos se volvieron cada vez más dependientes de los servicios virtuales como parte de la ejecución de sus pruebas y fue una transición natural hacia la canalización 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í:

Los miembros individuales del equipo crearían los servicios virtuales y los casos de prueba dentro de su navegador. Si los servicios virtuales necesitaban actualizarse o era necesario agregar lógica adicional, el COE de virtualización se encargaría de eso con sus escritorios profesionales. Luego, los servicios virtuales y los casos de prueba se combinarían dentro de la interfaz del cliente ligero, y cuando esos entornos necesitaran estar disponibles, su sistema de compilación los llamaría y los implementaría en la nube o en servidores dedicados. A continuación, se iniciarían los casos de prueba automatizados, los resultados se enviarían a su panel de control agregado y se destruiría el entorno dinámico.

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

La verdadera prueba continua habilitada por la virtualización de servicios no es algo que suceda 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 se comprometa y comience desde cero, tal como lo hizo Sally. (Por cierto, ahora está en la junta ejecutiva). Esta es la mejor manera de llevar la virtualización de servicios a su organización, paso a paso, utilizada donde es más valiosa. El viaje exacto de cada persona será diferente, pero el resultado final debería ser el mismo: reducir el costo total de las pruebas y obtener el poder para controlar verdaderamente su proceso de automatización de pruebas.

Obtenga Parasoft Virtualize Community Edition

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