¿Puedo llevar una aplicación dockerizarla de unLinux a una un Windows?

En lo que parece ser un tema recurrente (del cual prometo que me iré pronto), pasaré un tiempo hablando sobre lo que Docker no es. Docker no es la virtualización de aplicaciones.

Pasé una buena cantidad de tiempo en VMware, donde trabajé en VMware View (que dio inicio a Horizon View y luego a Horizon 7), por lo que estoy más que un poco familiarizado con la virtualización de escritorios y aplicaciones. Y, entiendo por qué algunas personas, cuando nos escuchan por primera vez hablar de aprovechar Docker para la portabilidad de la aplicación, piensan en la forma de App-V, XenApp o ThinApp.


Ayer hablamos sobre cómo se ejecuta la cadena de suministro de software moderno en Docker, y en esa publicación notamos que el 41% de los usuarios de Docker apunta a la portabilidad de aplicaciones como un caso de uso central.


Antes de unirme a Docker, si hubiera escuchado la "portabilidad de la aplicación", habría pensado de inmediato en ThinApp (basado en gran medida en mi herencia VMware). Esa frase para muchos de los que trabajan en computación de escritorio y de servidor tradicional significa la capacidad de entregar aplicaciones sin problemas, sin encontrar errores comunes como el "infierno de DLL". Podría significar usar algo como App-V o ThinApp para poner la aplicación dentro de un arenero que incluye la aplicación y todos los archivos DLL necesarios. O bien, podría significar alojar la aplicación en un servidor y entregarla de forma remota a la Citrix XanApp o la RemoteApp de Microsoft. Los ejemplos comunes de objetivos de virtualización de aplicaciones incluyen IE6 con extensiones personalizadas, Microsoft Word, Excel, etc.
Por lo tanto, aquí hay una base conceptual común entre estas soluciones de virtualización de aplicaciones y Docker. Pero también hay algunas diferencias críticas.

Como escribí anteriormente, Docker no es una tecnología de virtualización en el sentido histórico de la palabra, sino una plataforma de entrega de aplicaciones. Docker permite que las aplicaciones monolíticas tradicionales se entreguen como un conjunto de microservicios reutilizables.

Todas las herramientas que mencioné en esta publicación están realmente orientadas a entregar aplicaciones de escritorio de Windows heredadas. Estas aplicaciones son monolíticas, ya que contienen su propia GUI (frente a una aplicación web a la que se accede a través de un navegador). Por el contrario, la carga de trabajo de Docker más utilizada son las aplicaciones web multiservicio.

Entonces, sí, los contenedores Docker encapsulan todo el código y las bibliotecas necesarios para ejecutar un servicio. Pero esos servicios son fundamentalmente diferentes a las aplicaciones que se entregan a través de las tecnologías tradicionales de virtualización de aplicaciones.

Al final, Docker no es un reemplazo directo para la virtualización de aplicaciones. Es una forma de tomar muchas de las aplicaciones implementadas utilizando tecnologías virt de la aplicación y recrearlas de una manera que ofrezca mayores niveles de agilidad, portabilidad y control.

Referencias
https://blog.docker.com/2016/04/app-virtualization-docker/
https://www.dataart.com.ar/news/para-que-nos-sirve-docker/

Comentarios

Entradas más populares de este blog

¿Cómo buscar tweets antiguos de una persona?

¿Qué es la Norma GAMP 5 y para que sirve?

¿Que tipos de Mensajes de HL7 hay?