Resultado de imagen para docker

¿Te gustaría aprender Contenedores con Docker y Kubernetes?
Tenemos los Diplomados que necesitas. ¡Haz clic aquí!

En la actualidad en el contexto de desarrollo de aplicaciones, Docker es una herramienta que se utiliza por las ventajas que ofrece y la variedad de herramientas que se pueden utilizar para el despliegue y orquestación de contenedores.

El uso de contenedores se ha convertido en una práctica común en los equipos de trabajo porque permiten un ambiente uniforme en las diferentes etapas de desarrollo, pruebas y despliegue de servicios.

Uno de los problemas frecuentes a los que un desarrollador se enfrenta son las dependencias y librerías utilizadas para el despliegue de una aplicación, esto incluyendo el sistema operativo y el ambiente de desarrollo que se ha preparado para un proyecto en curso, aquí es donde Docker entra en contexto como una solución viable. Para poder entender la importancia que Docker tiene se debe de responder a la pregunta: ¿Qué es Docker?

Docker es una plataforma de contenerización que permite empaquetar una aplicación junto con sus dependencias que asegura que la aplicación funcione en cualquier ambiente. En el contexto de transporte de mercancías en barcos, un contenedor es una unidad estándar para realizar esta tarea, esta misma idea aplica para los contenedores de Docker convirtiéndose en una medida estándar para empaquetar una aplicación

La utilización de Docker ha crecido durante los últimos años y el manejo de contenedores se ha popularizado, la necesidad de poder administrar estos mismos ha incrementado, por ello existen diferentes herramientas llamadas “orquestadores de contenedores” que han surgido para suplir esta necesidad. Una herramienta de orquestación de contenedores tiene como propósito el manejo del ciclo de vida de los contenedores, principalmente en ambientes de producción dinámicos, son utilizados para el manejo de diferentes tareas.

Por ejemplo:

  • Monitorear la salud de los contenedores activos
  • Provisionar redundancia
  • Provisionar alta disponibilidad
  • Balanceo de carga y descubrimiento de servicios
  • Repartición de recursos y otras tareas

El utilizar una herramienta de orquestación implica que la configuración del ambiente de despliegue se describe en uno o varios archivos de configuración, estas configuraciones incluyen las imágenes de los contenedores a utilizar, volúmenes de almacenamiento, conexión de red entre los diferentes servicios entre otras configuraciones.

El poder utilizar este tipo de archivos (YML o JSON) permite que se pueda llevar un control de las versiones de las configuraciones y controlar el despliegue en diferentes ambientes, puede ser un ambiente de pruebas o un ambiente de producción, esto debido a que todo se maneja como código. La herramienta permite desplegar los contenedores en clústers, manejar los recursos necesarios para cada uno de los servicios y agregar o quitar contenedores de ser necesario. Actualmente existen diferentes herramientas disponibles para lograr todo lo anteriormente mencionado, a continuación, se mencionan algunas de ellas.

Resultado de imagen para kubernates

Kubernetes

Es una herramienta de código abierto bastante popular para la orquestación de contenedores, permite desplegar y manejar aplicaciones que están conformadas por múltiples contenedores, ayuda a administrar la aplicación contenerizada de diferentes tipos, física, virtual y ambientes de nube. Kubernetes es usualmente utilizada con Docker, pero puede trabajar con cualquier sistema de contenedores que se apegue a los estándares de imágenes de contenedores. Sus beneficios son los siguientes:

  • Correr en nubes privadas y públicas (Google Cloud, Azure, AWS, etc.)
  • Asegurar que los contenedores corren en todo momento y ayuda a administrar los recursos.
  • Permitir que las aplicaciones contenerizadas puedan ser liberadas y actualizadas sin tiempo de caída.

Docker Swarm

Es la herramienta de orquestación de contenedores en clústeres que proporciona Docker, permite desplegar y orquestar contenedores en número grande de anfitriones que corren el motor de Docker. Se hace referencia a esta herramienta que proporciona Docker como el modo Swarm. Esta herramienta es importante mencionarla por la relevancia que tiene Docker, aunque cabe mencionar que no es muy utilizada, ya que existen otros tipos de orquestadores que permiten mayor funcionalidad y compatibilidad con contenedores que no son de Docker. Docker Swarm permite:

  • Escalar, declarando tareas que pueden correr para cada servicio a desplegar
  • Manejar la red de los servicios que se despliegan.
  • Descubrimiento de servicios
  • Balanceo de carga.

AWS ECS

Llamada “Amazon Elastic Container Service”, una herramienta para el manejo de contenedores alta mente escalable y rápida, es provista por Amazon para correr contenedores en clúster de máquinas virtuales (Amazon EC2) que tienen el motor de Docker preinstalado. ECS maneja la instalación, monitoreo y el control de las instancias del clúster por medio de la API de AWS o de la consola de manejo.

La idea de esta herramienta es ver el clúster de EC2 como una fuente de recursos de CPU y memoria, permite también que se interactúe con los demás servicios de AWS como Coudwatch configurando alarmas, permitiendo así escalar cuando sea necesario. Dentro de los conceptos que se manejan en el servicio de ECS podemos mencionar:

  • Task: es una definición de las propiedades de un contenedor, como por ejemplo la imagen a utilizar, la cantidad de CPU y memoria que puede utilizar, el ambiente y los puertos.
  • Service: Es la definición del máximo o mínimo de “tasks” que pueden correr.

Es importante para mencionar es que ECS puede trabajar con EC2 (Servicio de instancias de AWS) o con Fargate, siendo esta última un motor que permite que se ejecuten contenedores sin servidores, lo cual elimina le necesidad de velar por la plataforma en donde se ejecutan los contenedores, prácticamente permite enfocarse directa y solamente en el manejo de contenedores.

Conclusión

  • Docker es una herramienta de contenedores que se ha vuelto tendencia en el medio de desarrollo de aplicaciones
  • Las herramientas de orquestación permiten manejar y gestionar los contenedores y recursos en aplicaciones y servicios
  • Dependiendo de la plataforma de contenedores que se utiliza existen herramientas de orquestación que ofrecen o no compatibilidad.
  • Las herramientas de orquestación están enfocados a manejar escalabilidad y monitoreo de los contenedores que conforman una aplicación.

Te esperamos en los próximos artículos en donde hablaremos más acerca de estos temas que hoy en día son de importancia e interés en el mundo de la tecnología.

¿Te gustaría aprender Contenedores con Docker y Kubernetes?
Tenemos los Diplomados que necesitas. ¡Haz clic aquí!

About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
0 Comments
Comentarios.
Ver todos los comentarios
0
¿Te gusta este articulo? por favor comentax
()
x
Abrir chat
¿Quieres aprender a programar?
Hola 👋,
¿Te interesa información de nuestros cursos?