Buscar

Español

Español

Iniciar sesión

Iniciar sesión/Registrar

Websites

Microservicios

¿Qué es una red de servicios?

Una red de servicios es una manera de controlar la forma en que las distintas partes de una aplicación comparten datos entre sí. A diferencia de otros sistemas que también permiten administrar esta comunicación, la red de servicios es una capa de infraestructura específica integrada en la aplicación, que es visible y tiene la capacidad de registrar si la interacción entre las distintas partes de una aplicación es buena o mala. De esta manera, facilita la optimización de las comunicaciones y previene el downtime a medida que crece la aplicación.

Las partes de la aplicación se denominan "servicio" y dependen unas de otras para brindar a los usuarios lo que desean. Si alguien utiliza la aplicación de una tienda en línea para comprar un producto, debe saber si el artículo está disponible. Por lo tanto, el servicio que se conecta con la base de datos del inventario de la empresa se debe comunicar con la página web del producto, que a su vez debe comunicarse con el carrito de compras en línea del usuario. Si la tienda quiere ofrecer mayores beneficios, podría diseñar un servicio que recomiende productos a los usuarios dentro de la aplicación. Este nuevo servicio se comunicará con una base de datos de etiquetas de los productos para ofrecer recomendaciones y, además, debe comunicarse con la misma base de datos del inventario que necesitaba la página del producto; es decir, se trata de una gran cantidad de partes independientes y reutilizables.

Las aplicaciones modernas suelen dividirse de esta manera, como una red de servicios en la cual cada uno desempeña una función empresarial específica, y para desempeñarla probablemente deba solicitar datos de los demás. ¿Pero qué sucede si algunos servicios, como la base de datos del inventario de la tienda minorista, sufren una sobrecarga de solicitudes? Entonces entra en juego la red de servicios, que dirige las solicitudes de un servicio a otro para optimizar el funcionamiento en conjunto de las partes.


¿Pero los microservicios no se encargan de eso?

La arquitectura de microservicios permite que los desarrolladores realicen cambios en los servicios de una aplicación sin tener que ejecutar una implementación totalmente nueva. A diferencia del desarrollo de aplicaciones en otras arquitecturas, el diseño de microservicios individuales está a cargo de equipos pequeños que cuentan con la flexibilidad suficiente para elegir sus propias herramientas y lenguajes de codificación. Básicamente, los microservicios se diseñan de forma independiente y se comunican entre sí. Además, si se produce un error individual en uno de ellos, no se interrumpe el funcionamiento de la aplicación.

Los microservicios se basan en la comunicación entre los servicios. Las normas que rigen la comunicación se pueden codificar en cada servicio sin la presencia de una red de servicios, pero a medida que la comunicación se vuelve más compleja, la red se vuelve más necesaria. En el caso de las aplicaciones nativas de la nube integradas en una arquitectura de microservicios, la red es una forma de incluir una gran cantidad de servicios independientes en una aplicación funcional.


¿Cómo funciona?

La red de servicios no agrega funciones nuevas al entorno de tiempo de ejecución de la aplicación; las aplicaciones siempre necesitan normas que especifiquen cómo se transfieren las solicitudes del punto A al B, independientemente de su arquitectura. Lo que distingue a la red de servicios es que las normas que rigen la comunicación entre los servicios no se encuentran dentro de cada uno de ellos, sino que se extraen y se colocan en una capa de infraestructura.

Para ello, la red de servicios se integra en la aplicación como un conjunto de proxies de red. Los proxies son un concepto común en el ámbito de la TI empresarial: si accede a esta página web desde una computadora de trabajo, es muy probable que haya utilizado un proxy.

  1. Cuando se envía la solicitud para esta página, primero la recibe el proxy web de su empresa.
  2. Una vez que la solicitud pasa la medida de seguridad del proxy, se envía al servidor que aloja esta página.
  3. Luego, la página regresa al proxy y se vuelve a verificar en función de las medidas de seguridad.
  4. Finalmente, se envía del proxy a usted.

En una red de servicios, las solicitudes se envían entre los microservicios por medio de proxies en su propia capa de infraestructura. Por eso, los proxies individuales que forman una red de servicios a veces se denominan "sidecars", ya que se ejecutan junto a cada uno de los servicios, y no dentro de ellos. En conjunto, estos proxies sidecar, que están separados de cada servicio, forman una red.

Los proxies sidecar se encuentran junto a los microservicios y envían las solicitudes a otros proxies. Juntos, los sidecars forman una red.

Sin una red de servicios, se debe codificar cada microservicio para que incluya las normas que regirán la comunicación entre los servicios, lo cual distrae a los desarrolladores de los objetivos empresariales. También significa que los errores de comunicación son más difíciles de diagnosticar porque las normas de comunicación entre los servicios están ocultas dentro de cada uno de ellos.


¿Cómo optimiza la comunicación una red de servicios?

Cada servicio nuevo que se incorpora a una aplicación, o cada instancia nueva de un servicio existente que se ejecuta en un contenedor, agrega complejidad al entorno de comunicación y genera nuevas posibilidades de error. Sin una red de servicios, es casi imposible encontrar la fuente de los problemas en una arquitectura compleja de microservicios.

Esto se debe a que la red de servicios también captura todos los aspectos de la comunicación entre los servicios como índices de rendimiento. Con el tiempo, los datos que muestra la red de servicios se pueden aplicar a las normas que rigen la comunicación entre los servicios, lo cual se traduce en solicitudes más eficientes y confiables.

Por ejemplo, si se produce un error en cierto servicio, la red puede recopilar datos sobre el tiempo que transcurrió antes de que funcionara el reintento. A medida que se incorporan datos sobre los intervalos de error de un servicio, se pueden escribir normas para determinar el tiempo de espera óptimo antes de volver a intentar usarlo, lo cual garantiza que el sistema no se sobrecargue con reintentos innecesarios.


Planes para el futuro

Si desea diseñar microservicios, es probable que prevea ciertas necesidades, como la capacidad de extenderlos rápidamente y la incorporación de funciones nuevas para satisfacer las necesidades empresariales. Es posible que la arquitectura de microservicios sea muy diferente al año de su lanzamiento. Al principio, las bibliotecas de los microservicios podrán lidiar con la comunicación entre los servicios con una interrupción mínima de las operaciones. Sin embargo, si aprovecha el potencial de los microservicios y aumenta su tamaño y sus funciones, las interrupciones pueden aumentar. Esto puede generar problemas con el tiempo, ya que los servicios se sobrecargan con las solicitudes, y los desarrolladores pasan cada vez más tiempo codificando las normas que rigen las solicitudes para cada servicio.

Ventajas de la red de servicios:

  • Los desarrolladores pueden dedicarse a aportar valor empresarial, en lugar de conectar los servicios.
  • Las normas que rigen las solicitudes forman una capa de infraestructura visible junto con los servicios, así que es más fácil reconocer y detectar los problemas.
  • Las aplicaciones son más resistentes al downtime, ya que la red puede redirigir las solicitudes para que no lleguen a los servicios en los que se produjo el error.
  • Los índices de rendimiento pueden sugerir formas de optimizar la comunicación en el entorno de tiempo de ejecución.

Las redes de servicios tienen mucho más que ofrecer