¿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 suena muy parecido a la definición actual de microservicios , no está solo. 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. Pero existen diferencias claves entre SOA y microservicios. Aquí hay un par para tener en cuenta:

  • Los microservicios son servicios muy granulares, separados en un cierto nivel de granularidad por una razón funcional . Esto significa que en una arquitectura de microservicios un servicio (incluyendo la base de datos y los servidores de aplicação , así como el soporte del producto) es administrado de extremo a extremo por el mismo equipo. SOA, por otro lado, separa los servicios de manera lógicaLa distinción aquí es que los servicios agrupados lógicamente se comparten entre 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 eliminar este impacto al contener completamente los servicios comerciales dentro de sus funciones únicas, junto con todo lo necesario para cumplir esas funciones y brindar valor comercial, incluso si eso significa duplicar algo en el camino.
  • Los microservicios, debido a que están contenidos completamente por función, tampoco están sujetos a los mismos marcos de comunicación, protocolos y especificaciones que en última instancia limitan a SOA. En cambio, los microservicios se centran en mantener la inteligencia dentro de cada conjunto de puntos finales y tener una estructura simple para conectarlos. Esto se logra a menudo mejor implementando una única puerta de enlace API que alberga la arquitectura interna del sistema y dirige las solicitudes mediante protocolos web livianos, como REST, a cada microservicio independiente. Además, cada microservicio a menudo consume API de otros servicios, pero la puerta de enlace impide que las aplicaciones móviles entren en contacto con el back-end. Este nivel de flexibilidad es algo que SOA, sobrecargada por especificaciones de servicios web y dependiendo de ESB para conectar aplicações, nunca podrá lograr.

Si bien muchas personas piensan que los microservicios son una SOA bien hecha, en realidad hay una serie de diferencias críticas que los distinguen y que, en muchos aspectos, hacen que los microservicios sean la opción de arquitectura más efectiva para aplicações complejas. Para obtener más información sobre SOA y microservicios, descargue el libro electrónico gratuito Building Microservices: Diseño de sistemas de grano fino .

¿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 en todo el mundo confían en NGINX Plus y NGINX Open Source para entregar su contenido de manera rápida, confiable y segura.

Como controlador de entrega de aplicação (ADC) basado en software, NGINX Plus está diseñado para facilitar arquitecturas de microservicios de forma mucho más efectiva 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 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.