
Tabla de contenidos
Sobre el software de virtualización
El software de virtualización nos permite imitar las características de un determinado entorno, que puede ser un hardware, (PC, Macintosh, …) o bien otro software (Linux, Windows, Mac OS, …), formando así un sistema virtual.
Pongamos como ejemplo que desarrollamos una aplicación que corre sobre un GNU/Linux Debian, con una serie específica de paquetes instalados. Al encapsular este Debian en un contenedor, lo convertimos en una plataforma portable.
Este tipo de tecnología, ha supuesto una gran revolución, en el ámbito de la reducción de costes, la facilidad en el desarrollo, etc.
Docker
Docker es una plataforma de software libre de virtualización, que permite crear, probar e implementar aplicaciones de forma mucho más rápida.
La idea principal consiste en aislar y estandarizar entornos, evitando así conflictos entre lenguaje y versiones, y permitiendo producir código con mayor rapidez.
Docker empaqueta software en unidades llamadas contenedores que incluyen todo lo necesario para que el software se ejecute, incluidas bibliotecas, herramientas y demás. Esto nos proporciona la certeza de que el código se comportará siempre de igual forma.
Docker es, por consiguiente, un sistema operativo para contenedores. Los contenedores son un mecanismo de empaquetado lógico donde las aplicaciones tienen todo lo que necesitan para ejecutarse.
Algunas características clave de Docker y/o en general, del desarrollo de software basado en contenedores:
- Gran ecosistema de herramientas y aplicaciones para utilizar con Docker.
- Aislamiento. Los contenedores encapsulan las aplicaciones, lo que permite reemplazar/actualizar una sin tocar el resto.
- Portabilidad: Desarrolla en equipos locales o entornos de prueba, impleméntalo en la nube o en servidores remotos, y ejecútalo en cualquier parte.
- Ligero. Los contenedores comparten el núcleo del host, lo que los hace mucho más eficientes en términos de recursos del sistema que las máquinas virtuales.
- Escalable. Posibilidad de aumentar y distribuir réplicas de contenedores.
Existen dos modelos de licencia de Docker: Docker Community Edition (CE) software libre y gratuito, y Docker Enterprise Edition (EE) basado en suscripción, con características adicionales.
Docker fue inicialmente diseñado para el uso en Linux, por lo que por su naturaleza sigue siendo más afín a entornos Linux.
Contenedores vs máquinas virtuales
A diferencia de las máquinas virtuales, los contenedores de Docker no instalan un sistema operativo completo, sino que se ejecutan sobre el propio sistema operativo anfitrión, lo que los hace mucho más ligeros.
Cada aplicación en Docker va en su propio contenedor totalmente aislado. En contrapartida, debido al gran tamaño y consumo de recursos de las máquinas virtuales, en estas es habitual tener varias o muchas aplicaciones en la misma máquina.
Relacionado: Manual QE2c de introducción a Docker
Kubernetes
Kubernetes es un software de organización de contenedores de software libre. Permite una instalación sencilla.
Soporta diferentes entornos para la ejecución de contenedores, además de Docker.
Docker permite empaquetar y distribuir aplicaciones en contenedores, pero a medida que las aplicaciones crecen para abarcar varios contenedores en varios servidores, administrarlas se vuelve cada vez más complejo. Es precisamente en este problema donde Kubernetes entra en juego. Este permite monitorizar hasta millones de contenedores.
Docker y Kubernetes
Es un error común pensar que debe elegirse entre Docker y Kubernetes o que son lo mismo, ya que son tecnologías distintas que funcionan bien de forma combinada para usar aplicaciones en contenedores. La tecnología de Kubernetes se centra en crear clústeres para contenedores de Docker.
Por otra parte, por similitud, sería más correcta una comparación entre Kubernetes y Docker Swarm o Swarm Mode. Esto es un grupo de máquinas funcionando juntas a modo de clúster.
Ambos (Kubernetes y Docker Swarm) tienen puntos fuertes y flacos, aunque tal vez sea algo más común utilizar la combinación Docker + Kubernetes, por la seguridad de nuestra infraestructura y la disponibilidad de las aplicaciones.
El éxito de Docker y Kubernetes
Ambos se han convertido en los estándares de facto de la industria, gracias a su calidad y a su naturaleza libre y gratuita.
Contenido relacionado: Introducción a Docker, por QE2c
Oracle VM VirtualBox
| Página de descarga para Linux | Descarga de una máquina virtual de evaluación Windows 10 para VirtualBox |
Inicialmente era una aplicación privativa, y tras años de desarrollo actualmente disponemos de una versión libre bajo licencia GPL, y multiplataforma. VirtualBox es una de las aplicaciones más utilizadas para crear máquinas virtuales, por su forma relativamente fácil y rápida de crear máquinas virtuales, que pueden correr un amplio abanico de sistemas operativos.
Aunque actualmente está disponible desde el gestor de paquetes de Ubuntu, sin embargo la instalación mediante el paquete descargado de la web es extremadamente sencilla, al ser este un .deb (instalación con doble click).
Máquinas virtuales Windows
La página para la descarga de máquinas Microsoft, permite descargar máquinas de evaluación con Windows 10 para Virtual Box (y otras aplicaciones de virtualización). Estas máquinas caducan a los pocos días de su descarga.
Wine
La aplicación capaz de ejecutar aplicaciones nativas Windows sobre GNU/Linux. Lejos, muy lejos de ser perfecto, Wine ha mejorado notablemente con el paso de los años. Como apreciación personal, usar Wine es el último recurso que probaría, solo después de estar seguro de que realmente necesito una aplicación específica que solo está disponible para Windows, y que no existe ninguna aplicación para Linux que pueda acometer la misma función. Aunque el software es algo cambiante, en el momento de escribir estas lineas, para ejecutar correctamente y de una forma cómoda Wine, es preciso instalar los paquetes Wine y Q4Wine, este último un gestor e interfaz gráfica para Wine. Paquetes disponibles desde el gestor de paquetes estándar de muchas distribuciones, al menos en Ubuntu.
Desinstalar una aplicación instalada sobre Wine
En un terminal de comandos, ejecutar los comandos wine uninstaller y wine64 uninstaller para wine 64-bits. Esto abrirá los asistentes de desinstalación de apps instaladas, sobre los que es muy fácil e intuitivo eliminar las aplicaciones. Para eliminar Wine completamente, ejecutar sobre el terminal de comandos: rm -rf ~/.wine
Esto eliminará por completo la carpeta .wine del directorio home. Un breve aunque buen tutorial de la eliminación sobre Wine aquí.