¿Qué es la orquestación de contenedores?

Foto aérea de autopista y paso elevado con coches y camiones tomada por un dron

Autores

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

¿Qué es la orquestación de contenedores?

La orquestación de contenedores aprovisiona, implementa, escala y gestiona automáticamente el ciclo de vida de las aplicaciones en contenedores. Los desarrolladores utilizan la orquestación de contenedores para agilizar los flujos de trabajo ágiles o DevOps, proporcionando la flexibilidad y la velocidad necesarias para dar soporte a la infraestructura multinube híbrida moderna.

Hoy en día, Kubernetes es la plataforma de orquestación de contenedores más popular, y la mayoría de los principales proveedores de servicios en la nube, incluidos Amazon Web Services (AWS), Google plataforma en la nube, IBM Cloud y Microsoft Azure, ofrecen servicios gestionados de Kubernetes. Otras herramientas de orquestación de contenedores incluyen Docker Swarm y Apache Mesos.

Vista aérea de autopista

Mantenga su cabeza en la nube

Reciba el boletín semanal Think para obtener orientación de expertos sobre cómo optimizar la configuración multinube en la era de la IA.

¿Por qué los contenedores necesitan orquestación?

Los contenedores son componentes de aplicación ejecutables ligeros que combinan el código fuente de la aplicación con todas las bibliotecas del sistema operativo (SO) y las dependencias  necesarias para ejecutar el código en cualquier entorno. 

La capacidad de crear contenedores existe desde hace décadas, pero se hizo ampliamente disponible en 2008 cuando Linux incorporó las funciones de contenedor en su kernel. Se hizo aún más esencial tras la llegada de la plataforma de contenerización de código abierto Docker en 2013. (Docker es tan popular que "contenedores Docker" y "contenedores" a menudo se usan indistintamente). Hoy en día, los contenedores son compatibles con muchos otros sistemas operativos además de Linux, incluido Windows.

Debido a que son más pequeños, eficientes en los recursos y portátiles que las máquinas virtuales (VM), los contenedores (y más concretamente, los microservicios en contenedores o las funciones sin servidor) se han convertido en unidades de cálculo de facto de las aplicaciones modernas nativas de la nube.

En pequeñas cantidades, los contenedores son bastante fáciles de implementar y gestionar manualmente. Sin embargo, las aplicaciones en contenedores y la necesidad de gestionarlas a escala se han convertido en omnipresentes en la mayoría de las organizaciones a gran escala.

Por ejemplo, una canalización de integración y entrega continua (CI/CD)DevOps es imposible sin la orquestación de contenedores, que automatiza las tareas operativas relacionadas con la implementación y la ejecución de aplicaciones y servicios en contenedores.

En un estudio de IBM, el 70 % de los desarrolladores encuestados utilizan soluciones de orquestación de contenedores, y el 70 % de los que utilizan una solución informan que utilizan un servicio de orquestación de contenedores totalmente gestionado (gestionado en la nube) en su organización.

¿Cómo funciona la orquestación de contenedores?

La arquitectura de orquestación de contenedores consiste en ejecutar clústeres de contenedores en varias máquinas y entornos. Cada clúster suele constar de un grupo de nodos (también denominados instancias de servidor). Los nodos de trabajo ejecutan contenedores utilizando tiempos de ejecución de contenedores (como Docker). Un grupo de nodos del plano de control actúa como orquestador del clúster. Los usuarios pueden gestionar y monitorizar cargas de trabajo en contenedores con herramientas que incluyen interfaces de programación de aplicaciones (API) e interfaces gráficas de usuario (GUI).

Aunque existen diferencias en las metodologías y capacidades entre plataformas y herramientas, la orquestación de contenedores es esencialmente un proceso de tres pasos (o ciclo, cuando forma parte de una canalización ágil iterativa o DevOps):

  1. Suministro
  2. Implementación
  3. Gestión del ciclo de vida

1. Aprovisionamiento

La mayoría de las herramientas de orquestación de contenedores admiten un modelo de configuración declarativa. Un desarrollador escribe un archivo de configuración (en YAML o JSON, según la herramienta) que define un estado deseado. La herramienta de orquestación que ejecuta el archivo utiliza su propia inteligencia para lograr ese estado. El fichero de configuración suele hacer, normalmente

  • Sumínistre los contenedores con almacenamiento y otros recursos.
  • Define y asegura las conexiones de red entre contenedores.
  • Especifique el versionado (para despliegues escalonados o canarios).

2. Implementación

La herramienta de orquestación programa la implementación de los contenedores (y réplicas de los contenedores para la resiliencia) en un host. Elige el mejor host en función de la capacidad disponible de la unidad central de procesamiento (CPU), la memoria u otros requisitos o restricciones especificados en el archivo de configuración.

3. Gestión del ciclo de vida

Una vez implementados los contenedores, la herramienta de orquestación gestiona el ciclo de vida de la aplicación contenerizada en función del archivo de definición del contenedor (frecuentemente un Dockerfile).

Las tareas de gestión del ciclo de vida incluyen:

  • Gestione la escalabilidad (ascendente y descendente), el equilibrio de carga y la asignación de recursos entre los contenedores.
  • Ayude a garantizar la disponibilidad y el rendimiento reubicando los contenedores en otro host si hay una interrupción o escasez de recursos del sistema.
  • Recopile y almacene datos de registro y otra telemetría que supervisen la salud y el rendimiento de la aplicación.

Eche un vistazo a este vídeo para ver más de cerca cómo funciona la orquestación de contenedores:

Ventajas de la orquestación de contenedores

Los principales beneficios de la orquestación de contenedores incluyen:

  • Automatización
  • Resiliencia
  • Uso de recursos y rendimiento mejorados
  • Rentabilidad
  • Velocidad y agilidad
  • Mejora de la seguridad
  • Productividad incrementada

Automatización

El principal beneficio de la orquestación de contenedores es la automatización, que reduce en gran medida el esfuerzo manual y la complejidad de gestionar un conjunto de aplicaciones en contenedores a gran escala.

Resiliencia

Las soluciones de orquestación de contenedores mejoran la resiliencia al reiniciar o escalar los contenedores si uno falla. Esta capacidad ayuda a garantizar la disponibilidad y a aumentar el tiempo de actividad de las aplicaciones.

Uso de recursos y rendimiento mejorados

La selección automatizada de hosts y la asignación de recursos pueden maximizar el uso eficiente de los recursos informáticos. Por ejemplo, una solución de orquestación de contenedores puede ajustar la memoria y el almacenamiento de la CPU en función de un contenedor individual, lo que evita el sobreaprovisionamiento y mejora el rendimiento general.

Rentabilidad

La orquestación de contenedores elimina la necesidad de intervención manual, lo que reduce los costes operativos. Además, los contenedores requieren menos recursos que las máquinas virtuales, lo que puede reducir las necesidades de infraestructura de TI y los costes generales.

Velocidad y agilidad

Las herramientas de orquestación de contenedores ayudan a acelerar el desarrollo y la implementación de aplicaciones, proporcionando un soporte crítico para los procesos modernos nativos de la nube.

Mejora de la seguridad

Los contenedores mejoran la seguridad al aislar las aplicaciones del sistema host y entre sí, lo que reduce las superficies de ataque. Muchas plataformas contienen escaneo automatizado para detectar vulnerabilidades y proteger registros de imágenes, mejorando la protección general.

Productividad incrementada

Al automatizar las operaciones, la orquestación de contenedores admite un enfoque ágil o DevOps. Esto permite a los equipos desarrollar e implementar en ciclos rápidos e iterativos y lanzar nuevas características y capacidades más rápido.

AI Academy

Cómo prepararse para la IA con la nube híbrida

El plan de estudios, dirigido por los principales líderes de pensamiento de IBM, está diseñado para ayudar a los líderes empresariales a adquirir los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

Ventajas del uso de Kubernetes

Desarrollado por Google y lanzado en 2014, Kubernetes se convirtió en uno de los proyectos de más rápido crecimiento en la historia del software de código abierto. Kubernetes es mantenido actualmente por la Fundación de Computación Nativa de la Nube (CNCF). Desde que Kubernetes se unió al CNCF en 2016, el número de colaboradores ha aumentado de 731 a 80121.

Con otras herramientas del ecosistema de contenedores, Kubernetes permite a una empresa ofrecer una plataforma como servicio (PaaS) altamente productiva. Este modelo cloud computing aborda muchas tareas y problemas relacionados con la infraestructura y las operaciones en torno al desarrollo de aplicaciones nativas de la nube, de modo que los equipos de desarrollo puedan centrarse exclusivamente en la codificación y la innovación.

Las ventajas de Kubernetes sobre otras soluciones de orquestación se deben en gran medida a sus funciones más completas y sofisticadas en varias áreas:

  • Implementación de contenedores
  • Despliegues
  • Descubrimiento de servicios
  • Almacenamiento suministrado
  • Equilibrio de carga y escalabilidad
  • Autorreparación para una alta disponibilidad.
  • Soporte y portabilidad entre múltiples proveedores de servicios en la nube
  • Ecosistema de código abierto

Implementación de contenedores

Kubernetes implementa un número específico de contenedores en un host específico y los mantiene ejecutándose en el estado deseado.

Despliegues

Un despliegue de supresión es un cambio en una implementación. Kubernetes permite a los desarrolladores iniciar, pausar, reanudar o revertir implementaciones.

Descubrimiento de servicios

Kubernetes puede exponer automáticamente un contenedor a Internet o a otros contenedores utilizando un nombre de sistema de nombres de dominio (DNS) o una dirección IP para descubrir servicios.

Suministro de almacenamiento

Los desarrolladores pueden configurar Kubernetes para montar almacenamiento persistente local o en la nube para sus contenedores según sea necesario.

Equilibrio de carga y escalabilidad

Cuando el tráfico a un contenedor aumenta, Kubernetes puede emplear el equilibrio de carga y el escalado automático para distribuir el tráfico a través de la red y ayudar a garantizar la estabilidad y el rendimiento. Esta capacidad también ahorra a los desarrolladores el trabajo de configurar un equilibrador de carga.

Autorreparación para una alta disponibilidad

Cuando un contenedor falla, Kubernetes puede reiniciarlo o reemplazarlo automáticamente. También puede eliminar contenedores que no cumplan los requisitos de comprobación de salud de una organización.

Soporte   portabilidad en varios proveedores de servicios en la nube

Kubernetes disfruta de un amplio soporte en todos los principales proveedores de servicios en la nube. Esta capacidad es esencial para las organizaciones que implementan aplicaciones en una nube híbrida (la combinación de nube pública nube privada e infraestructura local) o multinube (el uso de servicios en la nube de más de un proveedor de nube).

Ecosistema de código abierto

Kubernetes también cuenta con un conjunto en constante crecimiento de herramientas de usabilidad y redes para mejorar sus capacidades a través de la API de Kubernetes. Estos incluyen Knative, que permite que los contenedores se ejecuten como cargas de trabajo sin servidores, e Istio, una red de servicios de código abierto.

¿Qué son los contenedores como servicio (CaaS)?

Los contenedores como servicio (CaaS) son un servicio gestionado que permite a los desarrolladores gestionar e implementar aplicaciones en contenedores, proporcionando a las empresas acceso a soluciones en la nube portátiles y fácilmente escalables. En 2022, el mercado global de CaaS se valoró en casi dos mil millones de dólares2. Los investigadores esperan que el mercado tenga un valor de más de siete mil millones de dólares para 2027, con una CAGR del 30,2 % durante ese período.

Los proveedores de CaaS ofrecen a las empresas muchos beneficios, incluidos los tiempos de ejecución de contenedores, las capas de orquestación, la gestión de almacenamiento persistente y la integración con otros servicios. Muchos de los principales proveedores públicos ofrecen servicios gestionados de orquestación de contenedores, muchos de los cuales utilizan Kubernetes como tecnología subyacente.

Los principales proveedores de CaaS incluyen:

  • Amazon Elastic Container Service (Amazon ECS) de AWS
  • Google Kubernetes Engine (GKE) de Google Cloud
  • IBM Cloud Kubernetes Service
  • Microsoft Azure Container Instances (ACI)
  • Red Hat OpenShift

Orquestación de contenedores e IA

Las plataformas de orquestación en contenedores como Kubernetes pueden automatizar partes de la inteligencia artificial (IA) y el machine learning (ML), como los flujos de trabajo de mantenimiento predictivo (incluidas las comprobaciones de estado en tiempo real y la planificación de recursos).

El machine learning se basa en modelos de lenguaje de gran tamaño (LLM) para realizar un procesamiento del lenguaje natural (PLN) de alto nivel, como la clasificación de textos, el análisis de sentimientos y la traducción automática. La orquestación de contenedores ayuda a acelerar la implementación de modelos de lenguaje de gran tamaño (LLM) para automatizar el proceso de PLN. Además, las organizaciones utilizan la orquestación de contenedores para ejecutar y escalar modelos de IA generativa, lo que proporciona alta disponibilidad y tolerancia a fallos.

Soluciones relacionadas
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud es una plataforma de contenedores OpenShift (OCP) totalmente gestionada.

Descubra Red Hat OpenShift
Soluciones de contenedores

Las soluciones de contenedores ejecutan y amplían cargas de trabajo en contenedores con seguridad, innovación de código abierto e implementación rápida.

Explore los contenedores
Servicios de consultoría en la nube 

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de consultoría de nube de IBM. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.

Servicio en la nube
Dé el siguiente paso

Modernice su infraestructura con las soluciones de contenedores de IBM. Ejecute, escale y gestione cargas de trabajo en contenedores en distintos entornos con flexibilidad, seguridad y eficiencia mediante la plataforma integral de contenedores de IBM.

Explore las soluciones de contenedores Cree su cuenta gratuita de IBM Cloud
Notas a pie de página

Kubernetes Project Journey Report. Cloud Native Computing Foundation. 8 de Junio de 2023.

Containers as a Service Market worth USD 5.6 billion by 2027 - Exclusive Study by MarketsandMarkets. Cision. 30 de noviembre de 2022.

3 Container as a Service Global Market Report 2023. Yahoo Finance. 1 de junio de 2023.