¿Qué es Compute?
Esta infraestructura se compone principalmente de Máquinas Virtuales y Contenedores. Veamos que es cada una de ellas y sus diferencias.
¿Qué es una Máquina Virtual?
Es un software capaz de cargar otro sistema operativo en su interior, como si fuera un ordenador dentro de un ordenador. Existen 2 tipos de VMs: de sistema y de proceso:
- De sistema: Emula un ordenador al completo. Es decir, tiene su propio disco duro (HDD, SDD), memoria RAM, tarjeta gráfica...Todo el hardware y Sistema Operativo. Esto quiere decir que cada elemento tiene sus características técnicas: 20 GBs de Almacenamiento, 8GBs de RAM, etc.
- De proceso: Emula una aplicación concreta, o un proceso concreto, no el ordenador en su completitud. Permiten disfrutar de aplicaciones que se comportan de forma igual en plataformas distintas, como Windows, Linux o Mac.
Supongamos que estás ahora mismo dentro de una VM. ¿Podrías acceder a la información del ordenador Host? NO, están aisladas
¿Para qué sirve?
Entre las principales aplicaciones se encuentran:
- Probar aplicaciones en distintos sistemas operativos: Los desarrolladores de aplicaciones tienen que asegurarse de que funciona correctamente en cada sistema operativo. Esto es mucho más sencillo si se emplean VMs.
- Medida de seguridad: Al estar aislada, si entra un virus, se elimina información, la aplicación no funciona correctamente... se limita el daño a la VM y no al ordenador Host.
- Dinamismo/Agilidad: Pueden guardarse copias exactas de datos, apliarse, moverse de manera rápida y sencilla.
- Ampliación de recursos de una red local o virtual.
- Backup de un centro de datos principal. Puede ejecutar las aplicaciones críticas y después, apagarlas cuando el centro de datos vuelva a estar operativo.
La selección de una imagen es la decisión más importante. Una imagen es una plantilla preconfigurada que se usa para crear una VM. Incluye Sistema Operativo, herramientas de desarrollo y entornos de hospedaje web.
¿Qué son los Contenedores?
Los contenedores son paquetes de software estándar en los que se agrupa el código de una aplicación, con las bibliotecas y los archivos de configuración necesarios.
Haciendo un símil con el mundo del transporte/logística, se usan para aislar diferentes cargas del entorno.
Dado que se abstraen las diferencias entre Sistemas Operativos e infraestructuras subyacentes, se pueden implementar y ejecutar en cualquier lugar.
Las principales ventajas que ofrecen frente a las VMs son los siguientes:
- Agilidad: portátiles. optimizan el ciclo de desarrollo y pruebas. Aumentan la eficacia y colaboración entre equipos.
- Portabilidad: Permiten crearse, escalarse y detenerse de forma dinámica rápidamente.
- Escalabilidad horizontal.
En resumen, las máquinas virtuales permiten crear sistemas completamente aislados, con mucho control sobre el entorno, y capacidad de usar múltiples sistemas operativos, mientras que los contenedores permiten desplegar y detener aplicaciones de forma muy rápida y aprovechar mejor los recursos de hardware