Hablemos de algunas de las herramientas populares de orquestación de contenedores disponibles en el mercado.
¿Qué es una orquestación de contenedores?
Plataformas de contenedores como Docker son muy populares en estos días para empaquetar aplicaciones basadas en una arquitectura de microservicios. Los contenedores se pueden hacer altamente escalables, que se pueden crear a pedido. Si bien esto es bueno para algunos contenedores, imagina que tienes cientos de ellos.
Se vuelve extremadamente difícil administrar el ciclo de vida del contenedor y su administración cuando los números aumentan dinámicamente con la demanda.
La orquestación de contenedores resuelve el problema automatizando la programación, implementación, escalabilidad, equilibrio de carga, disponibilidad y redes de contenedores. La orquestación de contenedores es la automatización y gestión del ciclo de vida de contenedores y servicios.
Es un proceso de gestión y organización de múltiples contenedores y arquitectura de microservicios a escala.
Afortunadamente, hay muchas herramientas de orquestación de contenedores disponibles en el mercado.
¡Vamos a explorarlos!
Kubernetes
Lo has adivinado, ¿no?
Kubernetes es una plataforma de código abierto que originalmente fue diseñada por Google y ahora mantenida por Cloud Native Computing Foundation. Kubernetes admite tanto la configuración declarativa como la automatización. Puede ayudar a automatizar la implementación, el escalado y la administración de cargas de trabajo y servicios en contenedores.

La API de Kubernetes ayuda a establecer la comunicación entre los usuarios, los componentes del clúster y los componentes externos de terceros. El plano de control y los nodos de Kubernetes se ejecutan en un grupo de nodos que juntos forman el clúster. La carga de trabajo de la aplicación consta de uno o más pods que se ejecutan en los nodos de trabajo. El plano de control administra los pods y los nodos de trabajo.
Empresas como Babylon, Booking.com, AppDirect utilizan ampliamente Kubernetes.
Características
- Servicio de descubrimiento y equilibrio de carga
- Orquestación de almacenamiento
- Implementaciones y reversiones automatizadas
- Escala horizontal
- Gestión de secretos y configuraciones
- La auto-sanación
- Ejecución por lotes
- Pila doble IPv4 / IPv6
- Embalaje automático de contenedores
¿Quieres aprender Kubernetes? Mira estos recursos de aprendizaje.
OpenShift
Ofertas de Redhat OpenShift Plataforma de contenedores como servicio (PaaS). Ayuda en la automatización de aplicaciones en recursos seguros y escalables en entornos de nube híbrida. Proporciona plataformas de nivel empresarial para crear, implementar y administrar aplicaciones en contenedores.

Está construido sobre el motor de Redhat Enterprise Linux y Kubernetes. Openshift tiene varias funcionalidades para administrar clústeres a través de la interfaz de usuario y la CLI. Redhat ofrece Openshift en dos variantes más,
- Openshift Online - ofrecido como software como servicio (SaaS)
- OpenShift dedicado - ofrecidos como servicios gestionados
Openshift Origin (Origin Community Distribution) es un proyecto de comunidad ascendente de código abierto que se utiliza en OpenShift Container Platform, Openshift Online y OpenShift Dedicated.
Nomad
Nómada es un orquestador de cargas de trabajo simple, flexible y fácil de usar para implementar y administrar contenedores y aplicaciones no en contenedores en las instalaciones y en la nube a escala. Nomad se ejecuta como un solo binario con una pequeña huella de recursos (35 MB) y es compatible con macOS, Windows y Linux.
Los desarrolladores utilizan infraestructura declarativa como código (IAC) para implementar sus aplicaciones y definir cómo se debe implementar una aplicación. Nomad recupera automáticamente las aplicaciones de las fallas.

Nomad Orquesta aplicaciones de cualquier tipo (no solo contenedores). Proporciona soporte de primera clase para Docker, Windows, Java, VM y más.
Características
- Simple y confiable
- Modernice las aplicaciones heredadas sin reescribir
- Federación fácil a escala
- Escalabilidad comprobada
- Multi-nube con facilidad
- Integraciones nativas con Terraform, Consul y Vault
Docker Swarm
Enjambre Docker utiliza un modelo declarativo. Puede definir el estado deseado del servicio y Docker mantendrá ese estado. Docker Enterprise Edition ha integrado Kubernetes con Swarm. Docker ahora ofrece flexibilidad en la elección del motor de orquestación. La CLI del motor de Docker se usa para crear un enjambre de motores de Docker donde se pueden implementar servicios de aplicaciones.

Comandos de Docker se utilizan para interactuar con el clúster. Las máquinas que se unen al clúster se conocen como nodos y el administrador de Swarm maneja las actividades del clúster.
Enjambre Docker consta de dos componentes principales:
- Administrador: los nodos de administrador asignan tareas a los nodos trabajadores en el enjambre. Un líder es elegido en base a un algoritmo de consenso de Raft. El líder maneja todas las decisiones de gestión del enjambre y orquestación de tareas para el enjambre.
- Nodo trabajador: el nodo trabajador recibe tareas del nodo administrador y las ejecuta.
Características
- Gestión de clústeres integrada con Docker Engine
- Diseño descentralizado
- Modelo de servicio declarativo
- Piel escamosa
- Reconciliación estatal deseada
- Redes de hosts múltiples
- Descubrimiento de servicio
- Balanceo de carga
- Seguro por defecto
- Actualizaciones continuas
Docker Compose
Docker Compose es para definir y ejecutar aplicaciones de varios contenedores que funcionan juntas. Docker-compose describe grupos de servicios interconectados que comparten dependencias de software y están orquestados y escalados juntos.
Puede utilizar un archivo YAML (archivo acoplable) para configurar los servicios de su aplicación. Luego, con un comando docker-compose up, crea e inicia todos los servicios desde su configuración.
Un docker-compose.yml se ve así:
version: '3'
volumes:
app_data:
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0
ports:
- 9200:9200
- 9300:9300
volumes:
- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
- ./docker-data-volumes/elasticsearch:/usr/share/elasticsearch/data
kibana:
depends_on:
- elasticsearch
image: docker.elastic.co/kibana/kibana:6.8.0
ports:
- 5601:5601
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
app:
depends_on:
- elasticsearch
image: asadali08527/app:latest
ports:
- 8080:8080
volumes:
- app_data:/var/lib/app/
Puedes usar Docker Compose factorizar el código de la aplicación en varios servicios que se ejecutan de forma independiente y que se comunican mediante una red interna. La herramienta proporciona CLI para administrar todo el ciclo de vida de sus aplicaciones. Docker Compose se ha centrado tradicionalmente en el desarrollo y las pruebas workflows, pero ahora se están enfocando en funciones más orientadas a la producción.
El motor de Docker puede ser una instancia independiente aprovisionada con Docker Machine o un clúster de Docker Swarm completo.
Características
- Múltiples entornos aislados en un solo host
- Conservar los datos de volumen cuando se crean contenedores
- Solo vuelva a crear contenedores que hayan cambiado
- Variables y movimiento de una composición entre entornos
MiniKube
Minikube permite a los usuarios ejecutar Kubernetes localmente. Con Minikube, puede probar aplicaciones localmente dentro de un clúster de Kubernetes de un solo nodo en su computadora personal. Minikube tiene soporte integrado para Panel de Kubernetes.

Minikube ejecuta la última versión estable de Kubernetes y admite las siguientes funciones.
- Balanceo de carga
- Multicúmulo
- Volúmenes persistentes
- Puertos de nodo
- ConfigMaps y secretos
- Container Runtime: Docker, CRI-O y containered
- Habilitación de CNI (interfaz de red de contenedores)
Marathon
Maratón es para Apache Mesos que tiene la capacidad de organizar aplicaciones y marcos.
Apache Mesos es un administrador de clústeres de código abierto. Mesos es un proyecto de Apache que tiene la capacidad de ejecutar cargas de trabajo en contenedores y no en contenedores. Los componentes principales en un clúster de Mesos son Mesos Agent Nodes, Mesos Master, ZooKeeper, Frameworks - Frameworks se coordina con el maestro para programar tareas en los nodos de agente. Los usuarios interactúan con el marco de Marathon para programar trabajos.

El programador de Marathon usa ZooKeeper para localizar el maestro actual para enviar tareas. El programador de maratones y el maestro Mesos tienen un maestro secundario en ejecución para garantizar una alta disponibilidad. Los clientes interactúan con Marathon utilizando la API REST.
Características
- Alta disponibilidad
- Aplicaciones con estado
- Interfaz de usuario hermosa y poderosa
- Limitaciones
- Descubrimiento de servicios y equilibrio de carga
- Los controles de salud
- Suscripción a eventos
- Métrica
- API REST
Cloudify
Cloudificar es una herramienta de orquestación en la nube de código abierto para la automatización de la implementación y la gestión del ciclo de vida de contenedores y microservicios. Proporciona características como clústeres a pedido, reparación automática y escalado a nivel de infraestructura. Cloudify puede administrar la infraestructura de contenedores y organizar los servicios que se ejecutan en plataformas de contenedores.
Se puede integrar fácilmente con Docker y administradores de contenedores basados en Docker, incluidos los siguientes.
- Docker
- Enjambre Docker
- Docker Compose
- Kubernetes
- Apache Meses

Cloudify puede ayudar a crear, reparar, escalar y derribar grupos de contenedores. La orquestación de contenedores es clave para proporcionar una infraestructura escalable y de alta disponibilidad en la que los administradores de contenedores pueden ejecutar. Cloudify brinda la capacidad de organizar servicios heterogéneos en todas las plataformas. Puede implementar aplicaciones mediante la CLI y Cloudify Manager.
Rancher
Rancher es una plataforma de código abierto que utiliza la orquestación de contenedores conocida como ganado. Le permite aprovechar los servicios de orquestación como Kubernetes, Swarm, Mesos. Rancher proporciona el software necesario para administrar contenedores de modo que las organizaciones no necesiten crear plataformas de servicios de contenedores desde cero utilizando un conjunto distinto de tecnologías de código abierto.
Rancher 2.x permite la administración de clústeres de Kubernetes que se ejecutan en los proveedores especificados por el cliente.

Comenzar con Rancher es un proceso de dos pasos.
Prepare un host de Linux
Prepare un host Linux con Ubuntu 64 o 16.04 de 18.04 bits (u otra distribución de Linux compatible y al menos 4 GB de memoria. Instale una versión compatible de Docker en el anfitrión
Iniciar el servidor
Para instalar y ejecutar Rancher, ejecute el siguiente comando de Docker en su host:
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
La interfaz de usuario de rancher permite la gestión de miles de clústeres y nodos de Kubernetes.
Containership
Containership es para permitir la implementación y la gestión de la infraestructura Kubernetes de varias nubes. Es flexible para operar en entornos locales, de nube privada y públicos desde una sola herramienta. Permite el aprovisionamiento, la gestión y la supervisión de sus clústeres de Kubernetes en todos los principales proveedores de la nube.

Containership se construye con herramientas nativas de la nube, como Terraform para el aprovisionamiento, Prometeo para monitoreo y Calico para gestión de redes y políticas. Está construido sobre vainilla Kubernetes. La plataforma Containership ofrece un panel intuitivo, así como una potente API REST para una automatización compleja.
Características
- Panel de control multicloud
- Registros de auditoria
- Compatibilidad con instancias de GPU
- Actualizaciones no disruptivas
- Maestros programables
- Métricas integradas
- Registro en tiempo real
- Implementaciones sin tiempo de inactividad
- Soporte de almacenamiento persistente
- Soporte de registro privado
- Ajuste de escala automático de cargas de trabajo
- Gestión de claves SSH
AZK
AZK es una herramienta de orquestación de código abierto para entornos de desarrollo a través de un archivo de manifiesto (Azkfile.js), que ayuda a los desarrolladores a instalar, configurar y ejecutar herramientas de uso común para desarrollar aplicaciones web con diferentes tecnologías de código abierto.

AZK usa contenedores en lugar de máquinas virtuales. Los contenedores son como máquinas virtuales, con mejor rendimiento y menor consumo de recursos físicos.
Los archivos Azkfile.js se pueden reutilizar para agregar nuevos componentes o crear nuevos desde cero. Se puede compartir, lo que asegura la paridad total entre los entornos de desarrollo en las máquinas de diferentes programadores y reduce las posibilidades de errores durante la implementación.
GKE
GKE proporciona una solución totalmente administrada para la orquestación de aplicaciones de contenedores en Google Cloud Platform. Los clústeres de GKE funcionan con la tecnología de Kubernetes. Puede interactuar con los clústeres mediante la CLI de Kubernetes. Los comandos de Kubernetes se pueden usar para implementar y administrar aplicaciones, realizar tareas de administración, establecer políticas y monitorear el estado de las cargas de trabajo implementadas.

Las funciones de administración avanzada de Google Cloud también están disponibles con los clústeres de GKE como el equilibrio de carga de Google Cloud, los grupos de nodos, el ajuste de escala automático de los nodos, las actualizaciones automáticas, la reparación automática de nodos, el registro y la supervisión con el paquete de operaciones de Google Cloud.
Google Cloud proporciona herramientas de CI / CD para ayudarlo a crear y entregar contenedores de aplicaciones. Puede usar Cloud Build para crear imágenes de contenedor (como Docker) a partir de una variedad de repositorios de código fuente y Container Registry para almacenar sus imágenes de contenedor.
GKE es una solución lista para la empresa con plantillas de implementación prediseñadas.
¿Interesado en aprender GKE? Mira esto curso de principiante.
AKS
AKS es un servicio de Kubernetes totalmente administrado ofrecido por Azure, que ofrece Kubernetes sin servidor, seguridad y gobernanza. AKS administra su clúster de Kubernetes y le permite implementar fácilmente aplicaciones en contenedores. AKS configura automáticamente todos los nodos y maestros de Kubernetes. Solo necesita administrar y mantener los nodos del agente.

AKS es gratis; solo paga por los nodos de agente dentro de su clúster y no por los maestros. Puede crear un clúster de AKS en Azure Portal o mediante programación. Azure también admite características adicionales como redes avanzadas, integración de Azure Active Directory y supervisión mediante Azure Monitor.
AKS también admite contenedores de Windows Server. Su clúster y el rendimiento de la aplicación implementada se pueden monitorear desde Azure Monitor. Los registros se almacenan en un área de trabajo de Azure Log Analytics.
AKS ha sido certificado como compatible con Kubernetes.
AWS EKS
EKS de AWS es un servicio de Kubernetes completamente administrado. AWS le permite ejecutar su clúster de EKS mediante AWS Fragrate, que es una computación sin servidor para contenedores. Fragrance elimina la necesidad de aprovisionar y administrar servidores, lo que permite pagar por recurso por aplicación.

AWS permite el uso de funciones adicionales con EKS, como Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups y Access Management (IAM), monitorear, escalar y aplicaciones de equilibrio de carga. EKS se integra con la malla de aplicaciones de AWS y proporciona una experiencia nativa de Kubernetes. EKS ejecuta la última versión de Kubernetes y está certificado en conformidad con Kubernetes.
Conclusión
Al final, espero que la lista anterior haya brindado una comprensión justa de las diversas herramientas de orquestación de contenedores y ahora, dependiendo del caso de uso, será más fácil optar por la mejor.
A continuación, averigüe Software de gestión de Kubernetes.