¿Hay algo como wamp / mamp que me ayude a ejecutar un servidor virtual en la nube en mi computadora?

Mientras respondo, aclararé algo de terminología para asegurarme de que estamos en el mismo tema. Si estoy malinterpretando su pregunta, actualícela o anótela en los comentarios y actualizaré mi respuesta.

La virtualización es donde utiliza algún tipo de tecnología (generalmente un hipervisor) para dividir servidores físicos (hosts) en múltiples servidores virtuales (máquinas virtuales o máquinas virtuales). Cada VM actúa como un servidor independiente, pero tiene límites en los recursos físicos del host al que puede acceder.

Puede utilizar un software de máquina virtual en su escritorio para experimentar con esto hoy. VMware, Parallels e incluso Virtualbox son entornos de virtualización simples e independientes que se ejecutan en cualquier PC de escritorio (o Mac).

Nube ” (en términos de infraestructura), se refiere al uso de la virtualización para obtener recursos de un grupo de servidores físicos. También hay algunos componentes de orquestación adicionales para iniciar y detener máquinas virtuales, moverlos a través de hosts y hacer mucho más que una simple virtualización. Además, los servicios en la nube incluyen servidores que no son de cómputo, como el almacenamiento o los equilibradores de carga. Por lo general, se presentan a las máquinas virtuales como servicios para ser consumidos y utilizados, en lugar de software que debe instalarse en un servidor.

Si está buscando diseñar una “base de datos en la nube”, voy a suponer que está buscando crear un almacén de datos que tenga algunas capacidades para almacenar pares clave / valor, tal vez algún esquema para organizar la información (o tal vez no) , y probablemente algún tipo de indexación para una búsqueda y recuperación rápidas. Esto puede implicar que escriba el suyo desde cero o use una base de datos existente que tenga las características que está buscando.

Si solo está buscando ejecutar una base de datos relacional en la nube, esa es una respuesta para una pregunta diferente. Si solo desea que un servidor virtual en su computadora experimente con una base de datos relacional, instale Virtualbox (gratis) y luego instale alguna distribución de Linux e instale MySQL, MariaDB o PostgreSQL.

Finalmente, MAMP / WAMP se refiere a “Mac / Apache / MySQL / PHP” y “Windows / Apache / MySQL / PHP”, que es la “pila completa” necesaria para ejecutar una aplicación. Esto es similar a LAMP, el más común “Linux / Apache / MySQL / PHP”. Esto puede ejecutarse en un servidor físico o una máquina virtual.

Asumiendo que no está buscando escribir el código para la base de datos subyacente desde cero, hay algunos almacenes de datos que funcionan bien con la escalabilidad de los servicios en la nube. En general, las nuevas bases de datos NoSQL están diseñadas para la escalabilidad más allá de una base de datos relacional. La idea es que generalmente puede agregar servidores adicionales para almacenar información, y el clúster extiende la información según sea necesario para crecer.

– Ahora, para responder a tu pregunta 🙂 –

Si esto es lo que está buscando probar y experimentar, entonces una solución simple para comenzar es usar Virtualbox. Si tiene un sistema informático lo suficientemente grande (al menos 8 GB de RAM, preferiblemente más), puede tener varias máquinas virtuales en su escritorio y tener una red virtual que las conecte. Luego puede instalar una pila WAMP / LAMP dentro de cada máquina virtual y la base de datos NoSQL que desea usar. O si está buscando escribir el suyo desde cero, tiene un entorno de red virtual para comenzar.

Si no tiene la capacidad de ejecutar múltiples máquinas virtuales en su escritorio, puede usar un proveedor de servicios de nube pública (como Internap) para activar servidores e instalar un clúster de almacenamiento / base de datos distribuido. Esto generalmente le costará alrededor de $ 0.10 / h por uso, y puede activarlos y desactivarlos cuando sea necesario. Sin embargo, tenga cuidado … si deja los servidores en 24 × 7, el medidor se está ejecutando y puede acumular fácilmente una factura por cientos de dólares si tiene varios servidores ejecutándose a la vez.

Aquí hay algunas bases de datos [de código abierto] para comenzar en la nube:

Apache Cassandra: una base de datos NoSQL distribuida diseñada para disponibilidad y escalabilidad. Similar a Amazon DynamoDB.
MongoDB: una base de datos sin esquema y orientada a documentos.
MemcacheDB: similar a Memcache, es un almacén distribuido de clave / valor diseñado para la persistencia (en lugar de la caché temporal). Creo que esto es similar a la oferta de Amazon SimpleDB.
Redis: un almacén avanzado de clave / valor, donde las claves pueden contener cadenas, listas, hashes, conjuntos ordenados, etc.

Los tres están diseñados para funcionar a escala, por lo que muchos de los conceptos subyacentes a la computación en la nube se aplican a estas bases de datos. También hay grupos de usuarios (al menos en los EE. UU.) Centrados en estas tecnologías, por lo que es posible que pueda encontrar algo de experiencia local para ayudarlo a comenzar.