¿Qué es la orquestación de microservicios?

Dos personas miran una computadora

Autores

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

¿Qué es la orquestación de microservicios?

La orquestación de microservicios es la coordinación automatizada de microservicios distribuidos que funcionan juntos como un sistema de aplicaciones cohesivo. Maneja las interacciones de servicio, la gestión de dependencias, la tolerancia a fallas, la recuperación de fallas y el despliegue de extremo a extremo.

Imagine un director de orquesta sinfónica que dirige a cada músico para que toque en el momento adecuado. Del mismo modo, la orquestación puede garantizar que cada microservicio realice su función específica cuando sea necesario para ofrecer experiencias de usuario sin interrupciones. Sin esta coordinación, habría caos: servicios que se llamarían entre sí aleatoriamente, flujos de trabajo que se interrumpirían cuando fallaran los componentes y no habría visibilidad de lo que sucede en las diversas infraestructuras de TI.

Las organizaciones necesitan orquestación porque las aplicaciones modernas son complejas y constan de cientos de servicios individuales. La orquestación de microservicios actúa como el sistema que transforma estos servicios independientes en aplicaciones bien coordinadas, manteniendo los beneficios de escalabilidad y flexibilidad de una arquitectura distribuida.

Según un informe de Research Nester, el mercado de orquestación de microservicios se valoró en 4.7 mil millones de dólares en 2024 y se espera que alcance los 72.3 mil millones de dólares en 2032. Esta investigación demuestra una tasa de crecimiento anual compuesta (CAGR) del 23.4 % durante el período de pronóstico.1  

Lo que impulsa la expansión constante del mercado es el crecimiento de las aplicaciones en empresas tecnológicas globales como Google y Amazon, junto con la creciente demanda del comercio electrónico, fintech y servicios de streaming.

Los principales servicios de streaming como Netflix y Hulu ejemplifican un caso de uso clásico. Se basan en la orquestación para coordinar cientos de microservicios que manejan todo, desde la autenticación de usuarios y las recomendaciones de contenido hasta el streaming de video y la facturación. Todos deben trabajar al unísono para ofrecer millones de experiencias de visualización personalizadas simultáneamente.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Qué son los microservicios?

Los microservicios son componentes de software pequeños, independientes y autónomos que funcionan juntos para formar una aplicación completa. Permiten a las organizaciones crear, desplegar y escalar aplicaciones de manera más eficiente.

A diferencia de las aplicaciones monolíticas tradicionales, la arquitectura de microservicios nativa de la nube divide las aplicaciones en servicios más pequeños y enfocados que manejan funciones comerciales específicas. Cada microservicio se ejecuta de forma independiente, se comunica a través de interfaces de programación de aplicaciones (API) y se puede desarrollar, desplegar y escalar por separado.

Veamos, por ejemplo, una aplicación de viajes compartidos como Uber o Lyft. Cuando la aplicación procesa una solicitud de viaje, el orquestador llama al servicio de ubicación para encontrar conductores, inicia el algoritmo de coincidencia y calcula los precios. El orquestador también envía notificaciones tanto al pasajero como al conductor en una secuencia coordinada.

Este enfoque permite a las organizaciones crear sistemas más flexibles y escalables que se adaptan rápidamente a los cambiantes requisitos empresariales. Empresas de tecnología como Netflix, Amazon y Uber fueron pioneras en microservicios para manejar el desarrollo de software rápido y a gran escala. Según una encuesta de IBM de 2021, el 85 % de las organizaciones han adoptado o planean adoptar la arquitectura de microservicios, lo que destaca su creciente importancia.

microservicios

¿Qué son los microservicios?

En este video, Dan Bettinger ofrece una visión general de los microservicios.  Al comparar la arquitectura de aplicaciones de microservicios con el tipo tradicional de arquitectura monolítica a través del ejemplo de una aplicación de tickets de muestra, Dan expone los innumerables beneficios de los microservicios y las soluciones que brindan a los desafíos que presentan los sistemas monolíticos.

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

Un marco de orquestación de microservicios utiliza un sistema centralizado de gestión de flujos de trabajo que distribuye los procesos empresariales a través de llamadas de servicio sincrónicas. El orquestador mantiene las definiciones del flujo de trabajo, comprende las dependencias de los servicios y puede garantizar que los microservicios se ejecuten en la secuencia correcta.

Por ejemplo, cuando una empresa de comercio electrónico como Amazon procesa el pedido de un cliente, el orquestador llama al servicio de inventario para verificar la disponibilidad, inicia el procesamiento de pagos, organiza el envío y envía notificaciones a los clientes. El orquestador realiza todas estas tareas en una secuencia coordinada.

Esta coordinación se basa en tecnología clave como Docker para la contenerización de aplicaciones y plataformas de orquestación de contenedores como Kubernetes para gestionar el despliegue, el escalado y el descubrimiento de servicios de contenedores. Estas herramientas permiten que los servicios se comuniquen dinámicamente mientras optimizan la asignación de recursos en toda la infraestructura. El orquestador monitorea continuamente cada paso en el flujo del proceso, por lo que, cuando surgen problemas, puede reintentar automáticamente las operaciones fallidas, revertir los cambios problemáticos o alertar a los administradores para mantener la confiabilidad del sistema.

Beneficios de la orquestación de microservicios

La orquestación de microservicios incluye estos beneficios principales: 

  • Escalabilidad y gestión de recursos mejoradas: las plataformas de orquestación proporcionan escalado automático inteligente y gestión de recursos en todos los microservicios, tomando decisiones de escalado en todo el sistema basadas en patrones de demanda.
  • Mayor resiliencia del sistema y aislamiento de fallas: la orquestación centralizada maneja automáticamente las fallas reintentando las operaciones, evitando que un servicio fallido detenga toda la aplicación y manteniendo la coherencia de los datos en todos los servicios.
  • Ciclos de desarrollo y despliegue más rápidos: la coordinación automatizada de servicios elimina el trabajo de integración manual, lo que permite a los desarrolladores centrarse en la lógica empresarial, al tiempo que habilita despliegues más seguros a través de implementaciones coordinadas.
  • Mejor diversidad tecnológica y flexibilidad: los equipos de desarrollo pueden elegir lenguajes, bases de datos y marcos óptimos para servicios específicos mientras participan en flujos de trabajo coordinados a través de una orquestación unificada.
  • Compatibilidad con cargas de trabajo de IA/ML: la orquestación maneja la compleja coordinación necesaria para los pipelines de machine learning (ML), desde el preprocesamiento de datos y el entrenamiento de modelos hasta el despliegue y el monitoreo. También gestiona los diferentes requisitos informáticos de diferentes servicios de inteligencia artificial (IA).

Patrones de diseño y orquestación clave de microservicios

La orquestación exitosa se basa en patrones de diseño de microservicios probados que aborde los desafíos comunes de los sistemas distribuidos. Estos son algunos de los ejemplos más importantes:

Patrón de saga

Un patrón de saga gestiona las transacciones distribuidas dividiéndolas en pasos reversibles. Si falla algún paso, la saga ejecuta acciones de compensación para deshacer operaciones anteriores y mantener la coherencia de los datos en todos los servicios.

Por ejemplo, en un sitio de comercio electrónico, si un pago falla durante la finalización de la compra, la saga cancela la retención de inventario y restaura el carrito de compras.

Patrón de disyuntores

Un disyuntor evita fallas en cascada al monitorear las llamadas a los servicios posteriores y detener las solicitudes cuando se detectan fallas.

Por ejemplo, cuando un servicio de recomendación de productos comienza a fallar, el disyuntor bloquea automáticamente las solicitudes y muestra recomendaciones previamente almacenadas en caché.

Patrón de reintento y tiempo de espera

Un patrón de reintento y tiempo de espera maneja automáticamente las fallas temporales del servicio esperando e intentando nuevamente las solicitudes fallidas con sincronización inteligente.

Por ejemplo, si un servicio de pago no está disponible temporalmente, el sistema espera y vuelve a intentarlo.

Orquestación de microservicios frente a coreografía

Al construir sistemas distribuidos, los equipos de DevOps y los desarrolladores deben decidir si los servicios deben coordinarse de manera centralizada o entre sí. Esta decisión determina la forma en que se comunican los microservicios, cómo los equipos gestionan la complejidad y cómo los sistemas escalan con el tiempo.

  • La orquestación de microservicios utiliza un coordinador centralizado que gestiona todas las interacciones de los servicios. Al igual que un gerente de proyecto, el orquestador conoce todo el flujo de trabajo y le dice a cada servicio cuándo actuar. Este método proporciona una visibilidad clara de los procesos complejos y facilita la implementación de reglas de negocio y el mantenimiento de registros de auditoría.
  • La coreografía de microservicios adopta el enfoque opuesto, con servicios que se coordinan a través de eventos sin control central. Cuando un servicio completa el trabajo, publica un evento que activa otros servicios para actuar. Las plataformas de streaming de eventos como Apache Kafka a menudo potencian estas interacciones al entregar mensajes de manera confiable entre servicios a escala.

Los equipos eligen la orquestación cuando necesitan un control explícito del flujo de trabajo, una gobernanza centralizada y una estricta coherencia de los datos. Es particularmente valioso en finanzas, atención médica y logística, donde el cumplimiento normativo y la auditabilidad son esenciales.

Los equipos eligen la coreografía cuando la escalabilidad, la resiliencia y la autonomía del servicio son prioridades. Funciona bien para arquitecturas basadas en eventos, sistemas en tiempo real y procesamiento de gran volumen (por ejemplo, plataformas de contenido y sistemas de Internet de las cosas o IoT).

La mayoría de las arquitecturas de microservicios exitosas adoptan un enfoque híbrido. Este enfoque puede significar la orquestación para flujos de trabajo críticos que necesitan un control estricto y la coreografía para interacciones poco acopladas que se benefician de un procesamiento independiente.

Principales herramientas de orquestación de microservicios

La orquestación moderna se basa en categories de herramientas que trabajan juntas para gestionar los ciclos de vida de los microservicios, desde el despliegue y el escalado hasta la comunicación y el monitoreo. Cada categoría presentada a continuación desempeña un papel específico para permitir una orquestación eficaz de microservicios:

  • Plataformas de orquestación de contenedores
  • Mallas de servicio
  • Plataformas sin servidor
  • API Gateways
  • Herramientas de descubrimiento de servicios
  • Motores de flujo de trabajo y orquestación

Plataformas de orquestación de contenedores

Las plataformas de orquestación de contenedores automatizan el despliegue, el escalado y la gestión de aplicaciones en contenedores. Proporcionan la capa fundamental para la orquestación de microservicios al gestionar el descubrimiento de servicios, equilibrio de carga, escalado automático y despliegues continuos.

Los principales proveedores de la nube ofrecen servicios de orquestación gestionados, incluidos Amazon ECS y EKS de AWS, Google GKE, Microsoft AKS e IBM Cloud Kubernetes Service.

Mallas de servicio

Las mallas de servicio manejan la comunicación de servicio a servicio, la seguridad y la observabilidad sin requerir cambios en el código de la aplicación. Ofrecen equilibrio de carga automático, interrupción de circuitos, tiempos de espera y telemetría integral sobre interacciones de microservicios.

Istio, una malla de servicios configurable de código abierto, se integra de manera transparente sobre aplicaciones existentes con capacidades avanzadas de gestión de tráfico y aplicación de políticas. Funciona bien con Kubernetes y muchas otras tecnologías adyacentes a la malla de servicios.

Linkerd, que también es de código abierto, se centra en la simplicidad y el rendimiento, ofreciendo características esenciales de malla de servicios con una sobrecarga operativa mínima.

Plataformas sin servidor

Las plataformas sin servidor permiten microservicios basados en eventos que se escalan automáticamente en función de la demanda. Proporcionan escalado automático de cero a miles de instancias y gestión de tráfico integrada para despliegues seguros.

Knative se ejecuta sobre Kubernetes para proporcionar capacidades sin servidor para cargas de trabajo en contenedores, lo que permite el escalado automático y el despliegue simplificado.

API Gateways

Las puertas de enlace API proporcionan un punto de entrada unificado para microservicios, manejando autenticación, limitación de velocidad, transformación de solicitudes y registro integral. Son esenciales para orquestar las interacciones entre clientes externos y servicios internos.

Existen numerosas soluciones de puertas de enlace API disponibles, que van desde opciones de código abierto como Kong hasta servicios gestionados en la nube de los principales proveedores.

Herramientas de descubrimiento de servicios

Las herramientas de descubrimiento de servicios permiten que los microservicios se encuentren y se comuniquen entre sí de forma dinámica, eliminando las dependencias codificadas. Se encargan del registro de servicios, la verificación del estado y la coordinación del equilibrio de carga.

Las soluciones populares incluyen etcd para entornos Kubernetes y opciones nativas de la nube como Amazon Web Services (AWS) Cloud Map.

Motores de flujo de trabajo y orquestación

Los motores de flujo de trabajo y orquestación coordinan procesos complejos de varios pasos en múltiples microservicios a lo largo del tiempo. Estas plataformas proporcionan definición visual del flujo de trabajo, gestión automática de errores y lógica de reintento integrada para gestionar procesos de negocio distribuidos.

Netflix Conductor maneja la orquestación de flujos de trabajo diseñada específicamente para entornos de microservicios. Camunda Zeebe proporciona una orquestación de procesos de nivel empresarial mediante el uso de Business Process Model and Notation (BPMN) para la definición visual del flujo de trabajo y la gestión integral de procesos. 

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 DevOps

Utilice el software y las herramientas de DevOps para crear, desplegar y gestionar aplicaciones nativas de la nube en múltiples dispositivos y entornos.

Explorar las soluciones DevOps
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

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de asesoramiento de IBM Cloud.

Explorar servicios de consultoría de IBM Cloud Cree su cuenta gratuita de IBM Cloud
Notas de pie de página

1. Microservices Global Market Size and Share, Research Nester, 2024