¿Qué es la orquestación de contenedores?
La orquestación de contenedores es el proceso de automatizar las redes y la administración de contenedores para que pueda implementar aplicaciones a escala. La contenerización agrupa el código de una aplicación con todos los archivos y bibliotecas que necesita para ejecutarse en cualquier infraestructura. Las arquitecturas de microservicios pueden tener cientos, o incluso miles, de contenedores a medida que las aplicaciones crecen y se vuelven más complejas. Las herramientas de orquestación de contenedores tienen como objetivo simplificar la administración de la infraestructura de contenedores mediante la automatización de todo su ciclo de vida, desde el aprovisionamiento y la programación hasta el despliegue y la eliminación. Las organizaciones pueden beneficiarse de la contenerización a escala sin incurrir en gastos de mantenimiento adicionales.
¿Por qué es necesaria la orquestación de contenedores?
Los contenedores se han convertido en la unidad de computación estándar para las aplicaciones nativas en la nube. Los proveedores de nube ofrecen instancias de servidores virtuales para ejecutar todo tipo de cargas de trabajo de computación y son perfectos para las cargas de trabajo basadas en contenedores. El único requisito para poder ejecutar contenedores es que el propio servidor ejecute un servicio de contenerización como Docker. Docker es una herramienta de código abierto para software de empaquetado y bibliotecas asociadas, herramientas de sistema, código y versión ejecutable en un contenedor. Es una solución ligera para ejecutar y administrar algunos contenedores en una sola instancia de servidor, pero la escalabilidad se convierte en un desafío.
Antes de que existieran las plataformas de orquestación de contenedores administrados, las organizaciones utilizaban scripting complejo para administrar el despliegue, la programación y la eliminación de contenedores en varios equipos. El mantenimiento de estos scripts creaba desafíos, como el control de versiones, y la configuración era difícil de escalar. La orquestación de contenedores automatiza y resuelve estas complejidades, eliminando los desafíos asociados con la administración manual.
Casos de uso de orquestación de contenedores
Las herramientas de orquestación de contenedores se vuelven necesarias cuando usted debe:
- Administrar y escalar los contenedores en varias instancias.
- Ejecutar muchas aplicaciones en contenedores diferentes.
- Ejecutar diferentes versiones de aplicaciones (por ejemplo, pruebas y producción en CI/CD) a la vez.
- Garantizar la continuidad del servicio de aplicaciones en caso de que se produzca un error en el servidor mediante la ejecución de varias instancias duplicadas (réplicas) de un contenedor.
- Ejecutar varias instancias de una aplicación en varias regiones geográficas diferentes.
- Maximizar el uso de varias instancias de servidor con fines presupuestarios.
- Ejecutar aplicaciones en contenedores de gran tamaño compuestas por miles de microservicios diferentes.
¿Cuáles son los beneficios de la orquestación de contenedores?
Administrar arquitecturas de contenedores complejas sin una solución de orquestación de contenedores puede ser difícil. La orquestación de contenedores administra la creación, la configuración, la programación, el despliegue y la eliminación de contenedores. También es compatible con lo siguiente:
- Equilibrio de carga de aplicaciones y administración del tráfico.
- Continuidad del servicio de aplicaciones en todos los contenedores.
- Seguridad en la contenerización.
- Supervisión del estado de los contenedores.
- Contenedores de recursos a partir de recursos de instancias o servidores subyacentes.
A continuación, se muestran más beneficios de las orquestaciones de contenedores.
Resiliencia incorporada
Por lo general, los servicios de contenerización simples no reinician un contenedor si se desconecta. Del mismo modo, si la máquina en la que se ejecuta un contenedor deja de funcionar, el contenedor no se reiniciará cuando se reinicie la máquina. Las soluciones de orquestación de contenedores pueden garantizar que los contenedores se reinicien automáticamente o que haya más de una versión en ejecución en todo momento en caso de que falle la máquina.
Rendimiento mejorado
Uno de los mayores beneficios de la orquestación de contenedores es que automatiza la escalabilidad, la disponibilidad y el rendimiento de las aplicaciones en contenedores. Puede configurar las herramientas de orquestación de contenedores para que escalen en función de la demanda, la disponibilidad de la red y las restricciones de infraestructura. La solución de orquestación de contenedores puede supervisar el rendimiento en toda la red de contenedores y reconfigurar automáticamente los contenedores para lograr un rendimiento óptimo.
Optimización de recursos
La ejecución de los servidores y las instancias subyacentes cuesta dinero y deben usarse de manera eficiente para optimizar los costos. La orquestación de contenedores permite a las organizaciones maximizar el uso de cada instancia disponible, así como crear instancias bajo demanda si se agotan los recursos. Esto genera un ahorro de costos en infraestructura.
¿Cómo funciona la orquestación de contenedores?
Los contenedores son aplicaciones o microservicios autónomos basados en Linux que incluyen todas las bibliotecas y funciones que necesitan para ejecutarse en casi cualquier tipo de máquina. La orquestación de contenedores funciona mediante la administración de contenedores en un grupo de instancias de servidor (también denominadas nodos). Un grupo de nodos que ejecuta contenedores interconectados se denomina clúster.
La orquestación de contenedores requiere, en primer lugar, una solución de contenerización subyacente que se ejecute en todos los nodos del clúster; normalmente, será Docker. Los nodos también deben ejecutar la herramienta de orquestación. Un nodo maestro designado, con un plano de control, es el controlador de la propia solución de orquestación. El administrador de la solución usa una interfaz gráfica de usuario (GUI) o un controlador de línea de comandos en el nodo maestro para administrar y supervisar la herramienta de orquestación de contenedores.
Creación y programación
La solución de orquestación de contenedores lee un archivo de configuración declarativa, escrito en YAML o JSON, para conocer el estado específico requerido del sistema. Con la información especificada en el archivo, la herramienta:
- Obtiene imágenes de contenedores de un registro de contenedores.
- Aprovisiona los contenedores con sus requisitos individuales.
- Determina la red requerida entre los contenedores.
Luego la herramienta programa e implementa la aplicación de contenedores múltiples en todo el clúster. Este ajuste óptimo entre nodos y contenedores lo determina la herramienta de orquestación de contenedores, en lugar de especificarse en el archivo de configuración. La herramienta selecciona el nodo real para ejecutar cada contenedor en función de las restricciones de recursos del nodo, como CPU, memoria, etc., así como de los requisitos definidos del contenedor.
Administración
Una vez que los contenedores se ejecutan en todo el clúster, la herramienta de orquestación administra el estado general del sistema para garantizar que se mantenga en el estado de rendimiento especificado. Esto puede incluir:
- Asignación de recursos entre contenedores.
- Implementación de contenedores en nuevos nodos o eliminación de contenedores.
- Equilibrio de carga del tráfico a la aplicación.
Una solución de orquestación de contenedores administra el ciclo de vida de los contenedores para optimizar y proteger las cargas de trabajo y los entornos de varios contenedores grandes y complejos. Puede administrar tantas aplicaciones contenerizadas como necesite una organización. La ejecución de varios nodos maestros para lograr una alta disponibilidad y tolerancia a errores es habitual cuando las exigencias organizativas son más altas.
¿Cuáles son los desafíos de la orquestación de contenedores?
A continuación, se muestran algunos de los desafíos de la orquestación de contenedores.
Capas de administración adicionales
Kubernetes es una solución de orquestación de contenedores de código abierto muy utilizada por las organizaciones. Se la conoce por su facilidad de uso, disponibilidad multiplataforma y soporte para desarrolladores. Sin embargo, aún requiere una administración de recursos subyacente. En lugar de contenedores, ahora tiene que administrar el aprovisionamiento de recursos para Kubernetes. Las herramientas de orquestación de contenedores nativas en la nube son una opción mejor, ya que autoadministra sus propios requisitos de recursos.
Capacitación insuficiente
El simple hecho de tener la herramienta adecuada no es suficiente para garantizar una orquestación óptima de los contenedores. También necesita un administrador de herramientas experto para administrar la orquestación correctamente, definir el estado deseado y comprender el resultado de la supervisión. Para ser un administrador exitoso de entornos de contenedores complejos, es necesario tener un conocimiento profundo de DevOps y el proceso de CI/CD, la contenerización y la arquitectura de máquinas. Es posible que necesite capacitación para desarrollar las habilidades adecuadas en su equipo.
Configuraciones del control de versiones
Una aplicación de software está versionada cuando tiene compilaciones específicas para entornos específicos, como el desarrollo, las pruebas y la producción. Del mismo modo, las herramientas de orquestación de contenedores también requieren varias configuraciones documentadas con un historial de versiones, lo que significa que pueden administrar un aprovisionamiento rápido y repetible junto con el despliegue y la administración.
¿Cómo puede satisfacer AWS sus necesidades de orquestación de contenedores?
Amazon ECS es un servicio de orquestación de contenedores totalmente administrado para que las organizaciones creen, implementen y administren aplicaciones en contenedores a escala en AWS. No tiene versiones y administra automáticamente el aprovisionamiento de clústeres. Conserva el control de las propiedades operativas de los contenedores con la capacidad de especificar los requisitos de CPU y memoria, las políticas de red e IAM y el tipo de lanzamiento y los volúmenes de datos. Con llamadas a la API, puede lanzar y detener aplicaciones habilitadas para contenedores, consultar el estado completo de su clúster y acceder a muchas características familiares como grupos de seguridad, Elastic Load Balancing (ELB), volúmenes de Amazon Elastic Block Store (EBS) y roles de AWS Identity Access Management (IAM).
Para quienes utilizan Kubernetes para la orquestación de contenedores, Amazon Elastic Kubernetes Service (Amazon EKS) es un servicio de Kubernetes administrado para ejecutar los servicios de Kubernetes en la nube de AWS o en centros de datos locales. En las instalaciones, EKS proporciona una solución de Kubernetes coherente y totalmente compatible. Obtiene despliegue y herramientas integradas en AWS Outposts, máquinas virtuales o servidores. En la nube, Amazon EKS administra de forma automática la disponibilidad y la escalabilidad de los nodos del plano de control de Kubernetes responsables de varias tareas (programar contenedores, administrar la disponibilidad de las aplicaciones, almacenar datos de clústeres y otras). Puede usar todo el rendimiento, la escala, la fiabilidad y la disponibilidad de la infraestructura de AWS, así como de las integraciones en servicios de AWS para la conexión en red y la seguridad.
Cree una cuenta para comenzar a utilizar AWS hoy mismo.
Pasos siguientes en AWS
Obtenga acceso instantáneo al nivel Gratuito de AWS.
Comience a crear en la consola de administración de AWS.