¿Qué es Docker?

Standard

docker

Qué tal, gente. Hace más o menos un par de meses, de acuerdo con una dinámica que se llevó al interior de Hunabsys, en la cual una vez por semana algún miembro del equipo realizó una presentación para compartir conocimientos sobre tecnologías y/o herramientas de aplicación interesante y útil —esto esencialmente con respecto a las actividades de la empresa—, mi tema fue precisamente el que comparto con ustedes en esta ocasión. Así que vamos entrando en materia:

¿Qué es Docker?

A grandes rasgos, Docker es una plataforma pensada para desarrolladores de software y administradores de sistemas que facilita en gran medida el desarrollo, el montaje y la ejecución de aplicaciones distribuidas. Ésta permite ensamblar de manera rápida componentes modulares de una aplicación y se encarga de minimizar las bien conocidas fricciones que pueden darse al transportar e integrar código, además de permitir la realización de deploys en producción de la manera más rápida posible.

Docker consiste en:

  • Docker Engine: El cual es un entorno de ejecución ligero y herramienta de empaquetado para construir y contener aplicaciones.
  • Docker Hub: Un servicio en la nube para compartir aplicaciones mediante repositorios y automatizar flujos de trabajo.

Docker permite empaquetar una aplicación con todas sus dependencias en una unidad o contenedor estandarizado. Dicho contenedor guarda todo lo que una funcionalidad de software puede necesitar para correr: código, entorno de ejecución, herramientas de sistema, bibliotecas… es decir, todo lo que puedes (necesitas) instalar en un servidor. Esto garantiza que va a ejecutarse siempre lo mismo, independientemente del ambiente en el que se encuentre.

Es importante mencionar que los contenedores Docker son basados en estándares de código abierto, lo cual les permite correr en la mayoría de distribuciones Linux y sistemas operativos Microsoft, dando soporte a cualquier infraestructura.

Docker vs. las típicas Máquinas Virtuales

Docker_vs_VM.bmp

Imagen tomada de: https://www.docker.com/whatisdocker

Los contenedores Docker tienen un aislamiento de recursos y beneficios similares a los de las máquinas virtuales en general, pero, como puede observarse en la imagen, estos cuentan con un enfoque diferente de arquitectura que los vuelve más eficientes, ligeros y portables.

Docker, a diferencia de una máquina virtual, no necesita incluir un sistema operativo independiente. En lugar de esto, se vale de las funcionalidades del kernel y utiliza aislamiento de recursos para separar la aplicación del sistema operativo.

¿Por qué usar Docker?

En resumen, además de lo mencionado anteriormente aquí tenemos más beneficios:

  • Mayor rapidez en la liberación de aplicaciones.
  • Facilidad en el deploy y escalabilidad.
  • Mayor densidad y capacidad para correr más cargas de trabajo simultáneamente.
  • Ambientes de desarrollo y producción estandarizados (nada de que “en mi máquina sí funciona…” ).
  • Simplicidad en la administración y el mantenimiento.
  • Agnosticismo en cuanto a hardware y plataforma.
  • Enfoque en funcionalidad y portabilidad.
  • Facilidad para encontrar y aislar problemas en contenedores específicos, sin afectar a los demás.
  • Ahorro notable del tiempo que suele invertirse en la preparación de ambientes.
  • Posibilidad de compartir módulos/imágenes de manera pública o privada mediante repositorios (Docker Hub).
  • Entre muchas, muchas cosas más…

Los tópicos presentados aquí forman una visión general del enfoque y alcances de esta plataforma, sus aplicaciones pueden llegar a ser bastante diversas en cuanto a las necesidades de un proyecto en particular u organización. Además, es posible integrar esta plataforma con otras herramientas de infraestructura que le brindan soporte, como Vagrant (la cual es una combinación bastante popular), y notar de esta manera aún mayores beneficios en cuanto a simplicidad y comodidad en el manejo de nuestras aplicaciones.

Entonces no se diga más: GET STARTED con Docker.

Aquí el enlace al sitio oficial de Docker, en inglés.

Leave a Reply

Your email address will not be published. Required fields are marked *