/ HOWTO

Ecosistema de Contenedores.


Estuve pensando bastante antes de escribir sobre este post, como en todos los temas suele haber preferencias por determinados productos o tecnologías y mucha veces pasa que si en un post se habla de algún producto/servicio, aparecen defensores y detractores, que si esto es mejor o peor, que en ciertos usos se “DEBE” usar este producto, otros dirán que es “MEJOR” aquel, o que determinada empresa usa esto o aquello.

Que bueno es tener esta diversidad, el poder de elección. ¿ Qué les parece ?

También queremos INSISTIR en que este post no es concluyente, ratificado, absoluto, verificado empíricamente, cerrado, ni tampoco pretende dar los mandamientos para ninguno de los productos de los que hablaremos.

Todo lo que leeras son opiniones, que pueden cambiar por tu entorno, configuraciones, aplicaciones, por el ojo del lector, necesidades, por tu experiencia en alguno de ellos, no tomes esto como la “verdad del universo”.

Es algo parecido a hablar de lenguajes de programación, ¿ Cuál es el mejor, mas rápido, mas simple, con mas funciones, con mas bibliotecas ? No hay un “ganador absoluto”.

Para los que me hablan maravillas de Python, creo que algunas veces un script en “bash” alcanza, nuevamente no hay “absolutos”.

Si te parece que nos olvidamos de algo muy importante y nos lo envías, lo agregaremos.

Luego de esta larga presentación, ahora el tema, “productos/servicios” relacionados con Contenedores.

Suponemos que si has llegado a este post, sabes que es la tecnología de contenedores y sus diferencias con Servidores Virtuales, saltaremos los conceptos básicos.

Además del concepto de un contenedor como tal, existe la base donde corre ese “contenedor”, no quiero usar la palabra “Docker” porque existen otras soluciones similares.

Existe la palabra “orquestación” como un producto que hará varias tareas para preparar todo el entorno que necesitamos, sea desplegar contenedores, mantenerlos funcionando, conectarlos, gestionar los recursos, ponerlos a correr, etc.

PUNTOS A TENER EN CUENTA.

El primer punto es la “plataforma” donde correr los contenedores. Podemos usar un sistema operativo real como Linux/Win/OSX/Host, una máquina virtual, servidores en la nube reales o virtuales y otras tecnologías. Este punto no es trivial porque indicará algunas de las herramientas que se podrán usar sobre esa tecnología.

En un segundo nivel, existen productos para facilitar el “despliegue” de uno o mas contenedores, si pensamos que nuestra necesidad puede requerir mas de un contenedor, comunicaciones entre ellos, ciertos recursos compartidos, conexiones entre puertos, almacenamiento, etc. No es lo mismo generar contenedores desde cero sin conservar el estado que mantener datos persistentes en los mismos.

En un tercer nivel, aparecen las soluciones de “masividad”, no es lo mismo desplegar un contenedor que quince, no es lo mismo usar un solo servidor físico que quince, no es lo mismo usar distintas soluciones en la nube (Linux, Azure, Windows, OSX, otros) ni distintas plataformas. Si agregamos conceptos como Microservicios la cosa se complica mas.

En un cuarto nivel, existen “interfaces gráficas” para la administración, hay varias que pueden o no requerir un determinado producto debajo, suelen estar utilizadas con determinadas tecnologías. Para muchos de nuestros post básicos, no hace falta un gestor gráfico de contenedores, aunque hemos mostrado soluciones con GUI, que son necesarias en determinados casos donde hay una complejidad en la gestión o consumos de recursos.

Y en el último nivel, hay “preferencias” de personas, empresas que apuntarán hacia un producto/servicio. Tambien deben tenerse en cuenta. Volviendo al tema Python vs Bash vs C vs C#, que cada artista use las herramientas que le parecen mejor, con las que tiene mas experiencia, las que les guste mas…

No agregamos pequeñas herramientas para la gestión de productos sobre Linux (cpu, memoria, disco y red) que son otros miles, finalmente las combinaciones entre todos los componentes son infinitos.

Existen productos que tienen un nombre comercial “bonito” y “moderno” aunque debajo corra docker y contenedores, y no hemos hablado de las empresas que venden “sus maravillosos servicios únicos”, aunque realmente implementen una solución de contenedores debajo y mucho marketing.

También existieron (o aún existen con menos popularidad) ciertas tecnologías previas a Docker, sea en el mundo host, en UNIX (Jail como ejemplo) que por diversas razones ya no son populares.

Sin pretender hacer una lista completa y detallada, estos son algunos de los productos que conocemos para los niveles que hablamos, en algunos casos se pueden usar para mas de un nivel, algunos funcionan con determinadas plataformas, querer detallar cada uno nos llevaría meses.

PRODUCTOS / SERVICIOS
Docker
openshift
coreos
openvz
linux containers, lxc, lxd
docker stats
c advisor
scout
datadog
rocker
prometheus+grafana+influxdb
dockerana
weave
nebula
docker composer
docker-swarm
minicube
haven
Kubernetes
Kitematic
Dockstation
portainer
captain
shipyard
docker compose ui
rancher
nomad
dockprom
podman

También existen miles de soluciones menos conocidas compartidas en Internet, de personas que se han desarrollado un producto para su necesidad, en otros posts hemos hablado de algunos también.

Subscríbete y recibirás los últimos artículos semanalmente en tu email.