2010-09-08 52 views
5

Tengo una máquina con Windows 7 en la que hago PHP/MySql Dev y codificación .NET/C#/Sql Server. Debido a una reciente reinstalación, pensé que podría ser un momento ideal para intentar mantener mi máquina un poco más limpia en lugar de instalar tanto Apache como IIS, etc.Desarrollo de pila de VirtualBox Ubuntu LAMP, con SVN y CruiseControl/phpUnderControl?

Instalé VirtualBox, con Ubuntu 10.04 como sistema operativo invitado , con el plan de mover mi desarrollo de PHP desde mi antigua plataforma de Windows/Apache/MySql a esta imagen virtual. Además de esto, quiero agregar CruiseControl/phpUnderControl a mi proceso de desarrollo de PHP.

Hasta ahora tengo Ubuntu 10.04 instalado con una pila LAMP, además de Netbeans para PHP, MySQL Workbench, etc., que es efectivamente el mismo que mi antiguo Windows Dev configurado, pero ahora también he instalado SVN y CruiseControl (aún no he instalado phpUnderControl, pero ese es el próximo paso).

Mi pregunta es, ¿puedo usar esta imagen virtual como mi entorno de desarrollo "local" y como servidor de compilación, para no tener que ocupar mi máquina nativa de Windows con software relacionado con MySql/PHP (lo que significa puede mantenerlo limpio y agradable para el desarrollo de .NET)?

Imagino que necesitaría el servidor web virtual para poder servir tanto para una versión de desarrollo "local" de cualquier proyecto dado en el que estoy trabajando, como para una versión provisional, que se construiría usando cruisecontrol/svn commits ?

¿O debería separar mis servidores de compilación y desarrollo, tal vez mantener el desarrollo local en Windows, y solo usar la imagen virtual para el servidor de compilación? o tal vez tener dos máquinas virtuales separadas para diferentes propósitos?

Agradecería algunos consejos sobre la mejor manera de configurar esto. Uno de los proyectos en los que quiero trabajar es bastante complejo, así que quiero asegurarme de que lo entiendo de la manera correcta antes de comenzar el proyecto, de modo que pueda garantizar que el proyecto se mantenga bien con control de versiones, pruebas unitarias e integración continua. , si alguna vez necesito involucrar a otros desarrolladores en el proyecto.

Respuesta

5

Si está buscando mantener su caja de Windows limpia de las herramientas de MySQL/PHP entonces recomiendo encarecidamente el enfoque de dos máquinas virtuales. Una distribución de Linux de escritorio para el desarrollo con LAMP, etc. para el cambio rápido de código/depuración y una que refleja la instalación real de su servidor (con la adición de svn, etc.) para sus compilaciones de prueba.

Esto le brinda grandes beneficios tanto para tener un buen entorno de desarrollo como para lo más importante tener un servidor de prueba que refleje la operación de su código en el servidor en vivo. De esta forma, puede mantener actualizada su VM de entorno de desarrollo con las últimas actualizaciones para la distribución (kernel, herramientas, etc.) y mantener la VM de compilación en las versiones de aplicaciones que estén en la máquina en vivo. Esto elimina las conjeturas de "¿es la nueva versión de la biblioteca X o mi código?".

Si quieres ir un poco exagerado, en realidad querrías 3. Uno para el desarrollador, uno para la integración SVN/continua y otro que refleje exactamente tu servidor para que puedas probar la implementación/configuración del sistema.

+0

Consideré el enfoque de caja múltiple, pero no estaba seguro de si era excesivo tener 3 instancias ejecutándose simultáneamente, pero me has convencido de sus beneficios. –

3

Si está considerando tener su máquina virtual para desarrollo, ¿por qué no configurarla exactamente como lo haría con su entorno de producción/producción?

Además, puede configurar su máquina virtual para alojar el depósito de código y el servidor web, y luego conectar sus herramientas que son locales a su máquina host (Windows). De esta forma, puede desarrollar en su caja de Windows, conectada a la VM.

Esto le permite hacer todo en su entorno local mientras simula el entorno del servidor en su VM.

VirtualBox también hace muy bien las redes, y usted debe poder hacer que su host de Windows se conecte a través de la red al servidor como si fuera realmente otro nodo en la red.

+0

Sí, me ha impresionado lo fácil que ha sido tener una máquina virtual en funcionamiento en la red. Configuré una IP fija para la VM que configuré hasta ahora, así que pude acceder desde mi computadora máquina, no hay ninguna razón por la que no podría configurar varias máquinas virtuales con el mismo enfoque. Creo que iré con el enfoque de 3 máquinas, uno para desarrollo, uno como servidor de compilación SVN/CI y otro para reflejar el entorno en vivo. –

+0

¿Qué herramientas de VM recomendaría usar para el desarrollo? – BrightIntelDusk

Cuestiones relacionadas