Introducción al curso

1

Diseño y Documentación de Arquitectura de Software

Atributos de calidad

2

Atributos de Calidad en Sistemas: Definición y Medición

3

Idoneidad Funcional: Completitud, Exactitud y Pertinencia

4

Eficiencia de Ejecución en Sistemas Informáticos

5

Compatibilidad en Sistemas: Interoperabilidad y Coexistencia

6

Subcaracterísticas de Usabilidad en Desarrollo de Software

7

Confiabilidad de Sistemas: Madurez, Disponibilidad, Resiliencia y Recuperación

8

Seguridad de Usuarios en Desarrollo de Software

9

Subcaracterísticas de Mantenibilidad en Sistemas de Software

10

Medición de Adaptabilidad en Sistemas de Software

11

Relación y Tensión entre Atributos de Calidad en Sistemas de Software

12

Atributos de Calidad en Arquitectura de Software

Patrones de arquitectura

13

Patrones de Arquitectura Monolítica y Distribuida

14

Modelo Vista Controlador: Separación de Responsabilidades en Aplicaciones

15

Arquitectura de Capas: Diseño y Comunicación entre Niveles

16

Patrones de Arquitectura Orientada a Eventos y Event Sourcing

17

Patrón de Arquitectura MicroKernel y su Implementación en IDEs

18

Arquitectura "Comparte Nada": Optimización y Procesamiento de Datos

19

Patrón de Microservicios en Arquitectura de Software

20

Patrón CQRS para Separación de Consultas y Comandos

21

Arquitectura Hexagonal: Diseño y Aplicación Práctica

22

Diseño Orientado al Dominio: Conceptos y Aplicaciones Prácticas

23

Patrones de Arquitectura para Aplicaciones Escalables y Modulares

24

Patrones de Arquitectura en Proyectos de Crecimiento Empresarial

Diseño de una arquitectura

25

Diseño de Arquitecturas a Medida: Herramientas y Estrategias

26

Tipos de Conectores en Arquitectura de Software

27

Conectores Asíncronos y Sincrónicos: Implementación y Uso Práctico

28

Diferencias entre Enrutadores y Difusores en Comunicación de Mensajes

29

Conexión de Productores y Consumidores con Colas de Mensajes

30

Framework de Diseño Orientado a Atributos: Escenarios y Tácticas

31

Tácticas para Mejorar la Disponibilidad de Sistemas

32

Tácticas para Mejorar la Disponibilidad del Sistema

33

Tácticas para Mejorar la Mantenibilidad del Software

34

Prevención de Efectos Dominó en Mantenibilidad de Software

35

Estrategias para Mejorar la Eficiencia de Ejecución en Sistemas

36

Tácticas de Seguridad Informática para Detectar, Resistir y Recuperarse de Ataques

37

Estrategias para Mejorar la Capacidad de Prueba de Software

38

Tácticas de Usabilidad en Diseño de Interfaces de Usuario

39

Validación de Arquitectura con ATAM y Métricas de Calidad

40

Diseño de Arquitectura para Startups y Empresas Escalables

Modelado y documentación de arquitectura

41

Documentación Efectiva de Arquitectura de Software

42

Sincronización de Modelos de Arquitectura y Código Fuente

43

Evaluación de Atributos de Calidad en Arquitectura de Software

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Patrón de Microservicios en Arquitectura de Software

19/43
Recursos

¿Qué son los microservicios?

Los microservicios son un patrón de arquitectura que ha revolucionado el diseño de sistemas en los últimos años. Se caracterizan por descomponer un sistema grande en componentes más pequeños y distribuidos. Cada microservicio ofrece una funcionalidad específica y trabaja de manera independiente, lo que no solo facilita su mantenimiento, sino también su reutilización. Este enfoque modular permite que diferentes partes del sistema puedan ser desarrolladas y desplegadas de manera aislada y, a menudo, incluso por equipos diferentes.

¿Cómo se comunican entre sí los microservicios?

Una de las características más notables de los microservicios es su capacidad para intercomunicarse de manera eficiente. Esta comunicación puede ser directa o a través de un bus de eventos:

  • Conexión directa: un microservicio depende directamente de otro, estableciendo una relación más estrecha.

  • Bus de eventos: utiliza un sistema de publish-subscribe para desacoplar los servicios. Un microservicio puede publicar un evento en un bus, y otros pueden suscribirse y reaccionar a estos eventos sin conocerse directamente entre sí.

Ejemplo práctico en e-commerce

Imagina un sistema de e-commerce donde cada funcionalidad crítica se maneja a través de un microservicio especializado:

  • Servicio de usuarios: para gestionar la información de los clientes.
  • Servicio de productos: encargado del catálogo y la gestión de inventarios.
  • Servicio de pagos: maneja todas las transacciones financieras.
  • Servicio de logística: coordina el envío de los bienes.

Por ejemplo, tras un pago exitoso, el servicio de pagos podría publicar un evento al cual el servicio de logística respondería para iniciar el proceso de envío.

Ventajas y desafíos de los microservicios

¿Por qué considerar una arquitectura de microservicios?

Adoptar microservicios presenta varias ventajas, especialmente para empresas en crecimiento:

  • Escalabilidad: permite escalar servicios específicos en función de la demanda.
  • Desplegabilidad independiente: los equipos pueden desplegar actualizaciones a sus servicios sin afectar otros componentes del sistema.
  • Mayor disponibilidad: al replicar servicios resulta más fácil asegurar que el sistema esté disponible en caso de fallos en un componente.

¿Cuándo evitar los microservicios?

Pese a sus beneficios, la implementación de microservicios no siempre es la solución ideal:

  • Complejidad en la implementación: requiere experiencia en sistemas distribuidos, lo que puede dificultar su desarrollo con equipos pequeños o menos experimentados.
  • Costos de mantenimiento: un equipo pequeño puede encontrar costoso y desafiante mantener múltiples servicios distribuidos.

Consideraciones finales

Al decidir entre microservicios y un enfoque monolítico hay que sopesar el tamaño del equipo, la experiencia, y las necesidades de escalabilidad del proyecto. Mientras que microservicios son una excelente opción para empresas que anticipan un crecimiento significativo, un monolito puede ser más manejable para un equipo pequeño iniciando un proyecto. Además, es común que las arquitecturas de microservicios se combinen con otras estrategias para definir tanto la arquitectura interna de cada servicio como las vías de comunicación entre servicios y clientes.

Aportes 20

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

siempre se me hace raro llegar al video que esta subido en youtube

Patrones de arquitectura micro servicio
Son Componentes distribuidos donde cada componentes va a exponer una funcionalidad al resto del sistema. de esta forma modularizamos el sistema a traes de estos ser. independientes.
Los clientes o los mismos servicios consumen estas funcionalidades entre ellos.
Se debe tener comunicación entre ellos, de forma directa o indirecta (bus de eventos).

Patrones: Microservicios

Son componentes distribuidos en nuestro sistema en donde cada componente va a exponer una funcionalidad al resto del sistema. de esta manera se modulariza el sistema a través de servicios independientes. Los clientes externos o inclusive los mismos servicios van a consumir las responsabilidades entre ellos.


Cada componente debe tener su base de datos independiente.
y este es uno de los desafíos más grande de esta arquitectura; ya que tiene que analizar como interconectar estos servicios.


La conexión entre los servicios puede ser directa: Es decir, un servicio depende de otro. Indirecta: que los servicios se comunican a través de un Bus de Datos (Eventos).

Microservicios

Son componentes distribuidos en nuestro sistema en dónde cada componente va a exponer una funcionalidad al resto del sistema, de esta forma modularizamos nuestro sistema a través de estos servicios independientes.

Faltan muchos detalles, no me convence la explicación

🧠 Ventajas de una solución basada en microservicios 🧠

  • Cada microservicio es relativamente pequeño, fácil de administrar y desarrollar. 🪁

  • Es fácil para los desarrolladores entender y empezar a trabajar rápidamente con buena productividad. 😎

  • Los contenedores se crean con rapidez ⚡, lo que permite que los desarrolladores sean más productivos.

  • Un IDE como Visual Studio 🔳 puede cargar proyectos más pequeños con rapidez, aumentando la productividad de los desarrolladores.

  • Cada microservicio se puede diseñar, desarrollar e implementar con independencia de otros microservicios. Esto aporta agilidad, 🚴‍♀️🚴‍♀️dado que es más fácil implementar nuevas versiones de los microservicios con frecuencia.

Me quedan dudas entre un servicio y un microservicio, porque un servicio rest también tiene un única responsabilidad, lo único diferente que veo es que los microservicios se pueden comunicar entre ellos a través de un bus de eventos. ¿Alguien sabe cuál es su principal diferencia, o cuándo debo usar uno o otros en un sistema?..

No me convenció la explicación, falto más detalle.

No me convence la explicación siento que hicieron falta muchos detalles y profundizar más, un solo video no es suficiente para abordar un tema tan grande.

Una ventaja del patrón de microservicios es que cada uno puede tener su propia arquitectura independiente de las demás, incluso pueden ser programadas en otro lenguaje y plataforma.

En mi unto de vista falta profundizar el tema o ver ejemplos de aplicaciones reales para entender mejor, creo que aquí aplicar la metodología caso sería genial

⭐️⭐️⭐️⭐️⭐️

🤖🤖🤖
Patrones de arquitectura micro servicio
Son Componentes distribuidos donde cada componentes va a exponer una funcionalidad al resto del sistema. de esta forma modularizamos el sistema a traes de estos ser. independientes.
Los clientes o los mismos servicios consumen estas funcionalidades entre ellos.
Se debe tener comunicación entre ellos, de forma directa o indirecta (bus de eventos).

En el ultimo punto estaba hablando claramente de un api rest.

La verdad esta explicacion esta buena para los que no estan en el curso .
Pero todo esto ya lo habia explicado generalmente que es el microservicio . esta era la clase donde se entraba a detalle

Aquí encontre información clara y complementaria sobre los microservicios https://www.evaluandosoftware.com/que-es-la-arquitectura-de-microservicios/ ojalá les sirva

tengo una duda un microservicio cuando se refiere a una sola funcionalidad se refiere a q es un servicio rest con solo un método para insertar, update o delete ? que basicamente si tenemos 200 funcionalidades en nuestra aplicacion tendremos 200 servicios rest ?

<https://learning.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch04.html#idm46407727599824>

Aquí una explicación adicional a esta arquitectura
https://www.youtube.com/watch?v=9R2hFwIPGnQ