Máquinas virtuales de servidor y red Unix/Linux

Estoy buscando desarrollar un sistema de software que involucre una serie de servidores que se comuniquen entre sí a través de una red. Deberá estar basado en Linux (preferiblemente Ubuntu). Utilizará sockets TCP/IP para comunicarse.

Antes de comprar hardware para esto, me gustaría probar mi diseño y código usando máquinas virtuales.

Por lo tanto, mi pregunta real es: ¿Existe un sistema de máquina virtual basado en Linux que le permita iniciar múltiples servidores (virtuales) y hacer que se comuniquen entre sí?

Respuestas (2)

De hecho, hay :) Estoy seguro de que esto se puede hacer usando Xen o KVM, pero lo más fácil que he encontrado (si he entendido su pregunta correctamente) es VirtualBox de Oracle. Hay dos versiones generalmente disponibles para descargar, la edición de código abierto, que generalmente se encuentra en la mayoría de los repositorios de las principales distribuciones. (por ejemplo sudo aptitude install virtualbox, ), o puede agregar la versión propietaria ligeramente más nueva del sitio web de VirtualBox (hay un repositorio que es fácil de configurar).

Deberá configurar la configuración de red tanto en cada máquina virtual como en su PC/portátil. Es un proceso con bastantes pasos, pero no demasiado complejo.

Sin regurgitar lo que otros ya han descrito en Internet, aquí hay un enlace a una guía decente: http://technology.amis.nl/2014/01/27/a-short-guide-to-networking-in-virtual-box -con-oracle-linux-dentro/

Parece una muy buena opción; esperará unos días antes de aceptarla como definitiva.

Una nueva alternativa que parece estar ganando mucha tracción es Docker , que le permite crear una "receta" de máquina virtual (por ejemplo, use este sistema operativo, instale estos paquetes y, al arrancar, ejecute ese comando) y ejecútela rápidamente desde el comando. línea.

Las ventajas son que no es una VM completa, lo que significa que aún puede compartir algunos archivos comunes con el host sin mucha molestia, al vincular las rutas de los invitados con las del host. Cada imagen contiene un kernel de Linux y el sistema operativo base, y se ejecuta de forma independiente: puede crear una imagen y arrancarla varias veces al mismo tiempo, las mantendrá bien aisladas.

Es bastante simple de configurar y no interfiere con el resto de su sistema.

Para conectar varios contenedores, hay un buen tutorial en la documentación oficial: Vincular contenedores entre sí

No estoy asociado con Docker de ninguna manera, excepto como usuario.

Como señaló ber444 , ¡Google Cloud Platform ahora es compatible con Docker ! Por lo tanto, puede pasar fácilmente sus pruebas locales a la nube sin problemas.

Otra cosa buena aquí es que puede mover/implementar los contenedores directamente cuando entra en producción
@JourneymanGeek De hecho
Tenga en cuenta que Google Cloud ahora es compatible con Docker: googlecloudplatform.blogspot.ie/2014/11/…