ARQUITECTURA DE MICROSERVICIOS

La arquitectura de microservicios es como una forma de construir aplicaciones de software en la que, en lugar de tener un solo programa grande, tienes muchos pequeños programas independientes. Cada uno de estos pequeños programas hace una tarea específica y puede estar escrito en un lenguaje de programación diferente. Estos programas se comunican entre sí a través de reglas que les permiten trabajar juntos, y cada uno tiene su propio lugar para guardar la información que necesita. Esto hace que la aplicación sea más eficiente y menos propensa a errores o caídas.



Ilustracion 1: Arquitectura de Microservicios vs Arquitectura Monolitica



Ventajas:

  • Modularidad: En lugar de una gran aplicación, los microservicios son como piezas independientes que se pueden desarrollar y desplegar por separado. Si un servicio tiene un problema, no afecta a los otros.
  • Escalabilidad: Puedes hacer crecer cada parte de la aplicación según lo necesites. Si un componente necesita más poder de procesamiento, puedes escalarlo sin afectar a los demás.
  • Versatilidad: Puedes usar diferentes tecnologías y lenguajes de programación para cada microservicio, adaptándolos a lo que sea más eficiente y económico.
  • Rapidez de Desarrollo: Como los microservicios son pequeños, su desarrollo es más rápido y usar "contenedores de software" facilita el despliegue de la aplicación.
  • Mantenimiento Simple y Económico: Mejorar un solo microservicio es más sencillo y barato que trabajar en toda la aplicación.
  • Agilidad: Puedes aprovechar funcionalidades que ya han sido desarrolladas por otros, como autenticación o seguimiento, en lugar de crearlas desde cero. 

 

Desventajas:

  • Consumo de Recursos: Cada microservicio tiene sus propios recursos y bases de datos, lo que significa que consumen más memoria y CPU.
  • Inversión de Tiempo Inicial: Crear la arquitectura de microservicios lleva más tiempo, ya que debes dividir los servicios y configurar la comunicación entre ellos.
  • Gestión Compleja: Si tienes muchos microservicios, la gestión y la integración pueden volverse complicadas. Se requieren herramientas avanzadas y trazabilidad centralizada.
  • Perfil de Desarrollador: Los microservicios requieren desarrolladores con mucha experiencia y conocimientos técnicos, incluyendo la solución de problemas relacionados con la red y el equilibrio de cargas.
  • Falta de Uniformidad: Si no se gestiona adecuadamente, tener diferentes tecnologías para cada servicio puede resultar en una aplicación desigual en términos de diseño y arquitectura.
  • Pruebas Complicadas: Debido a que los componentes de la aplicación están distribuidos, las pruebas globales son más difíciles de realizar.
  • Costo de Implementación Alto: La arquitectura de microservicios puede ser costosa debido a los gastos de infraestructura y las pruebas distribuidas.





CARACTERISTICAS

  • Muy fáciles de mantener y de probar: Los microservicios permiten a los equipos experimentar con nuevas funciones y revertirlas si no funcionan.
  • Pertenecen a equipos pequeños: Los equipos pequeños e independientes suelen crear un servicio dentro de microservicios, lo que los anima a adoptar prácticas de metodología ágil y de DevOps.
  • Se organizan en torno a capacidades empresariales: Un enfoque de microservicios permite organizar los servicios en torno a las capacidades empresariales. Los equipos son multifuncionales, disponen de la gama completa de habilidades necesarias para el desarrollo y trabajan para crear una funcionalidad concreta.
  • Varios servicios de componentes: Los microservicios se componen de servicios de componentes individuales y poco vinculados que se pueden desarrollar, implementar, operar, cambiar y volver a implementar sin afectar al funcionamiento de otros servicios o a la integridad de una aplicación.



Te muestro algunos ejemplos de aplicaciones que utilizan esta arquitectura:


1.-AMAZON


Amazon es conocida por su adopción temprana de la arquitectura de microservicios en su infraestructura. Cada servicio de Amazon, como Amazon Prime, Amazon Web Services (AWS) y Amazon Marketplace, utiliza microservicios para mantener la escalabilidad y la disponibilidad.
                                                                                                    Ilustracion 2: Amazon

2.- NETFLIX

Netflix es un servicio de streaming de video que utiliza microservicios para varios aspectos de su plataforma. Cada función, como la gestión de usuarios, el catálogo de películas y la recomendación de contenido, se implementa como un microservicio independiente.

                      Ilustración 3:Netflix








REFERENCIAS

decidesoluciones. (03 de 09 de 2019). decidesoluciones. Obtenido de decidesoluciones: https://decidesoluciones.es/arquitectura-de-microservicios/

Esaú Abril Nuñez. (2016, April 19). Qué son Microservicios y ejemplos reales de uso. OpenWebinars.net. https://openwebinars.net/blog/microservicios-que-son/

Barrios Contreras, D. A. (2018). Arquitectura de Microservicios. Tecnología Investigación y Academia, 6(1), 36–46.https://revistas.udistrital.edu.co/index.php/tia/article/view/9687

Atlassian. (s. f.). Arquitectura de microservicios | Atlassian.

https://www.atlassian.com/es/microservices/microservices-architecture

Jamesmontemagno. (2023, 10 mayo). Diseño de una aplicación orientada a microservicios. Microsoft Learn. https://learn.microsoft.com/es-es/dotnet/architecture/microservices/multi-container-microservice-net-applications/microservice-application-design 





Comentarios

Entradas más populares de este blog

ARQUITECTURA CLIENTE-SERVIDOR

PATRONES DE DISEÑO EMERGENTES

ARQUITECTURA MONOLITICA