Icono del sitio Profile Software Services

¿Qué son los contenedores de software y por qué utilizarlos?

Qué son los contenedores de software

En este artículo vamos a realizar una breve introducción al mundo de los contenedores. Explicaremos qué son los contenedores de software y cómo es la arquitectura de los contenedores en comparación con la de las máquinas virtuales. También veremos algunas diferencias entre trabajar con la virtualización de máquinas virtuales y hacerlo mediante contenedores de software.

Todo esto, nos permitirá entender mejor algunos conceptos teóricos que pueden ser un poco complejos y que son imprescindibles para poder avanzar en la creación de contenedores con Docker y en la orquestación de dichos contenedores con Kubernetes.

¿Qué es un contenedor?

Para entender el concepto del contenedor de software, nos vamos a remontar a la logística, concretamente y para ser más exactos a la logística marítima. Tal y como apreciamos en esta imagen capturada en 1940 durante el transcurso de la 2ª guerra mundial, unos trabajadores portuarios descargan una mercancía en el famoso puerto de Bristol Inglaterra.

Contenedores en logística marítima. Fuente Imperial War Museum

La descarga y el transporte de mercancía se ha realizado de muchas maneras distintas dependiendo principalmente del volumen y las resistencias de los productos. Siendo transportados en función de estas variables en sacos, bidones, redes, cajas de madera, baúles, palés, etc. Pero todo ello, conllevaba que cada uno de los mecanismos para el transporte de mercancías tenían distintos problemas de seguridad, distintos mecanismos de carga y descarga, etc.

En la actualidad, y desde hace muchos años, el proceso se ha estandarizado y prácticamente todo el transporte de mercancías marítimas se realiza a través de contenedores. Lo que ha provocado que dicho transporte sea mucho más eficiente, sin importar en exceso lo que se almacene en el interior de dicho contenedor.

Beneficios de los contenedores

Los beneficios de trabajar con contenedores (en lo referente a la logística marítima) han sido numerosos. Como por ejemplo:

¿Qué son los contenedores de software?

En informática, el concepto de contenedores de software no es muy diferente al que acabamos de explicar en logística. Y podríamos afirmar que ha revolucionado el enfoque con el que trabaja la industria del software en lo referente a la implementación de servicios y aplicaciones.

Un contenedor de software no deja de ser similar a una especie de “caja”, que nos sirve para agrupar software en su interior.

Por lo que, tanto en el proceso de transporte de mercancías o bien en la informática, todos los procesos se adaptan al estándar que marcan los contenedores. En el caso de los contenedores de software, la finalidad puede ser la de simplificar la gestión del software, mejorar la automatización, etc.

¿Cómo funciona un contenedor de software?

Un ejemplo de cómo se trabaja con contenedores de software sería la siguiente imagen:

Cómo funciona un contenedor de software.

La infraestructura, también conocida como el “hierro”, es la que contiene los componentes, es decir, el hardware físico (disco duro, RAM, CPU, etc.) sobre el que trabajamos.

El motor de contenedores es una aplicación que nos permitirá gestionar los contenedores. Siendo una “especie de sistema operativo” que nos permitirá montar contenedores sin necesidad de tener que crear un hardware virtual. El motor de contenedores más popular actualmente sería Docker.

¿Qué es una máquina virtual?

El proceso de virtualizar una máquina consiste en hacer virtual una máquina. Es decir, emular un hardware dentro del propio sistema operativo sobre el que estamos trabajando con el fin de poder instalar en su interior un sistema operativo, un conjunto de aplicaciones, etc.

Por tanto, nos va a permitir crear un hardware virtual sobre el que podemos instalar un sistema operativo (también virtual) sobre el que podemos instalar y ejecutar programas como si de una “computadora normal” se tratara.

Qué es una máquina virtual.

Esto nos permitirá, por ejemplo, ejecutar una máquina virtual con Linux desde un equipo con Windows:

Ejecutar una máquina virtual con Linux desde un equipo con Windows.

Contenedores vs. Máquinas virtuales

Los contenedores y las máquinas virtuales tienen beneficios en común como son la asignación y el aislamiento de recursos. Pero lo hacen de una manera totalmente diferente. Los contenedores virtualizan el sistema operativo (por ello, con esta arquitectura no hace falta instalar sistemas operativos, etc.). Y, en cambio, las máquinas virtuales hacen una virtualización del hardware.

De este modo, algunas de las diferencias entre un contenedor de software y una máquina virtual son:

Contenedores de software vs. máquinas virtuales.

Conclusión

En este artículo hemos explicado qué son los contenedores de software y hemos diseccionado las principales diferencias entre trabajar con máquinas virtuales y contenedores. Espero que os haya servido para entender algunos de los conceptos más actuales de la industria del software.

¿Te gustaría certificarte en Kubernetes? No te pierdas nuestros consejos para superar el examen de Certified Kubernetes Administrator (CKA). ¡Aprende más sobre contenedores en nuestro canal de YouTube! ¡Suscríbete!

Salir de la versión móvil