Veo algunos desarrolladores a los que les gusta usar máquinas virtuales para el desarrollo web. ¿Hay otros que hacen esto? Si hay, ¿por qué lo haces? ¿Existen ventajas y desventajas para desarrollar en una VM en lugar de en un entorno no virtualizado?
Creo que las cosas son más lentas en una máquina virtual.
Respuestas:
Yo uso máquinas virtuales para las pruebas de IE. Tengo una máquina Windows dedicada, pero me inclino por usar máquinas virtuales por varias razones:
fuente
La otra razón por la que las personas usan una VM para el desarrollo web es para virtualizar un entorno de servidor que pueden apagar fácilmente.
En casa siempre uso una máquina virtual para configurar proyectos personales para poder apagarlo por completo cuando quiero, por ejemplo, jugar un juego. En un entorno de trabajo, es posible que desee desactivarlo para tener todos los recursos para transcodificar un video a FLV.
Simplemente le brinda esa flexibilidad para hacer lo que quiera con sus recursos.
fuente
Prefiero usar máquinas virtuales para casi todo el desarrollo ... especialmente cuando estoy trabajando con un equipo de desarrolladores. Las máquinas virtuales me permiten crear un "entorno en una caja" que se puede configurar rápidamente con poco dolor de cabeza. Como uso un MBP como mi máquina principal, prefiero VMWare ... es mucho menos doloroso, especialmente en un entorno "principalmente Windows".
En cuanto a la velocidad, honestamente varía de una configuración a otra. Los únicos problemas reales que he visto con la velocidad de VM incluyen a.) No tener suficientes recursos físicos (memoria, etc.) o b.) No asignar suficientes recursos a su VM. De lo contrario, prefiero trabajar en una VM de Windows en mi Mac que en una caja nativa.
fuente
Los entornos de prueba son importantes como otros han mencionado.
Tengo una máquina virtual estrictamente para perfilar y depurar mi código que kcachegrind ya está configurado, junto con selenium, xdebug y algunas otras herramientas configuradas para perfilar y depurar fácilmente mi código. Sí, algunos pueden decir que este es un entorno de desarrollo, pero personalmente me gusta tener una VM en mi escritorio dedicada a este tipo de tareas.
Además, con respecto a la lentitud en una VM:
Las cosas son más lentas en una máquina virtual debido a la sobrecarga que requiere "virtualizar" el entorno. Sin embargo, la VM se está acercando cada vez más al hipervisor, lo que disminuye la sobrecarga requerida para la VM.
fuente
Yo uso máquinas virtuales todo el tiempo. Para fines de prueba, el razonamiento es obvio, pero también lo uso para mi entorno de desarrollo real, principalmente porque 1) hace que la migración al nuevo hardware sea obvia, y 2) me da una "instantánea" fácil (o conjunto de las instantáneas) recurren a las necesarias para esas configuraciones de mi entorno de desarrollo. Mis necesidades pueden ser únicas: soy principalmente un desarrollador de Delphi que usa varias versiones de Delphi y muchos componentes de terceros, pero la cantidad de tiempo y dolor de cabeza que me ha ahorrado mi entorno de desarrollo dentro de una máquina virtual, probablemente no pudo ser exagerado
Dicho esto, no escatime en la caja en la que los ejecuta, especialmente cuando se trata de memoria. ; )
fuente
Esta es una respuesta tardía. Estoy de acuerdo con todos los puntos en la respuesta aceptada, pero quería agregar que uso máquinas virtuales exclusivamente para el desarrollo web, y no solo para las pruebas. Estoy en un iMac usando VirtualBox para ejecutar Windows, Fedora y Ubuntu, a veces todo a la vez. No tengo ningún problema con el rendimiento.
Prefiero trabajar de esta manera porque trabajo para clientes que ejecutan servidores Fedora y Ubuntu y me permite hacer coincidir estrechamente el entorno de desarrollo con el entorno de producción. También me hace un mejor administrador de sistemas en las áreas que son más importantes desde el punto de vista del desarrollo.
fuente
He encontrado que usar máquinas virtuales es una buena forma de mantener una configuración de desarrollo específica del cliente.
En una empresa de consultoría anterior, Devs sabía que activar una VM específica significaba que tenía un entorno de trabajo para desarrollar / probar e implementar el software que admitíamos para ese cliente. Particularmente útil cuando se admiten algunos sistemas reales de bicho raro.
Para nuevas aplicaciones, tendrías la última y mejor configuración en tu máquina principal de desarrollo. Pero, ¿qué pasa cuando necesita corregir alguna aplicación VB6 antigua que su empresa aún admite? ¿Te apetece instalar Visual Studio 6 en tu encantadora máquina VS2010 limpia? ¡No lo creo!
También significaba que era bastante fácil para cualquier desarrollador apoyar a cualquier cliente.
fuente
Ciertamente he usado máquinas virtuales para probar sitios web, pero no para escribir código.
El beneficio de las máquinas virtuales es que puede tener diferentes sistemas operativos y navegadores configurados, para probar los inevitables errores css que descubrirá en IE6 / 7/8.
fuente
No veo una razón para desarrollar sitios web en una máquina virtual, no es necesario para un usuario de Windows.
Puede ejecutar todo en una instalación de Windows (IEs portátiles, Chrome, Firefox, Safari, ...),
o puede usar Expression SuperPreview para ingresar a un nuevo mundo de pruebas de navegador cruzado.
fuente
Utilizo una máquina virtual para asignar subdominios de virtualbox.me (soy dueño del dominio) a subdirectorios de una carpeta en mi máquina host compartida con el invitado.
Con esta configuración, simplemente creo un nuevo directorio e inmediatamente tengo un nuevo proyecto en su propio subdominio, es decir, / home / pete / virtualwww / my-super-project maps a http://my-super-project.virtualbox.me/
He escrito una guía para replicar esto (usa mod_vhost_alias y VirtualDocumentRoot) aquí:
http://otaqui.com/blog/1652/setting-up-a-virtualbox-virtual-machine-for-web-development-with-multiple-sites-using-mod_vhost_alias-and-virtualdocumentroot/
fuente