¿Qué es la orquestación de contenedores?

Foto aérea de vuelo de dron de autopista y paso elevado con automóviles y camiones

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, despliega, 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 servicio 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 una 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 livianos y ejecutables que combinan el código fuente de la aplicación con todas las bibliotecas y dependencias del sistema operativo (SO) 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 incluyó las funciones de contenedor dentro de su kernel. Se volvió aún más esencial después de 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ñas, más eficientes en recursos y portátiles que las máquinas virtuales (VM), los contenedores (más específicamente, los microservicios en contenedores o las funcionalidades sin servidor) se han convertido en las unidades informáticas de aplicaciones nativas de la nube modernas.

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

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

En un estudio de IBM, el 70 % de los desarrolladores encuestados emplean soluciones de orquestación de contenedores, y el 70% de los que emplean una solución afirman emplear 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 múltiples 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 monitorear cargas de trabajo en contenedores con herramientas que incluyen interfaces de programación de aplicaciones (API) e interfaces gráficas de usuario (GUI).

Si bien existen diferencias en 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 iterativa ágil o DevOps):

  1. Aprovisionamiento
  2. Despliegue
  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 archivo de configuración normalmente hace:

  • Aprovisiona los contenedores con almacenamiento y otros recursos.
  • Define y asegura las conexiones de red entre contenedores.
  • Especifique el control de versiones (para despliegues por fases o controlados).

2. Despliegue

La herramienta de orquestación programa el despliegue de los contenedores (y las réplicas de los contenedores para resiliencia) en un host. Elige el mejor host en función de la capacidad 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 que se despliegan los contenedores, la herramienta de orquestación administra el ciclo de vida de la aplicación en contenedores en función del archivo de definición de contenedor (a menudo un Dockerfile).

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

  • Gestione la escalabilidad (hacia arriba y hacia abajo), 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.
  • Recopilar y almacenar datos de registro y otra telemetría que monitorean el estado y el rendimiento de la aplicación.

Vea este video para ver más de cerca cómo funciona la orquestación de contenedores:

Beneficios de la orquestación de contenedores

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

  • Automation
  • Resiliencia
  • Uso y rendimiento mejorados de los recursos
  • Eficiencia de costos
  • Velocidad y agilidad
  • Seguridad mejorada
  • Aumentar la productividad

Automation

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 administrar un conjunto de aplicaciones en contenedores a gran escala.

Resiliencia

Las soluciones de orquestación de contenedores mejoran la resiliencia reiniciando o escalando contenedores si uno falla. Esta capacidad ayuda a garantizar la disponibilidad y un mayor tiempo de actividad de las aplicaciones.

Uso y rendimiento de recursos 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 de la CPU y el almacenamiento basar en un contenedor individual, lo que evita el sobreaprovisionamiento y mejora el rendimiento general.

Eficiencia de costos

La orquestación de contenedores elimina la necesidad de intervención manual, lo que reduce los costos 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 costos generales.

Velocidad y agilidad

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

Seguridad mejorada

Los contenedores mejoran la seguridad al aislar las aplicaciones del sistema anfitrión y entre sí, reduciendo las superficies de ataque. Muchas plataformas incluyen un escaneado automático para detectar vulnerabilidades y proteger los registros de imágenes, lo que mejora la protección general.

Aumentar la productividad

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

Academia de IA

Cómo lograr la preparación para la IA con la nube híbrida

Dirigida por los principales líderes de opinión de IBM, el plan de estudios está diseñado para ayudar a los líderes empresariales a obtener los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

Ventajas de usar 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ó a la CNCF en 2016, el número de contribuyentes ha crecido de 731 a 8.012.1

Con otras herramientas del ecosistema de contenedores, Kubernetes permite a una empresa ofrecer una plataforma como servicio (PaaS) altamente productiva . Este modelo de computación en la nube aborda muchas tareas y problemas relacionados con la infraestructura y las operaciones en torno al desarrollo de aplicaciones nativas de la nube para que los equipos de desarrollo puedan centrarse exclusivamente en la programació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:

  • Despliegue de contenedores
  • Implementaciones
  • Descubrimiento de servicios
  • Aprovisionamiento de almacenamiento
  • Equilibrio de carga y escalabilidad
  • Autocorrección para alta disponibilidad
  • Soporte y portabilidad en múltiples proveedores de la nube
  • Ecosistema de código abierto

Despliegue de contenedores

Kubernetes despliega un número específico de contenedores en un host especificado y los mantiene en ejecución en el estado deseado

Implementaciones

Una implementación es un cambio en un despliegue. Kubernetes le 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 empleando un nombre del Sistema de Nombres de Dominio (DNS ) o una dirección IP para descubrir servicios.

Aprovisionamiento de almacenamiento.

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

Balanceo de carga y escalabilidad

Cuando el tráfico a un contenedor aumenta, Kubernetes puede emplear el equilibrio de carga y el autoescalado para distribuir el tráfico en toda 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.

Autocorrección para alta disponibilidad

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

Soporte y portabilidad en múltiples proveedores de la nube

Kubernetes disfruta de un amplio soporte en todos los principales proveedores de la nube. Esta capacidad es esencial para las organizaciones que despliegan aplicaciones en una nube híbrida (la combinación de nube públicanube privada e infraestructura on premises) 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 establo en crecimiento continuo 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 servidor, e Istio, una malla 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 compañías acceso a soluciones en la nube portátiles y fácilmente escalables. En 2022, el mercado global de CaaS se valoró en casi 2 mil millones de dólares.2 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 periodo.

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

Los principales proveedores de CaaS incluyen:

  • Amazon Elastic Container Service de AWS (Amazon ECS)
  • 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 de lenguaje natural 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 el despliegue de modelos de lenguaje (LLM) de gran tamaño para automatizar el proceso de NLP. Además, las organizaciones emplean la orquestación de contenedores para ejecutar y escalar modelos de IA generativa, lo que proporciona alta disponibilidad y tolerancia a errores.

Soluciones relacionadas
IBM Red Hat OpenShift

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

Conozca 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 y despliegue rápido.

Explorar contenedores
Servicios de consultoría en la nube 

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de IBM de asesoramiento sobre la nube. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.

Servicios 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 todos los entornos con flexibilidad, seguridad y eficiencia mediante el uso de la plataforma integral de contenedores de IBM.

Explore las soluciones de contenedores Cree su cuenta gratuita de IBM Cloud
Notas de 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.