fbpx

Tus Aplicaciones Virtualizadas ¿Qué Es Docker?

Hola que tal estimada red. Un nuevo post tecnológico y la vez amigable. Esta vez vamos hablaremos sobre Docker, nuestra pequeña ballena azul que puede correr aplicaciones rápidamente de manera portátil y gastando solo los recursos necesarios. Veamos desde una perspectiva de nuestras aplicaciones de servicios.

Nota: Este post está orientado a un alto nivel. Si te gustaría de una manera más técnica y con ejemplos, me avisas y se explica desde esa perspectiva.

1. Aplicación corriendo en servidor físico

Source: https://www.youtube.com/watch?v=dckSc61WS6w

Cuando se quería una nueva aplicación en las empresas, era necesario comprar un servidor para ser instalado en ellas, o en algunos casos, ya venían en modo “Appliance” (es un combo de servidor y aplicación). Muchas veces las aplicaciones se esforzaban por ofrecer muchos servicios para sacarle provecho al servidor, pero cuando otra aplicación era necesaria para otros servicios que la anterior no podía, era necesario comprar otro servidor dedicado.

Esta metodología de entrega de aplicaciones puede llegar a no utilizar todo el poder de computo de nuestra “caja” para su servicio ofertado y otro inconveniente era que gastaba mucho espacio físico en las premisas a instalarlo.

2. Aplicación corriendo en servidor virtual

Info obtained by https://www.youtube.com/watch?v=dckSc61WS6w

Para evitar la pérdida de recursos por servidor dedicado y espacio físico, aparecieron los servidores virtuales, que prácticamente corren sobre un servidor físico. La ventaja es que puedes tener múltiples sistemas operativos, cada uno con sus aplicaciones de manera virtual, corriendo bajo un solo servidor.

Esta metodología permitía maximizar los recursos físicos… , pero ¿qué pasa con los recursos virtuales? Que tal este ejemplo:

Supongamos que tienes 50 maquinas virtuales con páginas web como aplicación. Cada una tiene su propio sistema operativo, donde deben cargar todos los componentes requeridos para que, al final, cargue las librerías y dependencias de la aplicación en sí. Este proceso del sistema operativo es necesario, porque todas las aplicaciones necesitan uno, pero desde el punto de vista de recursos, se necesitan cargar una y otra vez, para cada máquina virtual. ¿No hay forma de mejorar esta metodología?

No alt text provided for this image

3. Aplicación corriendo en un contenedor

No alt text provided for this image

Para evitar la pérdida de recursos por servidor virtual, tenemos una nueva tecnología llamada Docker. Esta tecnología comparte los recursos del sistema operativo principal, pero crea unos procesos aislados con todas las librerías y dependencias de la aplicación. Toda esta información es guardada en algo que le conocen como contenedores.

Puedes tener tantos contenedores como los recursos pueda brindar en el sistema operativo montado.

No alt text provided for this image

Nota: El logo de Docker muestra una ballena azul (intermediario) con unos contenedores en su espalda (aplicaciones), nadando en una mar de recursos (el sistema operativo). Esto simboliza que se encarga de transportar tus aplicaciones y mantenerlas a flote.

4. Ventajas de Docker

Su tamaño

No alt text provided for this image

Debido a que comparten recursos y solo llevan lo necesario para que la aplicación funcione, los contenedores son mucho más livianos que las máquinas virtuales y cuando hablamos de capacidad en nuestros servidores, eso retribuye en poder colocar más aplicaciones con los mismos recursos existentes.

Nota: Aunque no lo crean, es posible tener un contenedor funcional de solo 5Mb de tamaño. ¿Que Máquina virtual podría pesar ese tamaño?

Reinicio de aplicación

No alt text provided for this image

Otra de las grandes ventajas de Docker es su rápidez de carga. ¿Necesitas reiniciar una máquina virtual? tomará un par de minutos (quizás 1 minuto si es liviana).

Con Docker, reiniciar un contenedor puede ser un par de segundos (quizás unos milisegundos si es liviano)

Instalación de aplicación

No alt text provided for this image

Implementar un contenedor es mucho más rápido que una máquina virtual. Los contenedores están en imágenes en internet. Docker se encarga de bajarlos, compilarlos y tenerlos listos en un abrir y cerrar de ojos.

5 – Resumen – Analogía

No alt text provided for this image

En resumen, podemos usar la analogía de una casa/hotel, apartamento/cuarto y cama como “recursos” y su persona, como “aplicación”.

PM (Physical Machine): Si tienes tu casa para ti solo, tienes todas las amenidades exclusivo para ti (baño, tv, cocina, patio, cuartos, piscina, terreno, etc), serías como una aplicación instalada en un servidor.

VM (Virtual Machine): Si vas a un hotel, puedes tener la habitación como recursos para ti, pero las demás habitaciones, piscina, restaurante y lobby son compartidos. Cuando termines de utilizar el cuarto, puede ser asignado a otro huesped. Serías una aplicación en un servidor virtual, montado en un servidor físico.

Container: Pero si solo pides lo que necesitas, como un hostal, tienes la cama como recurso (es lo único que necesitas), pero el cuarto y el local son compartidos. Serías un contenedor, en un servidor virtual o físico.

Conclusión

Espero que hayan aprendido un poco sobre esta tecnología que es muy famosa y utilizada en estos tiempos.

¿Dudas, opinión o sugerencias? Déjame tus comentarios.

Si te interesa alguno de nuestros servicios o leer todos nuestros posts, puedes localizarlos por esta red social o en nuestro portal SYNCORP. Gracias por la lectura.

Referencias:

https://www.redhat.com/es/topics/containers/what-is-docker

Leave a Reply