¿Alguien usa máquinas virtuales para el desarrollo web y por qué? [cerrado]

10

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.

7wp
fuente
Además de la virtualización, también hay sistemas basados ​​en imágenes como Squeak y Pharo (un derivado de Squeak).
Jesse Millikan
@Jesse Millikan No estoy seguro de lo que quieres decir. ¿No son Squeak y Pharo un lenguaje de programación? Estoy tratando de entender cómo se relacionan con las máquinas virtuales.
7wp

Respuestas:

20

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:

  • Es una molestia cambiar de computadora, incluso si está justo a tu lado
  • Es extremadamente fácil revertir una VM para tener un entorno de prueba limpio
  • Prefiero usar un entorno que los usuarios realmente usarán en lugar de kludges como IETester, y generalmente no puede ejecutar varias versiones de IE al mismo tiempo.
  • Es más barato ejecutar múltiples instancias de VM que comprar múltiples computadoras de prueba
  • Las máquinas virtuales, al menos las de Mac OS X, se han vuelto tan buenas en los últimos años que el estigma "lento" dado a las máquinas virtuales no tiene justificación.

fuente
2
Las máquinas virtuales tienen una buena velocidad, pero solo si tiene la memoria de reserva para admitir una correctamente.
Matthew Scharley
@Matthew: Sí, pero la mayoría de las computadoras en estos días vienen con un estándar de 4GB, y para un desarrollador web, eso es suficiente para ejecutar al menos una (si no dos) máquinas virtuales simultáneamente.
7

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.

Matthew Scharley
fuente
3

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.

Casey
fuente
2

Los entornos de prueba son importantes como otros han mencionado.

  • prueba del navegador (es decir, safari, etc.)
  • entorno de prueba limpio
  • fácil de tener múltiples configuraciones
  • pruebas de accesibilidad (lectores de pantalla y similares)

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.

Chris
fuente
2

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. ; )

Jamo
fuente
1

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.

bogeymin
fuente
1

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.

davewasthere
fuente
0

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.

David_001
fuente
0

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.

Tamara Wijsman
fuente
Cosas como Portable IE, Expression SuperPreview, IETester son , para todos los efectos, entornos virtualizados. En realidad, no está ejecutando una copia del mundo real de versiones anteriores de IE, y en el caso de cosas como SuperPreview e IETester, ni siquiera tiene acceso al navegador Chrome o la arquitectura de complementos. Más allá de IE, no tiene acceso a otras versiones de SO de los mismos navegadores. Por ejemplo, Safari en Mac OS X tiene características que no existen en Safari para Windows, y Chrome para Mac generalmente va a la zaga de Chrome para Windows.
¡No no no! Portable IE, Expression SuperPreview, IETester se ejecutan de forma nativa en su sistema, no hay virtualización involucrada. Está ejecutando una copia del mundo real que se ajustó para ejecutarse en el entorno actual y tiene el mismo comportamiento ... No es necesario tener acceso a la arquitectura del navegador Chrome o plugin cuando se desarrolla en la web. Para Safari, las características adicionales vuelven a ser irrelevantes para el desarrollo web entre navegadores. Para Chrome, las versiones se pueden usar simultáneamente ... Si uno realmente necesita probar cada versión del navegador en cada versión del sistema operativo, hay browsershots.org para ese propósito.
Tamara Wijsman
Intente probar la integración con varias versiones de Office. Las máquinas virtuales siguen siendo increíblemente útiles para tener.
davewasthere
@davewasthere: ¿Y cómo se relaciona Office con el desarrollo web? Estoy seguro de que las máquinas virtuales tienen su uso para varias cosas, pero para el desarrollo web está bien sin él ... Incluso se pueden instalar varias versiones de Office y Visual Studio juntas sin una máquina virtual, pero de hecho, hay límites y compensaciones donde usted Realmente necesito una VM.
Tamara Wijsman
@TomWij: tengo un cliente con una aplicación de intranet en ASP.Net que se integra con Word. Como usan varias versiones de Office, es bueno poder tener una imagen con cada versión instalada. Sé que es posible lado a lado Office e IE. Pero en realidad me parece un dolor. Las máquinas virtuales parecen mucho más limpias / fáciles ...
davewasthere
0

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/

pete otaqui
fuente