Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=b6b71d8e-edb5-404b-9bd6-627b93540672

Las 10 herramientas más importantes para orquestación de contenedores Docker

El auge de los contenedores ha cambiado la forma en la que los programadores conciben el desarrollo, el despliegue y el mantenimiento de las aplicaciones de software. Haciendo uso de las capacidades de aislamiento nativo de los sistemas operativos modernos, los contenedores soportan una separación de intereses (Separation of Concerns, SoC) parecida a la de las máquinas virtuales, pero sin consumir tantos recursos y con una mayor flexibilidad de despliegue en comparación con las máquinas virtuales basadas en hipervisores.

Los contenedores son tan ligeros y flexibles que han dado lugar a nuevas arquitecturas de aplicaciones. Este nuevo enfoque consiste en empaquetar los diferentes servicios que constituyen una aplicación en contendedores separados, y luego desplegar esos contenedores a través de un clúster de máquinas físicas o virtuales.

Por si lo necesitas, aquí te explicamos bien las diferencias entre Contenedores y Máquinas Virtuales.

Pero en la actualidad las aplicaciones son complejas y por regla general no llega con desplegar un solo contenedor en producción, salvo en los casos más sencillos. Lo habitual es necesitar varios, que además deben escalar de manera diferente y otras complejidades. Por ejemplo, un contenedor para el Front-End, uno o varios para la interfaz de servicios, otro para la base de datos... Por no hablar de si utilizas microservicios...

Todo esto da pie a la necesidad de la orquestación de contenedores, es decir, disponer de alguna herramienta o sistema que automatiza el despliegue, la gestión, el escalado, la interconexión y la disponibilidad de nuestras aplicaciones basadas en contenedores.

Un orquestador de contenedores se ocupa de cuestiones como:

  • Configuración automática
  • Despliegue y "levantado" automático de servicios basados en contenedores
  • Balanceado de carga
  • Auto-escalado y auto-reinicio de contenedores
  • Control de la "salud" de cada contenedor
  • Intercambio de datos y networking
  • Mantenimiento de parámetros "secretos" y configuraciones

Dado que el ecosistema de los contenedores Docker no para de crecer, en este artículo vamos a repasar los orquestadores y planificadores más importantes y conocidos.

Ojo: a excepción de Kubernetes, que está de primero por algo, y quizá Swarm porque viene incluido con Docker, la lista no está organizada en función de ninguna preferencia o con cualquier otro criterio. Además contiene también servicios Cloud de orquestación que, aunque puede que usen por debajo alguno de los otros servicios (como Kubernetes en el caso de GCE), se han incluido por ser opciones independientes para hacer lo mismo.

¡Vamos a verlos!

1. Kubernetes

Google Kubernetes

Kubernetes es de hecho el motor de orquestación de contenedores más popular que existe en el mercado. Comenzó siendo un proyecto de Google y miles de equipos de desarrolladores lo usan para desplegar contenedores en producción. Google afirma que ejecuta miles de millones de contenedores usando Kubernetes cada semana.

Si solo puedes aprender uno, tiene que ser Kubernetes.

La herramienta funciona agrupando contenedores que componen una aplicación en unidades lógicas para una fácil gestión y descubrimiento.

Precio: gratis

2. Docker Swarm

Docker Swarm

Swarm es la solución que propone Docker ante los problemas de los desarrolladores a la hora de orquestar y planificar contenedores a través de muchos servidores. Swarm viene incluido junto al motor de Docker desde la versión 1.12.0, y ofrece muchas funciones avanzadas integradas como el descubrimiento de servicios, balanceo de carga, escalado y seguridad.

Swarm sigue la filosofía de Docker de centrarse en la simplicidad y en la experiencia del desarrollador. Se podría decir que es más fácil de usar que Kubernetes de inicio, pero no tan potente y no tan adoptado por las empresas, los proveedores Cloud o por la comunidad.

Precio: Edición "Community" Gratuita

3. Mesosphere DC/OS

Mesosphere DCOS

El sistema operativo Mesosphere Datacenter (DC/OS) es una plataforma de código abierto, integrada para datos y contenedores desarrollados sobre el kernel de sistema distribuido Apache Mesos. Se ha diseñado para gestionar múltiples máquinas dentro de un centro de datos como uno o más clústeres, ya sea en la nube o usando software en servidores en local. DC/OS puede desplegar contenedores y gestionar tanto aplicaciones sin estado como protocolos con estado en el mismo entorno.

Es capaz de funcionar con Docker Swarm y Kubernetes.

Precio: los paquetes de suscripción de Mesosphere DC/OS están basados en el número de nodos (físicos y virtuales) en tu entorno.

4. Google Container Engine (GKE)

Google Kubernetes Engine (GKE)

Montado sobre Kubernetes (de hecho su nombre oficial es Google Kubernetes Engine, GKE), permite desplegar, gestionar y escalar aplicaciones de contenedores en la nube de Google. El objetivo de GKE es optimizar la productividad del departamento de desarrollo al mejorar la gestión de las cargas de trabajo basadas en contenedores. Oculta tanto las tareas de gestión simple como aquellas más complejas detrás de herramientas de líneas de comando, usando interfaces transparentes y fáciles de usar.

Obviamente, Kubernetes es la columna vertebral de GKE. Aunque no es estrictamente necesario dominar Kubernetes para usar GKE, te ayudará mucho si al menos conoces sus fundamentos básicos.

Precio: pagas por los nodos, el almacenamiento y la transferencia utilizados.

5. Azure Container Service (AKS)

Azure Container Service (ACS)

Hace relativamente poco se le cambió el nombre de marca de ACS a AKS. El servicio de Azure es código abierto y está optimizado para su uso en las máquinas virtuales de Azure, denominadas Azure Virtual Machines. Proporciona las herramientas necesarias para crear, configurar y gestionar la infraestructura de contendedores Docker abiertos. AKS ofrece desarrollo simplificado de aplicaciones basadas en contenedores y despliegue con soporte para Kubernetes, Mesosphere DC/OS, o Swarm para la orquestación.

Escala y orquesta usando las herramientas de gestión de aplicaciones que elijas y conectándote mediante puntos de acceso API estándar.

Precio: paga solo por las máquinas virtuales y los recursos de conexión y de almacenamiento adicionales que utilices.

6. Amazon ECS

AmazonECS

El servicio de AWS para orquestación de contenedores, Amazon ECS, es un sistema de gestión muy escalable que permite a los desarrolladores ejecutar aplicaciones en contenedores sobre instancias EC2. Está formado por muchos componentes integrados que permiten la fácil planificación y despliegue de clústeres, tareas y servicios Docker.

Aunque, como principal desventaja, no existe soporte para ejecutar contenedores fuera de EC2, los aspectos a favor incluyen ventajas propias del servicio AWS tales como CloudTrail, CloudWatch, Elastic Load Balancing, etc.

Precio: se paga por los recursos AWS (por ejemplo las instancias EC2 o los volúmenes EBS volumes) necesarios para almacenar y ejecutar tu aplicación.

7. HashiCorp Nomad

HashiCorp Nomad

Soportada por Linux, Mac, y Windows, Nomad es una herramienta binaria única capaz de planificar todas las aplicaciones virtualizadas, en contenedores o independientes. Nomad te da la capacidad de ejecutar, si quisieras, 1 millón de contenedores a través de 5.000 hosts en cuestión de minutos. Nomad ayuda a mejorar la densidad a la vez que reduce costes, ya que es capaz de distribuir de manera eficiente más aplicaciones en menos servidores.

Precio: gratis

8. Helios

Helios comenzó siendo la herramienta interna de Spotify para garantizar que cientos de microservicios funcionaran eficientemente a través de miles de servidores. Es capaz de desplegar y gestionar contenedores a escala y viene equipado con una API basada en HTTP y con un cliente de línea de comando.

Helios no necesita una topología de red concreta; únicamente requiere un clÚster ZooKeeper y una JVM en los servidores en los que se va ejecutar la herramienta. Está disponible como proyecto de código abierto.

Los muy "loosers" no tienen un logo, así que lo hemos tenido que poner sin uno 😋

Precio: gratis

9. Marathon

Marathon

Marathon es una plataforma como servicio (PaaS) privada a nivel de producción desarrollada sobre Apache Mesos. El framework de Marathon escala aplicaciones en Docker y las expande a más nodos cuando se necesita, para incrementar los recursos disponibles y escalar. También puede hacer de herramienta de orquestación de contenedores para facilitar la recuperación ante fallos en contenedores. Marathon gestiona automáticamente fallos de hardware o de software, y garantiza que la aplicación siempre esté activa.

Precio: gratis

10. Cloud Foundry’s Diego

Cloud Foundry’s Diego

Cloud Foundry usa su arquitectura "Diego" para gestionar contenedores de aplicaciones dentro del entorno "Garden". Garden sigue las directrices de la Iniciativa de Contenedores Abiertos de Linux para el alojamiento de contenedores y su abstracción se hace mediante los demás componentes de Diego. Lo elementos de Diego ofrecen la planificación de aplicaciones y capacidades de gestión a través de Cloud Controller.

Precio: gratis

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Herramientas

No te pierdas nada, recibe lo mejor en tu email

Si te ha gustado este art­ículo, únete a miles de desarrolladores que ya reciben cada mes nuestro boletí­n por email. No te pierdas los mejores trucos, noticias y frikadas.

Enviamos poco, pero bueno. Palabra de desarrollador.

Suscríbete aquí­

Sí­guenos también en:

Telegram LinkedIn YouTube
La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.