Qué es un patrón de arquitectura

Clase 13 de 43Curso Profesional de Arquitectura de Software

Resumen

Comprende con claridad qué es un patrón de arquitectura, cómo se organizan los patrones monolíticos y las arquitecturas distribuidas, y por qué la gran bola de lodo puede frenar la evolución de sistemas legacy. Aquí encontrarás una guía directa para distinguir conceptos y actuar con criterio.

¿Qué es un patrón de arquitectura y cómo se decide?

Un patrón de arquitectura son decisiones de diseño ya tomadas que definen un esquema, una estructura o un tipo de comunicación entre componentes. Estas decisiones orientan al equipo y evitan el caos al establecer criterios comunes.

  • Define estructura y comunicación entre componentes.
  • Alinea decisiones arquitectónicas importantes.
  • Evita improvisaciones que llevan a sistemas caóticos.

¿Cómo se combinan patrones monolíticos y distribuidos?

Existen dos grandes mundos: patrones monolíticos y arquitecturas distribuidas. Ambos conviven y se pueden combinar.

  • Monolítico: el artefacto se despliega como una sola unidad.
  • Distribuido: cada componente se despliega independientemente; el sistema es un sistema de sistemas.
  • En distribuido, cada componente interno es, en esencia, un componente monolítico.
  • Beneficio clave: un componente puede cambiar sin afectar a los demás.

¿Qué es la gran bola de lodo y por qué aparece?

Cuando el equipo no considera la arquitectura como relevante, el sistema se compone de partes que interactúan y se conocen entre todas. No hay prioridad ni criterios: todo está mezclado. Joseph Yoder llamó a este patrón gran bola de lodo o big ball of mud.

  • Surge por la falta de criterios de arquitectura.
  • Todas las partes se acoplan y se tratan igual.
  • El resultado es caos y dificultad para evolucionar.
  • Es común en aplicaciones legacy y monolitos muy grandes.

¿Cómo trabajar con una gran bola de lodo?

Actuar requiere intención y esfuerzo sostenido. El objetivo: pasar del caos a una mejor arquitectura.

  • Entender los conceptos existentes que están implícitos.
  • Hacer ingeniería inversa de lo que no se decidió ni se modeló.
  • Separar en partes para establecer límites claros.
  • Aceptar el desafío: las empresas que lo logran invierten mucho dinero y recursos para partir el sistema y ofrecer mejor servicio.

¿Qué habilidades y keywords conviene dominar?

Dominar el vocabulario y las prácticas te ayuda a tomar mejores decisiones y a comunicarte con el equipo.

  • Patrones de arquitectura: decisiones de diseño y comunicación entre componentes.
  • Patrones monolíticos: despliegue como una sola unidad.
  • Arquitecturas distribuidas: componentes con despliegue independiente.
  • Sistema de sistemas: componentes que coexisten y pueden cambiar sin afectar a otros.
  • Componente monolítico: unidad interna en esquemas distribuidos.
  • Decisiones arquitectónicas: acuerdos que evitan improvisación y caos.
  • Gran bola de lodo / big ball of mud: sistema sin criterios, acoplado y caótico (Joseph Yoder).
  • Aplicaciones legacy: contexto frecuente de gran bola de lodo.
  • Ingeniería inversa: técnica para reconstruir lo que no se modeló explícitamente.
  • Separar en partes: estrategia para avanzar hacia una mejor arquitectura.
  • Invertir recursos: condición práctica para transformar el sistema y mejorar el servicio.

¿Te has enfrentado a una gran bola de lodo o a la transición de monolítico a distribuido? Comparte tus retos y aprendizajes en los comentarios.

      Qué es un patrón de arquitectura