2008-12-25 14 views
7

Aquí está el problema. Uso alrededor de tres máquinas diferentes para el desarrollo. Mi pareja está usando dos. Tenemos que pasar por el mismo procedimiento de configuración anormal en las cinco máquinas para ponerse a trabajar.Configuración de un entorno de desarrollo DENTRO de una máquina virtual

Trabajando con un proyecto de php aquí, entonces: Instale y configure, PDT, un depurador de php y alguna versión de XAMPP. Luego es posible instalar un cliente svn y cualquier otra herramienta.

Nuevamente, a cada una de las cinco máquinas.

¿Qué pasa si, en cambio, hiciéramos todo esto una vez, en una máquina virtual configurada con la misma pila, mismas versiones, como el servidor de producción? Entonces, cada uno de nosotros podría tomar una copia de la imagen de VM, ejecutar esa imagen en cada una de las cinco máquinas y hacer todo nuestro desarrollo en esa VM. Pon Eclipse, apache, mysql, las obras, todo en ese vm.

Lo único negativo de este enfoque, y corrígeme en la única parte, es el rendimiento. Sin embargo, ¿es realmente tan importante? La máquina más lenta de las cinco es una Samsung NC10 alimentada por un procesador Intel Atom de 1,6 ghz.

¿Crees que esto es posible y prácticamente utilizable? ¿O estoy loco?

Respuesta

8

Uso una VM para desarrollo (ejecutándose en mi computadora portátil) y nunca he tenido problemas de rendimiento. Otro enfoque que podría tomar sería obtener una imagen del disco en el estado que desea. Use Acronis o Ghost para volver a crear imágenes de cada máquina cuando lo necesite. Solo demora entre 5 y 10 minutos restaurar una imagen en cualquier PC moderna.

+0

Aunque el tamaño de la imagen de la máquina virtual es enorme (alrededor de 10 GB), pero lo hará deshacerse de todos los demás problemas. Hoy en día, cuando los discos externos oscilan entre 500 GB y 1 TB, también puede compartir fácilmente esta imagen de VM entre sus compañeros. – Pradeep

+0

... Muy cierto, así es como operamos la mayor parte del tiempo. –

+0

Me alegra que la gente esté usando este enfoque y no lo estoy inventando. Lo intentaré. –

1

Sin duda se puede hacer. Lo que me apaga es el tamaño de la imagen de VM, que normalmente sería de varios GB. Tenerlo en una red compartida significa que puede llevar más tiempo transferirlo que luego lleva su proceso de configuración actual. Supongo que un disco duro externo sería la forma más fácil de moverlo.

El rendimiento no sería un problema con ningún desarrollo web.

Tengo que preguntar por qué sus máquinas actuales deben ser "reimpresas" cada vez que se sienta a trabajar?

+0

No cada vez, solo al comienzo de este proyecto. Todavía un dolor. –

2

Uso una máquina virtual para todo mi "trabajo", ya que lo mantiene alejado de mi "juego". Esta configuración me permite usar la VPN de la oficina sin exponer toda mi máquina al entorno de la oficina (que confío tanto como las internets. ;-) Además, no tengo que preocuparme por estropear mi entorno de desarrollo probando juegos u otro software. Mi VM del trabajo se está ejecutando actualmente dentro de VirtualBox pero he usado VMWare en el pasado. Solo me he dado cuenta de los problemas de rendimiento cuando utilizo programas intensivos en gráficos como Webex o el cliente de Terminal Server.

+0

+1, lo mismo aquí, la VM mantiene el trabajo fuera de la obra, y además puedo usar mi computadora portátil Apple en la red de Windows, a través de VMWare. – Karl

+0

¿Qué tipo de SO están virtualizando? Poseo un macbook de última generación y tengo Debian instalado en Virtualbox sin GUI y, por supuesto, funciona sin problemas. ¿Has intentado ejecutar OSX en la VM? Es el rendimiento aceptable? Planeo usar MAMP, sublime texto 2, Sequel Pro y Tower. – user1011444

1

Si está utilizando Windows, probablemente querrá usar SYSPREP en la imagen maestra para que la 'mini-instalación' se ejecute cuando arranque las máquinas virtuales por primera vez.

De lo contrario, en términos del punto de vista de Windows, las máquinas tienen exactamente el mismo SID, nombre de host y otras cosas: ejecutar varias máquinas con el mismo SID en la misma red puede causar muchos dolores de cabeza. Aún más si quieres que se comuniquen entre ellos.

1

He ejecutado websphere para zSeries en una máquina virtual vmware sin problemas y websphere requiere más recursos que cualquier pila de PHP. Me parece que tener una máquina multi core o al menos hyper threading hace que funcione mucho más rápido.

1

Con vmware, las operaciones de disco son más lentas.Para el desarrollo de PHP, dudo que sea un problema, pero definitivamente lo notarías si estás compilando un gran proyecto de C++. También está la VirtualBox de Sun, que es gratuita, y la última versión es bastante buena (pero no he visto hasta qué punto son lentas las operaciones de disco).

0

Estoy usando esa idea en la práctica. Las máquinas virtuales son geniales para el desarrollo.

  1. Para ejecutar en múltiples sistemas operativos y múltiples entornos de desarrollo independientes.
  2. Conservar entornos de desarrollo anteriores para soporte posterior.
  3. Se puede hacer fácilmente una copia de seguridad, cuando el disco duro se bloquea no es necesario comenzar desde el principio.
  4. Se puede copiar de desarrollador a otro, para que no haya que hacer tediosas instalaciones y configuraciones.

Por los lados son:

  1. máquinas virtuales son más lentas, es necesario ordenadores más potentes de lo que se necesitaría de otro modo. Yo recomendaría tener al menos 4 G de RAM, pero preferiblemente más como 16, procesadores rápidos de núcleo múltiple y discos duros rápidos.
  2. Copiando máquinas virtuales con sistema operativo Windows, cada copia utilizada de la máquina virtual debe tener su propia clave de producto. Cuando realiza una copia, debe registrarse con la nueva clave de producto.
0

¿Pensó en un administrador de configuración de software como ansible, chef or puppet? ¡Con tal software la automatización de tales tareas es muy fácil! Incluso puede crear vm nuevo y luego configurarlo.

Cuestiones relacionadas