¿Qué es la orquestación de microservicios?

Dos personas mirando un ordenador

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 aplicación cohesiva. Maneja las interacciones de servicio, la gestión de dependencias, la tolerancia a fallos, la recuperación de fallos y la implementación de extremo a extremo.

Imagine un director de orquesta sinfónica que dirige a cada músico 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 fluidas. Sin esta coordinación, habría caos: servicios llamándose entre sí aleatoriamente, flujos de trabajo interrumpidos cuando fallan los componentes y sin visibilidad de lo que sucede en 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 4700 millones de dólares en 2024 y se espera que alcance los 72 300 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 previsión1.  

La constante expansión del mercado está impulsada por el crecimiento de las aplicaciones en empresas tecnológicas globales como Google y Amazon, junto con la creciente demanda de servicios de comercio electrónico, fintech y streaming.

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

Las últimas novedades sobre tecnología, respaldadas por conocimientos de expertos

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

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. 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 pequeños, independientes y autónomos que trabajan juntos para formar una aplicación completa. Permiten a las organizaciones crear, implementar 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 microservicios más pequeños y centrados que gestionan funciones empresariales 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, implementar y escalar por separado.

Tomemos, por ejemplo, una aplicación de viajes compartidos como Uber o Lyft. Cuando la aplicación procesa una solicitud de viaje, el coordinador llama al servicio de localización para encontrar conductores, inicia el algoritmo de emparejamiento y calcula el precio. El orquestador también envía notificaciones tanto al viajero 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 tecnológicas como Netflix, Amazon y Uber fueron pioneras en microservicios para gestionar 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 tienen previsto adoptar la arquitectura de microservicios, lo que pone de manifiesto su creciente importancia.

microservicios

¿Qué son los microservicios?

En este vídeo, Dan Bettinger ofrece una visión general detallada de los microservicios.  A través del ejemplo de una aplicación de venta de entradas, Dan compara la arquitectura de aplicaciones de microservicios con el tipo tradicional de arquitectura monolítica y expone las innumerables ventajas que estos ofrecen a los retos que presentan los monolitos.

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

Un marco de orquestación de microservicios utiliza un sistema de gestión de flujo de trabajo centralizado que distribuye los procesos empresariales a través de llamadas de servicio síncronas. El orquestador mantiene las definiciones de 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 comprobar 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ías clave como Docker para contenerizar aplicaciones y plataformas de orquestación de contenedores como Kubernetes para gestionar la implementación de contenedores, el escalado y el descubrimiento de servicios. Estas herramientas permiten que los servicios se comuniquen dinámicamente al tiempo que optimizan la asignación de recursos en toda la infraestructura. El orquestador supervisa continuamente cada paso del 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 fiabilidad del sistema.

Beneficios de la orquestación de microservicios

La orquestación de microservicios incluye estos beneficios principales: 

  • Mejora de la escalabilidad y la gestión de recursos: la orquestación plataformas proporciona autoescalada inteligente y gestión de recursos en todos los microservicios, tomando decisiones de escalado en todo el sistema basadas en patrón de demanda.
  • Mayor resiliencia del sistema y aislamiento de fallos: la orquestación centralizada gestiona automáticamente los fallos 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 e implementación 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 permite implementaciones más seguras mediante implementaciones coordinadas.
  • Mayor 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 gestiona la compleja coordinación necesaria para los pipelines de machine learning (ML), desde el preprocesamiento de datos y el entrenamiento de modelos hasta la implementación y la monitorización. También gestiona los diferentes requisitos informáticos de los diferentes servicios de inteligencia artificial (IA).

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

La orquestación exitosa se basa en patrones de diseño de microservicios probados que abordan 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 el proceso de pago, la saga cancela la retención de inventario y restaura el carrito de la compra.

Patrón de disyuntor

Un disyuntor evita fallos en cadena supervisando las llamadas a los servicios descendentes y deteniendo las solicitudes cuando se detectan fallos.

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

Patrón de reintento y tiempo de espera

Un patrón de reintento y tiempo de espera gestiona automáticamente los fallos temporales del servicio esperando e intentando de nuevo las solicitudes fallidas con una temporización inteligente.

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

Orquestación de microservicios vs. coreografía de microservicios

Al crear sistemas distribuidos, los equipos y desarrolladores de DevOps deben decidir si los servicios deben coordinarse de forma centralizada o coordinarse ellos mismos. Esta decisión determina cómo se comunican los microservicios, cómo los equipos gestionan la complejidad y cómo los sistemas se 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 gestor de proyectos, 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 business rules y el mantenimiento de registros de auditoría.
  • La coreografía de microservicios adopta el enfoque opuesto, con servicios coordinándose 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 transmisión de eventos como Apache Kafka a menudo impulsan estas interacciones al entregar mensajes confiables entre servicios a escala.

Los equipos eligen la orquestación cuando necesitan un control explícito del flujo de trabajo, un gobierno centralizado y una estricta coherencia de los datos. Es especialmente valioso en finanzas, sanidad 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 (IoT)).

La mayoría de las arquitecturas de microservicio 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 y obtienen beneficio de este.

Principales herramientas de orquestación de microservicios

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

  • Plataformas de orquestación de contenedores
  • Mallas de servicio
  • Plataformas sin servidor
  • Pasarelas de API
  • 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 la implementación, el escalado y la gestión de aplicaciones en contenedores. Proporcionan la capa fundacional para la orquestación de microservicios mediante la gestión del descubrimiento de servicios, el equilibrio de carga, la autoescalada y las implementaciones.

Los principales proveedores de servicios en 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 gestionan la comunicación entre servicios, la seguridad y la observabilidad sin necesidad de realizar cambios en el código de la aplicación. Ofrecen equilibrio de carga automático, ruptura de circuitos, tiempos de espera y telemetría completa sobre las interacciones de microservicios.

Istio, una malla de servicios de código abierto configurable, se superpone de forma transparente en las aplicaciones existentes con capacidades avanzadas de gestión del 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 del tráfico integrada para implementaciones seguras.

Knative se ejecuta sobre Kubernetes para proporcionar capacidades sin servidor para cargas de trabajo en contenedores, lo que permite el escalado automático y la implementación simplificada.

Pasarelas de API

Las pasarelas API proporcionan un punto de entrada unificado para microservicios, gestionando la autenticación, la limitación de velocidad, la transformación y la información de registro. Son esenciales para orquestar las interacciones entre los clientes externos y los servicios internos.

Existen numerosas soluciones de pasarelas 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 comprobación del estado y la coordinación del equilibrio de carga.

Entre las soluciones más populares se encuentran 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 empresariales distribuidos.

Netflix Conductor gestiona 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 los procesos. 

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 DevOps

Utilice el software y las herramientas de DevOps para crear, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.

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

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

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

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