Software

La virtualización ayuda a mejorar el desarrollo del software

El gran salto a la fama de la tecnología de virtualización fue dudosamente impulsado por la solución VMware Workstation, que permitió que usuarios individuales pudiesen ejecutar distintos sistemas operativos, versiones o aplicaciones en lugar de tener un entorno multi-arranque para cada uno. Es más, en muchas compañías la virtualización llegó a través de desarrolladores que usaban la tecnología por primera vez para llevar a cabo pruebas y desarrollos.
Aunque hoy la virtualización de ordenadores alimenta muchos entornos de producción, como servidores, equipos de escritorio y herramientas de aprovisionamiento, la virtualización también la está utilizando un creciente número de desarrolladores de software.

Proveer múltiples entornos de prueba
Mark Friedman, arquitecto de software, trabaja en la división de desarrollo de Microsoft en la que más de 3.000 personas crean Visual Studio y .NET Framework. El propio Friedman trabaja fundamentalmente en las herramientas de rendimiento que incluye Visual Studio Team System de Microsoft. Según éste: “Cerca de dos tercios del personal de esta división se encarga del desarrollo y de las pruebas, y la mayoría de esos desarrolladores y testers utilizan sistemas de virtualización (a través de la tecnología Microsoft Hyper-V) como una de sus principales herramientas de productividad”.
Una de las principales ventajas que tiene la virtualización es la capacidad de separar un entorno inestable, es decir, lo que obtiene cualquier desarrollador durante las primeras fases del diseño de una aplicación. Y es que, “durante el desarrollo de las herramientas de Microsoft – comenta Friedman–, las pruebas de las primeras versiones pueden desestabilizar todo el entorno de trabajo del desarrollador. Prácticamente cualquier cosa, salvo la más sencilla aplicación de escritorio, puede tumbar el sistema. A menudo les comento a mis desarrolladores que si no lo hacen de forma regular, es porque no están probando el sistema lo suficientemente bien”. Por ello, continúa Friedman, “apreciamos las tecnologías de virtualización porque ahorran tiempo y permiten a nuestros desarrolladores concentrarse más en las cosas importantes, no en los aspectos mundanos y extremadamente lentos”.
De la misma forma que lo hacen otras herramientas de virtualización, Microsoft Hyper-V permite al usuario realizar instantáneas del sistema en la última versión buena. “Creamos una herramienta que nos permite restaurar el sistema a cualquier estado previo correcto en cuestión de minutos”, comenta Friedman. “La alternativa es tener que volver a cargar una imagen del ordenador o volver a construir el entorno, lo que puede costar horas. Es tremendamente rápido”.

Virtualizacion

Control de calidad
El equipo de Friedman también hace un uso intensivo de la virtualización y de imágenes de máquinas virtuales en sus pruebas de control de calidad (QA). “Una vez que el producto pasa las pruebas de los desarrolladores, queremos ver, por ejemplo, sobre qué versiones del sistema operativo funciona bien. Para ello necesitamos probarlo tanto contra las versiones de 32 bits como de 64 bits. Utilizar imágenes de máquinas virtuales (VM) es la forma más rápida, barata y flexible de mantener una variedad de entornos de prueba. Su valor es incalculable. Ahorramos tanto tiempo que es difícil de creer”.
La posibilidad de realizar instantáneas y restaurar una imagen de trabajo en minutos, en lugar de esperar horas para reconstruir un sistema, es particularmente importante. “El proceso de búsqueda de errores conlleva tiempo. Se tarda uno o dos días en reproducir el entorno adecuado para generar determinado error, por lo que el tiempo que se dedica a tener que reconstruirlo una y otra vez es tiempo perdido”, afirma Friedman. “Y esto se traduce en una pérdida de productividad”.
Otro ejemplo del uso de la virtualización en este aspecto es el departamento de desarrollo de SiCortex, que utiliza la versión gratuita de VMware Server sobre un robusto servidor en rack (equipado con 2 ó 4 dual-core x86, 4 GB de RAM, y 300 GB de disco) que puede ejecutar de cuatro a ocho sistemas de control VM. Según afirma Adam Moskowitz, ingeniero de software de la compañía: “Como existe poca carga sobre el sistema de control, trabaja perfectamente con una menor inversión de capital. Cerca de la mitad de nuestros aproximadamente 25 ingenieros utilizan estos sistemas virtuales”.
Uno de los principales beneficios de virtualizar los sistemas de control, comenta Moskowitz, es la facilidad de realizar las pruebas. “¿Queremos un sistema experimental? Clona una VM estándar y ya lo tienes”.

Los límites de la virtualización
No obstante, los desarrolladores admiten que hay partes del proceso donde la virtualización aún no puede ayudar. “Un área donde la virtualización no sirve es para las pruebas de resistencia de nuestro producto, una aplicación de backup basada en red”, indica Eric Floehr, chief technology officer de 3X Systems, compañía que desarrolla y vende aplicaciones de backup remotas. “Aunque podemos probar 10 clientes simultáneos de forma virtual, no es una verdadera prueba de resistencia porque los 10 clientes sólo pasan por cuatro CPU físicas y dos NIC, restricciones que podrían no existir si fuesen 10 clientes físicos en el mundo real”.
Por su parte, John D. Mitchell, desarrollador de la compañía MarkMail, apunta que “la virtualización añade cierta complejidad y la actual generación de virtualizadores de escritorio todavía tienen demasiadas peculiaridades molestas, errores y funciones ausentes”, al menos en lo referente a su uso para el desarrollo de software. “Para realizar pruebas de carga o escala, tienes que trabajar sobre el hardware puro, la máquina física”, comenta Friedman, de Microsoft.

Beneficios reales
A pesar de estos inconvenientes, la virtualización ya ofrece beneficios reales a los desarrolladores. “La virtualización consigue que nuestros desarrolladores sean más productivos una vez que aprenden a trabajar con la tecnología”, afirma Friedman, de Microsoft. “Les permite dedicar más tiempo a codificar, probar y depurar. Elimina un montón de tiempo y retrasos dedicados a configurar y preparar entornos, algo a lo que no queremos que dediquen su tiempo”.

Revista Digital

Impresión profesional

HP Impresion Móvil Pymes