En T-EVOLVERS Dockerizar no es un reto más, es un estilo adoptado e implementado en nuestros clientes y aliados estratégicos a portas de un crecimiento dual. Convencernos y familiarizarnos con esta revolución nos ha permitido abrazar el concepto DevOps más abiertamente, ya que aparte de crear código es posible distribuirlo de forma más sencilla.

Como su palabra lo indica, contenedor, no es más que engranar o comprimir en una misma vasija, bolsa o container toda la receta que necesita nuestra aplicación para que pueda operar de manera correcta, es decir, en esta bolsa, vamos a incluir nuestro propio código, librerías del sistema, o cualquier tipo de configuración que generen una dependencia de nuestra aplicación, para poder ser ejecutada desde cualquier lugar.

A lo menos, nos estaremos preguntando, ¿Qué beneficio nos trae en nuestro mundo TI Dockerizar?

La respuesta es clara, podemos movernos entre diferentes ambientes sea una maquina local, un ambiente de desarrollo o producción, probando de una manera una aplicación sin preocuparnos de que nuestro código se comporte de forma distinta, ya que todo lo que necesitamos está dentro del contenedor y es invariable (mismas versiones de código), es definitiva, los contenedores representan un mecanismo de empaquetado lógico donde las aplicaciones tienen todo lo que necesitan para ejecutarse.

 Conocer cómo funciona nuestra aplicación pasa a un segundo plano, ya que escalar el software a desarrolladores, Tester o administradores de sistemas es posible mediante la reutilización y la réplica del archivo de configuración que se encuentra en el interior del contenedor. El fichero de Docker bastará para adecuar el entorno de ejecución y configurar el servidor dónde va a ser escalado. A partir de ese fichero se puede generar una imagen que puede ser desplegada en un servidor en segundos. 

¿Podemos decir entonces que un VDI (Virtual Desktop Infraestructure) y los Contenedores son sinónimos?

Un VDI o máquina virtual no es más que la partición de un servidor en segmentos virtuales con configuraciones independientes. Dicho en otras palabras, La infraestructura de escritorios virtuales (VDI) es el alojamiento de entornos de escritorio en un servidor central, una forma de virtualización de escritorios, a medida que las imágenes de escritorios específicas se ejecutan en máquinas virtuales (VM) y se entregan a clientes finales de una red. Esos terminales pueden ser PCs u otros dispositivos, como tabletas o terminales de clientes ligeros.

Ahora bien, teniendo la definición clara miremos en que se diferencia un contenedor de software y una máquina virtual. Sabemos que gracias a la virtualización somos capaces de usar un mismo ordenador de tener distintas máquinas virtuales con su propio SO.

Muchos alojamientos de hosting tradicionales se han basado en crear máquinas virtuales limitadas sobre el mismo servidor para alojar nuestros servidores web de forma aislada, siendo compartido por una decena de clientes.

ACTUALMENTE LA EVOLUCIÓN DE DOCKER HA SIDO IMPARABLE, REPRESENTADO UNO DE LOS MÉTODOS MÁS POTENTES PARA DESPLEGAR SOFTWARE EN CUALQUIER SERVIDOR POR MEDIO DE CONTENEDORES.

Por ultimo nos preguntaremos, ¿cúal es la diferencia entre DOCKER y KUBERNETES?

Es común comparar Kubernetes con Docker, una comparación más adecuada es Kubernetes vs. Docker Swarm. Docker Swarm es la tecnología de orquestación de Docker que se enfoca en la agrupación de contenedores Docker, estrechamente integrada en el ecosistema Docker y utilizando su propia API.

Una diferencia fundamental entre Kubernetes y Docker es que Kubernetes debe ejecutarse en un clúster mientras Docker se ejecuta en un solo nodo. Kubernetes es más extenso que Docker Swarm y está destinado a coordinar grupos de nodos a escala en la producción de manera eficiente. Kubernetes, podemos contener uno o más contenedores en el ecosistema de Kubernetes, se distribuyen entre los nodos para proporcionar alta disponibilidad.

Si bien la promesa de los contenedores es codificar una vez y ejecutarse en cualquier lugar, Kubernetes ofrece el potencial para orquestar y administrar todos los recursos de sus contenedores desde un solo plano de control. 

Ayuda con la creación de redes, el equilibrio de carga, la seguridad y el escalado en todos los nodos de Kubernetes que ejecutan sus contenedores. Kubernetes también tiene un mecanismo de aislamiento incorporado, como espacios de nombres que le permite agrupar recursos de contenedor por permisos de acceso, entornos de preparación y más. Estas construcciones hacen que sea más fácil para TI proporcionar a los desarrolladores acceso a recursos de autoservicio y a los desarrolladores a colaborar incluso en la arquitectura de microservicios más compleja sin imitar la aplicación completa en su entorno de desarrollo.

En resumen, use Kubernetes con Docker para: 

  • Haga que su infraestructura sea más robusta y su aplicación esté más disponible. Su aplicación permanecerá en línea, incluso si algunos de los nodos se desconectan.
  • Haga que su aplicación sea más escalable. Si su aplicación comienza a recibir mucha más carga y necesita escalar para poder proporcionar una mejor experiencia de usuario, es simple girar más contenedores o agregar más nodos a su clúster de Kubernetes.

Kubernetes y Docker trabajan juntos. Docker proporciona un estándar abierto para empaquetar y distribuir aplicaciones en contenedores. Con Docker, puede compilar y ejecutar contenedores, y almacenar y compartir imágenes de contenedores. Uno puede ejecutar fácilmente una compilación Docker en un clúster de Kubernetes, pero Kubernetes en sí no es una solución completa. Para optimizar Kubernetes en la producción, implemente herramientas y servicios adicionales para administrar la seguridad, el gobierno, la identidad y el acceso junto con flujos de trabajo de integración continua / implementación continua (CI / CD) y otras prácticas de DevOps.