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.
Boletín del sector
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.
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.
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.
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.
La orquestación de microservicios incluye estos beneficios principales:
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:
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.
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é.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
Red Hat OpenShift on IBM Cloud es una plataforma de contenedores OpenShift (OCP) totalmente gestionada.
Utilice el software y las herramientas de DevOps para crear, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.
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.
1. Microservices Global Market Size and Share. Research Nester. 2024.