La virtualización de servicios no es nada nuevo, ya hace años que tenemos entre nosotros herramientas que ayudan a implementar la virtualización de servicios, justamente con este nombre. Aunque, si somos honestos, conceptualmente la virtualización de servicios lleva entre nosotros mucho más tiempo, incluso podríamos decir que es anterior a las TI.
Primero de todo aclaremos qué entendemos por virtualización de servicios. Personalmente lo describiría de la siguiente manera:
“Modelado que permite simular las respuestas que ofrece cierto sistema. Copia de modo acotado el comportamiento de un sistema, de tal manera que no es necesario contar con el sistema real accesible.”
Lo siguiente que convendría aclarar, es cuándo es necesario implementar dicho modelado en vez de consultar directamente al sistema real: se utiliza cuando no es posible o aconsejable utilizar los sistemas reales.
Un par de ejemplos aclarará cuando es de interés disponer de servicios virtualizados:
- Servicios en los que se tenga que pagar cierto importe para cada consulta realizada.
- Servicios que no estén accesibles, por ejemplo, por estar todavía en construcción.
Para cerrar el círculo, solo necesitamos aclarar por qué puede ser interesante semejante estrategia. Teniendo en cuenta a lo que nos dedicamos, la respuesta es obvia: disponemos de un mecanismo para hacer pruebas sobre sistemas (SUT) que dependan de otros sistemas, permitiéndonos:
- Iniciar las pruebas en el SUT sin vernos afectados por retrasos de desarrollo, problemas de estabilidad, … en sistemas que nuestro SUT necesite acceder.
- Evitar costes recurrentes en sistemas que consulten servicios que sean de pago.
- Poder avanzar la ejecución de pruebas para detectar defectos de forma prematura.
- …
Finalmente una última consideración: la virtualización de servicios pone foco justamente en virtualizar el servicio y además típicamente no de manera completa, sino, tal como se indicaba al principio, solamente una copia acotada del comportamiento del sistema, el necesario para la ejecución de las pruebas definidas. Con ello pretendo diferenciar esta virtualización con otras existentes mucho más “pesadas”, como son la virtualización de hardware o la virtualización de aplicaciones completas (por ej. mediante contenedores).
Después de esta resumida explicación de lo que es la virtualización de servicios, vuelvo al principio: la virtualización de servicios no es nada nuevo, pero ahora, y cada vez más, se están dando las condiciones para sacar el máximo provecho de esta aproximación al testing, en niveles de prueba en los que, hasta ahora, se había utilizado estrategias de mock/stubs. Esto es así por la facilidad y flexibilidad de implementación de servicios virtualizados en un sistema de integración continua, ofreciendo importantes ventajas:
- Amplio espectro de protocolos de comunicación y de datos soportados por las herramientas.
- Simplicidad de uso, menos complejidad técnica y más facilidad de mantenimiento que implementaciones a medida (mock/stubs).
- Industrialización corporativa de la solución de virtualización de servicios.
- Reutilización de servicios entre proyectos y áreas.
- Facilidad de comunicación e interacción con sistemas de integración continua.
Desde Sogeti, ofrecemos nuestra experiencia en testing y devops, así como nuestro conocimiento en diversas herramientas líder en el mercado, de las que somos partner, para evaluar cuál es la que mejor se adapta a cada una de las necesidades y colaborar en su despliegue y uso.
Marc Gurt
Service Manager| Digital Assurance & Testing | SOGETI España
Qué recomendaciones Open Source pueden ofrecer para la virtualización de servicios
Me gustaMe gusta