¿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 un conjunto de servicios independientes. Un servicio puede ser cualquier funcionalidad empresarial que lleve a cabo una acción y proporcione un resultado específico, como procesar el pedido de un cliente o elaborar un informe de inventario. Los servicios pueden combinarse para crear aplicaciones compuestas que ofrezcan una mayor funcionalidad a los usuarios finales.
Entre las ventajas del enfoque SOA se encuentran una mayor facilidad para mantener y actualizar los componentes de los servicios: al ser cada componente más compacto y estar más encapsulado, resulta más sencillo corregir el código o sustituir elementos sin afectar a todos los demás. Sin embargo, surgen problemas a la hora de determinar la mejor forma de facilitar la comunicación entre servicios. SOA suele asociarse al bus de servicios empresariales (ESB) como medio central de comunicación entre servicios. Los ESB no suelen adaptarse bien a los cambios, tienden a generar una mayor complejidad y dificultan la comprensión de dónde empieza y termina un servicio.
SOA frente a microservicios
Si cree que la SOA se parece mucho a la definición actual de microservicios, no es la única persona que lo piensa. Los microservicios también son servicios pequeños y autónomos diseñados para funcionar de forma independiente y, al mismo tiempo, trabajar en conjunto. Sin embargo, existen diferencias clave entre la SOA y los microservicios. Estas son algunas de ellas:
- Los microservicios son servicios con un nivel de detalle muy fino, separados con una determinada granularidad por un motivo funcional. Esto significa que, en una arquitectura de microservicios, un mismo equipo gestiona un servicio de principio a fin, incluidos la base de datos, los servidores de aplicaciones y el soporte del producto. En cambio, la SOA separa los servicios de forma lógica. La diferencia en este caso es que los servicios agrupados de forma lógica se comparten entre distintas funciones. Suena bien… hasta que el servicio falla y todas las funciones que dependen de él se ven afectadas. Las arquitecturas de microservicios están diseñadas para evitar este impacto, ya que encapsulan por completo los servicios empresariales dentro de sus respectivas funciones, junto con todo lo necesario para desempeñarlas y aportar valor empresarial, aunque eso implique duplicar algún elemento por el camino.
- Los microservicios, al estar totalmente encapsulados por función, tampoco están sujetos a los mismos marcos, protocolos y especificaciones de comunicación 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 en disponer de una infraestructura sencilla que los conecte. A menudo, la mejor forma de lograrlo es implementar una única puerta de enlace de API que albergue la arquitectura interna del sistema y dirija las solicitudes a cada microservicio independiente mediante protocolos web ligeros, como REST. Además, cada microservicio suele consumir API de otros servicios, pero la puerta de enlace impide que las aplicaciones móviles accedan directamente al back end. Este nivel de flexibilidad es algo que la SOA, lastrada por las especificaciones de los servicios web y dependiente de un ESB para conectar aplicaciones, nunca podrá alcanzar.
Aunque muchas personas consideran que los microservicios son, por fin, una implementación correcta de la SOA, en realidad existen varias diferencias fundamentales entre ambos que, en muchos aspectos, hacen de los microservicios la opción arquitectónica más eficaz para aplicaciones complejas. Para obtener más información sobre la SOA y los microservicios, descarga gratis el libro electrónico Creación de microservicios: diseño de sistemas granulares.
¿Cómo puede ayudar NGINX?
NGINX Plus y NGINX son soluciones de balanceo de carga líderes en su categoría que utilizan sitios web con mucho 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 económica que las soluciones de hardware con capacidades comparables.
- NGINX Plus proporciona una solución completa de entrega de aplicaciones y equilibrio de carga que mejora el rendimiento y la fiabilidad de cada microservicio
- NGINX Plus ofrece la flexibilidad y escalabilidad necesarias para integrarse en su stack como puerta de enlace de API y como punto de conexión de cada servicio
- NGINX Plus actúa como un servidor HTTP de alto rendimiento para completar las acciones de los microservicios con la máxima velocidad y eficiencia

