Microservicios
10
min de lectura
20 de enero de 2020

Arquitectura de microservicios: Cómo implantarla en su empresa

Letícia Trevisan
Analista de contenidos y marketing digital
Ejecutivo de publicidad graduado en la PUC de Campinas. Trabajo en el desarrollo de contenidos para sitios web, blogs y redes sociales, producción de comunicaciones de endomarketing y producción de conferencias, talleres y eventos.
Más sobre el autor

El reto de desplegar una arquitectura de microservicios

El concepto de arquitectura de microservicios (o microservicios) ha surgido como una forma de facilitar a los desarrolladores de software la búsqueda del mejor producto para sus clientes.

Y, por supuesto, especialmente para las empresas que quieren eficiencia y productividad combinadas con agilidad y reducción de costes.Hoy en día, los microservicios pueden insertarse en la estructura de un negocio para dinamizar las actividades y generar flexibilidad a través de la división de procesos y el flujo de información rápido e integrado.

Todo ello contribuye también a la descentralización de los servicios y permite a más personas acceder a soluciones eficaces para resolver problemas similares.

En teoría, es bastante sencillo: asegúrese de que sus servicios se muestren con una buena granularidad, sin fuertes dependencias entre sí, y que cada servicio sea útil, con una función clara e indivisible.En la práctica, esto puede plantear una serie de otras preocupaciones.

Por lo tanto, en este artículo vamos a caer head sobre cómo desplegar la arquitectura de microservicios en su negocio!

La arquitectura de microservicios

Tradicionalmente, software se construye como una estructura cerrada con un principio, un medio y un final. O mejor dicho, backend y frontend.

Esta filosofía acaba generando piezas muy grandes (arquitectura monolítica), normalmente enfocadas a resolver grandes necesidades y problemas organizativos. Si sólo se desea utilizar las funciones gráficas de Excel para alguna otra aplicación, hay que abrir Excel y cargar otras funcionalidades innecesarias en ese momento.

Si quieres detalles de la historia, ya hemos hablado de la historia de las integraciones aquí en este post.

La Arquitectura de Microservicios, a diferencia de la anterior Arquitectura Monolítica o incluso de la arquitectura SOA, destaca por explorar la idea de granularidad, que facilita la ejecución del propio servicio y la adaptación a los cambios.

La idea es dividir un sistema concreto en servicios procesables y modulares, de modo que la unión de pequeñas partes haga un trabajo mayor. Así, los microservicios permiten la integración entre varios servicios y la inserción de diversos componentes en el sistema.

Además, tiene más flexibilidad y el poder de cambiar la funcionalidad que salió mal o no funciona bien, sin tener que rehacer partes enteras de un sistema o tener que tirarlo todo, porque la realidad de su negocio ha cambiado.

Así, el despliegue de la arquitectura de microservicios agiliza aún más las cosas.

Desglose de las aplicaciones en servicios

La forma más común de escalar una aplicación es ejecutar múltiples copias idénticas de la aplicación (a través de un equilibrador de carga), realizando un proceso llamado descomposición, para resolver problemas comunes en la arquitectura monolítica, lo que implica que algunos servicios pueden ser muy pequeños mientras que otros serán significativamente más grandes.Con el concepto tridimensional, se puede entender cómo los microservicios son útiles en la partición y el escalado de una aplicación monolítica. Tenemos tres ejes de escalabilidad

  • X: se refiere a la escalabilidad horizontal para ampliar la capacidad y disponibilidad de la aplicación(cada servidor realiza una copia idéntica del código);
  • Z: Similar al eje X, pero requiere la presencia de un componente que se encargue de enrutar las peticiones al servidor adecuado;
  • Y: Es la tercera dimensión de la escalabilidad, la horizontal, llamada descomposición funcional, y se encarga de dividir la aplicación en una serie de servicios. Cada servicio tiene un conjunto de funciones (gestión de pedidos, gestión de clientes, etc.).
Un paso esencial para implantar la Arquitectura de Microsiervos es conocer las diferentes formas de escalar su aplicación, utilizando el concepto de las tres dimensiones

Tenga en cuenta que mientras el eje Z divide elementos similares, el eje Y divide elementos distintos.

El despliegue de los microservicios depende de una buena partición

La división o partición del sistema debe estar bien pensada, pero hay enfoques que le ayudarán a desplegar la arquitectura de microservicios dentro de su estructura empresarial.

Vea algunos tipos de partición que puede utilizar:

  • Por verbos/casos de uso: El caso de Checkout, por ejemplo, donde un servicio de cumplimiento de pedidos, o el servicio de Checkout UI , implementa la interfaz con las personas que utilizan el sistema.
  • Por sinónimos/características: Como ejemplo, consideremos que para la gestión del catálogo de mercancías, la empresa puede tener el Servicio de Catálogos. En este caso, el servicio es responsable de todas las actividades que implican recursos/entidades relacionadas.

Lo importante es que cada servicio tenga pocas responsabilidades de acuerdo con el principio de responsabilidad única (SRP). Es decir, un servicio expuesto debe tener un papel claro y único dentro de la arquitectura.Si este es el caso en el que un servicio tiene más de una responsabilidad, debe aplicar alguna partición como se mencionó anteriormente.

Las funciones de Unix son otro ejemplo de modelado de servicios, en el que cada función realiza sólo una operación definida (pero puede combinarse mediante un script de shell con otras funciones para realizar actividades más complejas). A lo largo de los años, este acoplamiento flexible ha facilitado el lanzamiento de diversas variaciones del sistema operativo, como Ubuntu, Fedora, Solaris y muchos otros.

Las ventajas de la arquitectura de microservicios

El despliegue de la arquitectura de microservicios en su empresa aportará diferentes beneficios a su estructura empresarial:

  • Los desarrolladores gozan de mayor libertad para desarrollar servicios de forma independiente;
  • Despliegue automático mediante herramientas de integración continua y de código abierto como Hudson, Jenkins y otras;
  • El contenedor web tiene un arranque más rápido;
  • Posibilidad de utilizar código escrito en diferentes lenguajes para diferentes servicios, utilizando un "lenguaje oficial" para comunicarse entre ellos (como Json o XML);
  • Oportunidad para que los desarrolladores utilicen las últimas tecnologías;
  • Una arquitectura fácil de entender y adaptable a los cambios, que favorece el aprendizaje, contribuyendo a una mayor productividad del personal;
  • Facilidad de ampliación e integración de los microservicios con los servicios subcontratados, a través de APIs, por ejemplo;
  • Código organizado según las capacidades de la empresa, lo que permite conocer mejor las ofertas y necesidades de los clientes;
  • Los cambios necesarios pueden aplicarse sólo al servicio específico, sin tener que modificar toda la aplicación. Las actualizaciones de funciones también son menos complejas;
  • Gestión de fallos optimizada (por ejemplo, si un servicio falla, los demás seguirán funcionando).

A través de los microservicios, se pueden identificar los fallos y los cuellos de botella de forma más eficiente, ya que la partición favorece una visión más detallada de cada servicio.

Adhesión a la arquitectura de microservicios

Muchos consideran que los microservicios son una forma de ofrecer SOA mediante servicios de alta granularidad. Los microservicios permiten desarrollar capacidades empresariales distribuyéndolas y organizándolas de forma funcional.

Es una lógica que une tecnología y negocio, centrándose en dar más poder y dinamismo a una empresa.

Esto permite que los microservicios cumplan los objetivos de cualquier arquitectura, al tiempo que se reducen los costes de mantenimiento y construcción. Nuestra plataforma API Management plataforma permite a las grandes empresas tener una arquitectura ágil y segura. Si desea saber más, no dude en hablar con nosotros.

¿Qué te parece ahora esta arquitectura? Además, echa un vistazo a este nuevo contenido sobre la arquitectura Event Driven .

Para obtener más información sobre el despliegue de una arquitectura de microservicios, consulte nuestro seminario web gratuito sobre el tema:

Los desafíos arquitectónicos son complejos y sofisticados, y requieren nuevas tecnologías. ¿Cómo implantar microservicios en su entorno? Confirme!

WEBINAR GRATUITO

Ventajas y desventajas de la arquitectura de Microservicios

Además, echa un vistazo al vídeo de APIX con el tema "Technical Trail | Microservices battlefield best practices":

https://youtu.be/G3kCvB5OocE

¡Gracias por leer!