top of page
  • Foto del escritorIngenian Bloggers

DOCKER y Adiós al "Pero... en mi máquina funciona!!!".

Actualizado: 23 ago 2018

Ingeniero de Sistemas con especialización en Ingeniería de Software.


"Diseña, envía y ejecuta cualquier aplicación en cualquier lugar".

No te ha ocurrido que a veces pasas horas y horas tratando de descubrir por qué una aplicación se ejecuta bien en tu máquina y cuando se instala en un servidor o en otra máquina tiene un comportamiento diferente o simplemente NO funciona como esperaba?…. Y consume tiempo analizando qué características tiene tu máquina que el servidor pueda no tener: Infraestructura, Sistema Operativo, Bibliotecas o Componentes y te preguntas una y otra vez “por qué en mi maquina si funciona”?….


En fin... no sería mejor que existiera una manera de “Empaquetar la aplicación”, código fuente y todas las dependencias para que a la hora de desplegar la aplicación al servidor está pasara de manera transparente y nos ahorráramos el tiempo de revisar errores y tratar de entender por qué la aplicación no corre?


Pues la buena noticia es que SI EXISTE, y la mejor forma de hacerlo es utilizando Docker

Pero… ¿Qué es Docker?:


Docker, es una plataforma para desarrolladores y administradores de sistemas para desarrollar, implementar y ejecutar aplicaciones con contenedores ligeros y portables para que las aplicaciones de software puedan ejecutarse en cualquier máquina con Docker instalado, en resumen es una tecnología para desplegar aplicaciones y aunque los contenedores no son nuevos, su uso para implementar aplicaciones fácilmente sí lo es*.

Ahora bien, dentro del mundo del Docker aparecen dos nuevos conceptos por definir que son: IMAGEN y CONTENEDOR.


La imagen, es el paquete que contiene todos los componentes, el empaquetado con todos los ficheros. El contenedor es la captura de esa imagen en un momento del tiempo, es la ejecución de esta imagen.


Volviendo al cuento del Software, Docker es el encargado de gestionar los contenedores que “contienen” (valga la redundancia) los paquetes ejecutables, ligeros y autónomos con todos los componentes necesarios para su ejecución, para que cuando se pase a otra máquina la aplicación funcione correctamente.


Con Docker, reduces el tiempo de instalación y configuración en los despliegues, subsanas los errores de compatibilidad y múltiples versiones de los sistemas, disminuyes los tiempos de despliegue de aplicaciones. Garantizas el correcto funcionamiento en múltiples entornos. Excepcional!!!


Ahora, apuesto que estás pensando en que ya has visto esto antes y que se puede hacer lo mismo con una máquina virtual ¿no es cierto?.


Pues bien, el concepto es parecido pero el contenedor es mucho más ligero, mientras que a una máquina virtual tienes que instalar el sistema operativo, el software que necesite tu aplicación (servidor web, SDKs, bibliotecas,...) y realizar las configuraciones específicas que necesite la aplicación, el contenedor de Docker funciona utilizando el sistema operativo que tiene la máquina en la que se ejecuta el contenedor, usan los recursos de la máquina host, pero tienen su propio entorno de tiempo de ejecución (runtime). Disponen de una versión reducida del espacio de usuario del sistema operativo* . ¿Te imaginas cuanto tiempo te puedes ahorrar en configuraciones de ambiente?

Docker te ofrece la garantía de que lo que va dentro de un contenedor se va a ejecutar de la misma manera en tu máquina y en cualquier otra parte del mundo; si funciona en tu ambiente funcionara en producción.


Bueno, espero que este post haya sido de tu agrado y haya generado interés en el tema, en una próxima entrega te estaré contando cuales son los productos asociados al motor principal de Dockers.

 

Fuentes*

https://docs.docker.com/get-started/

https://docs.docker.com/get-started/#images-and-containers




342 visualizaciones0 comentarios
bottom of page