UNIVERSIDAD PARA EL
DESARROLLO ANDINO -
UDEA
SEMANA 10:
EL DISEÑO DE SOLUCIONES
DE ARQUITECTURA
ING. JHAN CARLO ALVARADO PEREZ
¿Qué es el diseño de soluciones de
arquitectura?
Como todo diseño, es un documento, en cualquier formato. Y como solución de
arquitectura trata de resolver parte del problema de cómo implementar una necesidad
del negocio, centrándose en los aspectos de arquitectura de TI.
Generalmente, la problemática se presenta en el contexto de un proyecto, aunque
puede plantearse en momentos anteriores de análisis de las necesidades u objetivos
del negocio.
Hacer este diseño tiene varias utilidades:
• Es una herramienta para pensar, que permite ordenar y estructurar la problemática o
solución, visualizarla de forma más específica que en la mente, revisar sistemáticamente los
detalles, agregar o quitar información, subir o bajar el nivel de detalle, poner el foco en
determinados puntos…
• Permite optimizar las soluciones, evidenciando las redundancias, sinergias, cuellos de
botella, dependencias, simplificaciones…
• Unifica la visión de la solución, sirviendo de plano de referencia para todos los equipos, en
un formato que se puede compartir y divulgar fácilmente.
• Permite definir claramente la estrategia del proyecto: corto, medio y largo plazo
• Permite realizar análisis de impacto cualitativo y cuantitativo.
• Sirve como base para estimar y valorar los costes de los proyectos de alto nivel en
momentos tempranos del proyecto en los que aún no están claros todos los detalles.
• Permite identificar rápidamente los equipos de trabajo que deben participar en un
proyecto.
• Facilita la estructura del proyecto en partes o fases coherentes y que los participantes
tengan claros los puntos de colaboración.
• Visualiza los escenarios de pruebas end to end de forma intuitiva.
¿Cuándo usarlo?
El diseño va a resultar útil en cualquier momento del ciclo de vida de una iniciativa o
proyecto y, más o menos formalmente, es algo que realmente hacemos todos.
¿Cuándo usarlo?
Las propuestas de los proyectos suelen contener una solución técnica,
generalmente de la arquitectura, que permite explicar fácilmente cómo se
plantea resolver la necesidad, estimar el coste del proyecto o identificar
dependencias con otros equipos.
Este tipo de análisis es similar cuando se trata de la evaluación temprana de
una iniciativa interna de una compañía, cuando valora el desarrollo de una
nueva capacidad o solución de un problema, ayudando a determinar si es
viable y el coste aproximado.
DISEÑO DEL MODELO DE
SOLUCION DE ARQUITECTURA
El diseño del modelo de
solución de arquitectura es
un proceso crítico en el
desarrollo de software, ya
que establece la estructura
y los componentes del
sistema, así como sus
interacciones.
Diseño del Modelo de Solución de
Arquitectura
Definición de Requisitos
• Funcionales: Qué debe
hacer el sistema (ej. gestión
de usuarios, procesamiento
de pagos).
• No funcionales: Cómo debe
comportarse el sistema (ej.
rendimiento, escalabilidad,
seguridad).
Diseño del Modelo de
Solución de Arquitectura
Identificación de Componentes
• Módulos: Dividir el sistema en
módulos o componentes que
cumplan funciones específicas.
• Servicios: Identificar servicios
que pueden ser reutilizados (ej.
servicios de autenticación,
servicios de notificación).
Diseño del Modelo de Solución de
Arquitectura
Selección de Estilo Arquitectónico
• Monolítico: Todo el sistema en
una única aplicación.
• Microservicios: Cada componente
es un servicio independiente.
• Arquitectura en Capas: Separar la
lógica de presentación, negocio y
acceso a datos.
• Event-Driven: Basado en eventos
que desencadenan acciones.
Diseño del Modelo de Solución de
Arquitectura
Definición de Interacciones
• Protocolos de Comunicación: REST, gRPC, WebSockets.
• Flujos de Datos: Cómo fluyen los datos entre los componentes.
Diagramas de Arquitectura
• Diagrama de Componentes: Muestra los componentes y sus
interacciones.
• Diagrama de Despliegue: Representa cómo se despliegan los
componentes en la infraestructura.
Validación y Revisión
• Revisar el modelo con stakeholders para asegurar que cumple con
los requisitos.
EJEMPLO 01
Arquitectura de Microservicios
• Contexto: Una aplicación de comercio electrónico.
• Componentes:
• Servicio de Usuarios: Maneja la autenticación y gestión
de perfiles.
• Servicio de Productos: Gestiona el catálogo de
productos.
• Servicio de Pedidos: Procesa y gestiona los pedidos.
• Servicio de Pagos: Maneja las transacciones de pago.
EJEMPLO 01
• Interacción: Cada servicio se comunica a través de API REST. Los eventos de pedidos
pueden ser enviados a un sistema de mensajería (ej. RabbitMQ) para notificar otros
servicios.
Diagrama de Componentes:
[Servicio de Usuarios] <--> [Servicio de Pedidos] <--> [Servicio de Pagos]
| |
+--> [Servicio de Productos]
EJEMPLO 02:
Arquitectura en Capas
• Contexto: Una aplicación de gestión de
proyectos.
+----------------------------+
• Capas: | Capa de Presentación|
• Capa de Presentación: Interfaz de usuario (web o +----------------------------+
móvil). |
+-------------------------+
• Capa de Negocio: Lógica de negocio que procesa
las solicitudes.
| Capa de Negocio |
+-------------------------+
• Capa de Acceso a Datos: Interactúa con la base |
de datos.
+-----------------------------+
• Interacción: La capa de presentación envía | Capa de Acceso a Datos|
solicitudes a la capa de negocio, que a su vez +-----------------------------+
interactúa con la capa de acceso a datos para
obtener o almacenar información.
Diagrama de Capas:
EJEMPLO 03:
Arquitectura Monolítica
• Contexto: Una aplicación de blog.
• Componentes: +----------------------------+
• Frontend: Interfaz de usuario para | Aplicación |
mostrar y crear publicaciones. | (Frontend + Backend)|
• Backend: Lógica de negocio para manejar
+----------------------------+
publicaciones, comentarios y usuarios. |
+-----------------------+
• Base de Datos: Almacena datos de
| Base de Datos |
publicaciones y usuarios.
+-----------------------+
• Interacción: Todo el código se ejecuta en
un solo servidor, y las interacciones se
realizan a través de llamadas internas.
Diagrama de Monolito:
GRACIAS…