¿Qué es la arquitectura orientada a servicios (SOA)?

La arquitectura orientada a servicios (SOA) es un enfoque arquitectónico para diseñar aplicaciones en torno a una colección de servicios independientes. Un servicio puede ser cualquier funcionalidad empresarial que complete una acción y proporcione un resultado específico, como procesar un pedido de un cliente o compilar un informe de inventario. Los servicios pueden unirse para crear aplicaciones compuestas, proporcionando una mayor funcionalidad a los usuarios finales.

Las ventajas del enfoque SOA incluyen una mayor facilidad de mantenimiento y actualización de los componentes de los servicios. Al estar cada componente más aislado y encapsulado, es más sencillo corregir código o sustituir elementos sin que ello afecte a todo el sistema. Sin embargo, uno de los principales retos radica en determinar la mejor manera de habilitar la comunicación entre los servicios. En este sentido, SOA suele asociarse con el uso de un bus de servicios empresariales (ESB) como medio central de comunicación entre los diferentes servicios. No obstante, los ESB suelen presentar dificultades ante los cambios, tienden a incrementar la complejidad y dificultan la comprensión de los límites de los servicios.

SOA frente a microservicios

Si piensa que SOA se parece mucho a la definición actual de microservicios, no es el único. Los microservicios también son servicios pequeños y autónomos destinados a funcionar de forma independiente a la vez que trabajan juntos. Pero hay diferencias clave entre SOA y microservicios. Aquí tiene un par de ellas:

  • Los microservicios son servicios muy detallados, separados a un nivel de granularidad funcional. Esto implica que, en una arquitectura de microservicios, cada servicio —incluidos los servidores de bases de datos y aplicaciones, así como el soporte del producto— es gestionado de principio a fin por el mismo equipo. En cambio, la SOA separa los servicios de una manera lógica. Aquí se marca la distinción porque los servicios agrupados lógicamente se comparten entre diversas funciones. Este enfoque parece prometedor… hasta que un servicio falla y todas las funciones que dependen de él se ven afectadas. Las arquitecturas de microservicios, en cambio, están diseñadas para mitigar este impacto, conteniendo completamente los servicios empresariales dentro de sus funciones específicas, junto con todos los recursos necesarios para cumplir esas funciones y generar valor empresarial, incluso si esto implica duplicar algunos elementos en el proceso.
  • Los microservicios, al estar contenidos enteramente por funciones, tampoco están sujetos a los mismos marcos de comunicación, protocolos y especificaciones que, en última instancia, limitan la SOA. En su lugar, los microservicios se centran en mantener la inteligencia dentro de cada conjunto de puntos de conexión y disponer de un tejido sencillo para conectarlos. A menudo, la mejor forma de conseguirlo es implementar una única puerta de enlace de API que albergue la arquitectura interna del sistema y dirija las solicitudes mediante protocolos web ligeros, como REST, a cada microservicio independiente. Además, cada microservicio suele consumir API de otros servicios, pero la puerta de enlace impide que las aplicaciones móviles lleguen a tocar el back-end. Este nivel de flexibilidad es algo que la SOA, lastrada por las especificaciones de los servicios web y dependiente de ESB para conectar aplicaciones, nunca podrá conseguir.

Aunque mucha gente piensa que los microservicios son una versión mejorada de SOA, en realidad existen diferencias críticas entre ambos que, en muchos aspectos, hacen que los microservicios sean una opción más eficaz para arquitecturas de aplicaciones complejas. Para obtener más información sobre SOA y microservicios, descargue el ebook gratuito Building Microservices: Designing Fine-Grained Systems (Creación de microservicios: diseño de sistemas detallados).

¿Cómo puede ayudar NGINX?

NGINX Plus y NGINX son las mejores soluciones de equilibrio de carga de su clase utilizadas por sitios web de alto tráfico como Dropbox, Netflix y Zynga. Más de 350 millones de sitios web de todo el mundo confían en NGINX Plus y NGINX Open Source para ofrecer sus contenidos de forma rápida, fiable y segura.

Como controlador de entrega de aplicaciones (ADC) basado en software, NGINX Plus está diseñado para facilitar las arquitecturas de microservicios de forma mucho más eficaz y asequible que las soluciones de hardware con capacidades comparables.

  • NGINX Plus proporciona una solución completa de entrega de aplicaciones y equilibrio de carga que aumenta el rendimiento y la fiabilidad de cada microservicio.
  • NGINX Plus es lo suficientemente flexible y escalable como para encajar en su pila como puerta de enlace de API y como punto final de cada servicio.
  • NGINX Plus actúa como un servidor HTTP de alto rendimiento para completar las acciones de microservicio con la máxima velocidad y eficacia.