Arquitectura Comparte Nada con Map Reduce
Clase 18 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
Viendo ahora - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
La arquitectura Comparte Nada ofrece una ruta clara para procesar grandes volúmenes de datos sin compartir recursos: cada componente opera con su estado privado y su base de datos privada, evitando bloqueos y casos de contingencia. Esta estrategia mejora la disponibilidad y simplifica decisiones de prioridad al eliminar puntos de unión entre componentes.
¿Qué es la arquitectura comparte nada y cómo reduce la complejidad?
Cuando varios componentes comparten recursos, aumentan las dudas sobre quién tiene prioridad y cómo asegurar la disponibilidad. Comparte Nada propone no compartir nada y así no depender de un punto común. Con esto, cada componente se vuelve autosuficiente: tiene todo lo que necesita para él y solo para él.
- Componentes con estado privado y base de datos privada.
- Únicos consumidores de sus propios datos.
- Sin necesidad de loquear otros recursos.
- Menos casos de contingencia y un proceso optimizado.
¿Cómo se garantiza el aislamiento de componentes?
El aislamiento se logra asegurando que cada componente tenga su propio conjunto de datos y no requiera leer o escribir en los de otros. Así, se evitan bloqueos y esperas.
- Sin puntos de unión entre componentes.
- Independencia de lectura y escritura.
- Acceso exclusivo a la información necesaria.
¿Cómo aplica map reduce el patrón comparte nada?
En map reduce se trabaja con volúmenes muy grandes de datos, por lo que se particionan y se procesan en batches pequeños de forma agrupada y secuencial. Cada partición se asigna a un componente que la procesa de forma independiente.
- Se decide una estrategia de partición de datos.
- Cada componente recibe su porción independiente.
- Nadie más accede a esa porción durante el procesamiento.
¿Qué ejemplo muestra la partición por nombre?
Con tres componentes, se puede dividir la base de usuarios por rangos de letras: de A a I, de J a O y de P a Z. Cada sub-base queda independizada y asignada a su componente.
- Cada componente usa su sub-base para él y solo para él.
- No necesita loquear ni sincronizar con otros.
- Nadie más accede a esos datos en ese momento.
¿Cuántas particiones conviene usar para optimizar?
Cuantas más particiones haya, mayor paralelismo potencial, siempre que no se necesiten datos de otros procesos. Pasar de tres particiones a ocho o veinte puede acelerar el procesamiento si se mantiene el aislamiento.
- Aumento de particiones con independencia garantizada.
- Mejor uso de recursos disponibles.
- Procesamiento más optimizado sin conflictos.
¿Cuándo usar este patrón y qué habilidades necesitas?
Es un patrón muy puntual: no siempre es sencillo diseñar sistemas que no comparten nada, pero cuando el escenario lo permite, aprovecha al máximo los recursos.
- Identificar cuándo compartir recursos añade complejidad innecesaria.
- Definir particiones que no requieran acceso cruzado.
- Garantizar exclusividad de acceso por componente.
- Planificar prioridad y disponibilidad sin puntos de unión.
¿Quieres comentar cómo particionarías tus datos o en qué escenario aplicarías Comparte Nada?