Las máquinas virtuales en los entorno de desarrollo

En esta entrada quiero traer a colación un tema que me ha supuesto una enorme mejora, a la hora de industrializar el desarrollo de software, sobre la formas de trabajo de hace algunos años. Me refiero a la virtualización.

Todos conocemos las posibilidades de la virtualización, que nos permiten tener muchas máquinas virtuales en una única máquina física.

Yo quiero dar una visión de la virtualización desde el punto de vista de un equipo de desarrollo sobre las mejoras que nos proporciona, lo que se da en llamar devOps. Ya que a veces solo se ve la virtualización como una forma de ahorrarse tener muchos servidores físicos permanentemente levantados, que es el enfoque más típico de sistemas.

Algunas situaciones en las que me ha servidor la virtualización:

– Facilitar el acceso a las redes de los clientes:

Muchas veces cada cliente tiene su software de VPN particular, unos con un fabricante y otros con otro, así que si no tienes la suerte de trabajar para un único cliente te puedes encontrar con varios clientes de VPN instalados en tu máquina. Por experiencia, al de 4 programas de VPN, el windows deja de funcionar y ni siquiera arranca.

Tener una máquina virtual por cada cliente te permite poder solventar esta casuistíca.

– Evitar el reinstalar programas compartidos

Aparte de permitir tener máquinas virtuales para tener las VPN de cada cliente, estas máquinas virtuales te permiten tener ciertas infraestructuras de forma compartida para interactuar con la infraestructura del cliente. En muchos casos en cada cliente necesitas una serie de programas, como clientes FTP, navegadores, herramientas de compilación, etc…

Yo he tenido la experiencia, trabajando para un cliente, en el que yo tenia instalados los programas necesarios para acceder a las máquinas del cliente (favoritos incluidos) en mi máquina y cuando me fui de vacaciones se la tuve que dejar, con las contraseñas y demás a una compañera. Técnicamente el ordenador es de la empresa, pero siempre acabas teniendo algunas cosas personales. Para evitar esto utilizamos una máquina virtual para dejar todos esos programas instalados y así que varias personas pudiesen utilizarla.

– Facilitar el realizar pruebas

Antes de la existencia de la virtualización, cuantas veces no hemos tenido que utilizar nuestro ordenador para probar programas, que al final acaban dejando basurilla en el ordenador haciendo que no vaya muy fino. Y al final teniendo que gastar tiempo en reinstalarlo.

Con las máquinas virtuales te puedes permitir tener máquinas de usar y tirar para realizar estas pruebas. Con una plantilla de cada tipo de instalación que utilices puedes crearte las máquinas que necesites.

– Facilitar tener configuraciones del cliente

A todos los que nos gusta tener versiones actualizadas de los programas que usamos, sobre todo navegadores, el tener que utilizar versiones homologadas por los clientes es un poco fastidio, sobre todo cuando son versiones muy viejas.

Y el problema ya se complica si trabajas para diferentes clientes, cada uno con sus versiones diferentes.

La virtualización te permite tener máquinas con la configuración requerida, y usarlas solo para realizar esas pruebas.