Be Software Architecture Wise
Be Wise Apps

Read in English · Lire en français · Auf Deutsch lesen

¿Eres nuevo en el software? Empieza aquí

Una ruta para principiantes

Esta ruta te lleva por los capítulos en orden, del capítulo 0 al capítulo 12, porque cada capítulo se basa en el anterior. Te lleva, en seis etapas, desde ninguna formación técnica hasta el diseño de sistemas con IA, con un método para superar las secciones más difíciles sin quedarte atascado.

La ruta de un vistazo

Orden
Los capítulos en su orden natural, del 0 al 12, agrupados en seis etapas
Tiempo
Unas 40 horas de lectura y 10 horas de video. A cuatro horas por semana, son unos tres meses
Secciones más difíciles
32 secciones están marcadas como Avanzado. En tu primera vuelta, léelas de forma más ligera y vuelve a ellas más adelante
Pruebas
Opcionales. Haz cada prueba del capítulo al terminar el capítulo si quieres el certificado

Cómo estudiar cada sección

  1. Mira la videolecciónCada sección empieza con un video narrado de unos cuatro a seis minutos. Te da la forma general de la idea antes de que leas sobre ella.
  2. Lee “La idea en breve” y “Lo que necesitas saber”La explicación cotidiana y los puntos clave. Si no te quedas con nada más de una sección, quédate con esto.
  3. Consulta “Antes de leer esto”Las secciones más difíciles empiezan con un recuadro que enumera las secciones y términos anteriores en los que se basan. Si alguno es nuevo para ti, vuelve primero a él, o toca un término para ver una definición breve.
  4. Lee el desarrollo completoEn una primera lectura, no pasa nada por leer por encima las tablas detalladas, las fórmulas y los ejemplos de código. Intenta seguir el argumento; los detalles tendrán más sentido en una segunda vuelta.
  5. Prueba “Comprueba lo que has entendido”Responde cada pregunta mentalmente antes de mirar. Si varias respuestas te sorprenden, vuelve a leer los puntos clave de la sección antes de seguir.

Secciones marcadas como Avanzado

Cada sección indica su nivel. Cuando llegues por primera vez a una marcada como Avanzado, mira el video y lee la idea en breve y los puntos clave, y luego sigue adelante. Las secciones posteriores pueden remitir a ella, así que no te la saltes del todo, pero no necesitas dominar todos los detalles en tu primera vuelta. Vuelve a ella cuando hayas terminado la etapa.

El modo principiante y las preguntas de preparación

Cada página de sección tiene un interruptor de modo principiante en la parte superior. Cuando está activado, las tablas, el código y los recuadros “Para profundizar” más técnicos quedan plegados hasta que tocas Mostrar, y cada término que puedes tocar para ver su definición lleva una pequeña marca ?. No se elimina nada, y las pruebas de capítulo también cubren las partes plegadas. Elegir la ruta para principiantes en la página de inicio lo activa; puedes desactivarlo en cualquier página de sección.

A partir del capítulo 1, cada página de capítulo también empieza con cinco preguntas rápidas, “¿Estoy listo para este capítulo?”, sobre las ideas anteriores en las que se basa el capítulo. No se califican ni se guardan: una respuesta incorrecta simplemente te indica qué sección anterior conviene volver a mirar.

Cuando algo no tiene sentido

Un complemento útil. El Glosario del curso ofrece definiciones breves y sencillas de más de 900 términos usados en los capítulos, cada una enlazada al capítulo que la explica. Tenlo abierto en otra pestaña mientras estudias y consulta cualquier palabra nueva para ti.

Etapa 1 · Capítulo 0

Empieza desde cero

El capítulo 0 no da por supuesta ninguna formación técnica. Explica los programas, los datos, las redes, el almacenamiento, las API y la nube: los componentes básicos que todos los capítulos posteriores dan por sabidos. No te lo saltes, aunque algunas partes te resulten familiares.

Capítulo 0: Empieza aquí: cómo funciona el software

Principiante · unas 2½ horas de lectura · 9 videolecciones, unos 45 minutos

Aprenderás a:

  • Explicar qué ocurre, paso a paso, cuando se ejecuta un programa, desde el código fuente hasta el procesador, pasando por el sistema operativo.
  • Distinguir las estructuras de datos habituales y usar la notación O grande (Big-O) para predecir cuánto se ralentiza una operación a medida que crecen los datos.
Las 8 secciones
  1. 0.1 Programas, código y cómo los ejecuta una computadora
  2. 0.2 Datos, estructuras de datos y algoritmos, y por qué la velocidad depende de ellos
  3. 0.3 Funciones, módulos, objetos, interfaces, bibliotecas y frameworks
  4. 0.4 Redes, internet y la web: IP, DNS, HTTP y el modelo cliente-servidor
  5. 0.5 Archivos y bases de datos: almacenamiento relacional y no relacional, consultas y transacciones
  6. 0.6 Las API, JSON y cómo trabajan juntos sistemas separados
  7. 0.7 Servidores, sistemas operativos, máquinas virtuales, contenedores y servicios en la nube
  8. 0.8 Requisitos, control de versiones, pruebas, entrega y el recorrido de una solicitud

Etapa 2 · Capítulos 1 y 2

Para qué sirve la arquitectura

El capítulo 1 explica qué es la arquitectura de software y por qué importan sus decisiones. El capítulo 2 convierte objetivos vagos como “rápido” y “seguro” en requisitos precisos. Juntos te dan el vocabulario para todo lo que sigue.

Capítulo 1: Qué es la arquitectura de software

De principiante a intermedio · unas 2½ horas de lectura · 9 videolecciones, unos 44 minutos

Aprenderás a:

  • Explicar las definiciones de arquitectura de software de ISO/IEC/IEEE 42010:2022 y del SEI, y las ideas que comparten.
  • Distinguir las estructuras de módulos, de componentes y conectores y de asignación, y una arquitectura de su descripción.
Las 8 secciones
  1. 1.1 Qué es la arquitectura de software: las definiciones estándar y lo que tienen en común
  2. 1.2 Arquitectura, diseño y código: significancia, alcance y niveles
  3. 1.3 Por qué importa la arquitectura: costo del cambio, calidad, riesgo y fallos reales
  4. 1.4 Qué hace un arquitecto: responsabilidades, habilidades y tipos de arquitecto
  5. 1.5 Las partes interesadas, sus inquietudes y cómo las atiende la arquitectura
  6. 1.6 Decisiones arquitectónicas y compromisos: reversibilidad y momento oportuno
  7. 1.7 Deuda técnica, erosión y deriva de la arquitectura
  8. 1.8 La arquitectura a lo largo del ciclo de vida: arquitectura inicial, emergente y continua

Capítulo 2: Atributos de calidad y requisitos arquitectónicamente significativos

Intermedio · unas 3 horas de lectura · 9 videolecciones, unos 45 minutos

Aprenderás a:

  • Distinguir los requisitos funcionales, los atributos de calidad y las restricciones, y reconocer un requisito arquitectónicamente significativo.
  • Usar el modelo de calidad del producto de ISO/IEC 25010:2023 como lista de comprobación sin dejar que se convierta en papeleo.
Las 8 secciones
  1. 2.1 Requisitos funcionales, atributos de calidad y restricciones
  2. 2.2 Los modelos de calidad: ISO/IEC 25010 y cómo usarla
  3. 2.3 Escribir escenarios de atributos de calidad que se puedan probar
  4. 2.4 Rendimiento y escalabilidad: latencia, rendimiento (throughput), percentiles y carga
  5. 2.5 Disponibilidad y fiabilidad: nueves, MTBF, MTTR y tolerancia a fallos
  6. 2.6 Modificabilidad, capacidad de prueba y desplegabilidad: diseñar para el cambio
  7. 2.7 Seguridad, usabilidad, interoperabilidad, costo y sostenibilidad como cualidades
  8. 2.8 Elicitación, priorización y compromisos entre atributos de calidad

Etapa 3 · Capítulos 3 y 4

Una buena estructura y cómo describirla

El capítulo 3 presenta los principios que hay detrás de una buena estructura, como la modularidad y el acoplamiento. Saber leer un poco de código ayuda aquí, pero no es imprescindible. El capítulo 4 muestra cómo los arquitectos dibujan y registran sus diseños; sus diagramas y registros de decisiones aparecen en todo el resto del curso.

Capítulo 3: Principios y fundamentos de diseño

Intermedio · unas 3 horas de lectura · 9 videolecciones, unos 46 minutos

Aprenderás a:

  • Explicar el criterio de Parnas para descomponer un sistema en módulos y aplicarlo para comparar dos descomposiciones candidatas.
  • Clasificar las dependencias con los niveles clásicos de acoplamiento y cohesión, e identificar el acoplamiento temporal, de despliegue y semántico entre servicios.
Las 8 secciones
  1. 3.1 Modularidad: dividir un sistema en partes
  2. 3.2 Acoplamiento y cohesión
  3. 3.3 Ocultación de información, abstracción e interfaces
  4. 3.4 Gestionar las dependencias: dirección, ciclos y estabilidad
  5. 3.5 Los principios SOLID aplicados a los componentes
  6. 3.6 Connascence: una medida más fina del acoplamiento
  7. 3.7 La ley de Conway y la forma de las organizaciones
  8. 3.8 Simplicidad, reversibilidad y medición de la estructura

Capítulo 4: Documentar y comunicar la arquitectura

Intermedio · unas 3 horas de lectura · 9 videolecciones, unos 46 minutos

Aprenderás a:

  • Explicar quién lee la documentación de arquitectura, qué necesita cada lector y cómo decidir qué merece la pena dejar por escrito.
  • Distinguir las partes interesadas, las inquietudes, los puntos de vista, las vistas y los tipos de modelo tal como los define ISO/IEC/IEEE 42010:2022.
Las 8 secciones
  1. 4.1 Por qué y cuánto documentar
  2. 4.2 Vistas y puntos de vista: ISO/IEC/IEEE 42010, 4+1 y Rozanski y Woods
  3. 4.3 El modelo C4: contexto, contenedores, componentes y código
  4. 4.4 Los diagramas UML que los arquitectos todavía usan
  5. 4.5 Registros de decisiones de arquitectura (ADR)
  6. 4.6 arc42 y otras plantillas de documentación
  7. 4.7 Diagramas como código y cómo mantener la documentación al día
  8. 4.8 Comunicar la arquitectura a distintos públicos

Etapa 4 · Capítulos 5 y 6

Estilos arquitectónicos

El capítulo 5 trata los sistemas que se construyen y despliegan como una sola unidad. El capítulo 6 lleva las mismas preguntas a través de una red, donde todo se complica; es el primer capítulo que la mayoría de los principiantes encuentra exigente, así que tómatelo con calma.

Capítulo 5: Estilos arquitectónicos I: monolitos y diseños modulares

Intermedio · unas 3 horas de lectura · 9 videolecciones, unos 45 minutos

Aprenderás a:

  • Distinguir estilos arquitectónicos, patrones, tácticas y arquitecturas de referencia, y explicar por qué las restricciones de un estilo producen sus cualidades.
  • Comparar el particionamiento técnico y el particionamiento por dominio, y predecir cómo afecta cada uno al costo de un cambio típico y a la organización de los equipos.
Las 8 secciones
  1. 5.1 Estilos, patrones y tácticas arquitectónicos
  2. 5.2 Arquitectura en capas
  3. 5.3 El monolito modular
  4. 5.4 Tuberías y filtros y arquitecturas de pipeline
  5. 5.5 Arquitecturas de microkernel y de plug-ins
  6. 5.6 Arquitectura hexagonal, de cebolla y limpia
  7. 5.7 Diseño estratégico guiado por el dominio: contextos delimitados y mapas de contextos
  8. 5.8 Cuándo un monolito es la respuesta correcta

Capítulo 6: Estilos arquitectónicos II: sistemas distribuidos

De intermedio a avanzado · unas 3½ horas de lectura · 9 videolecciones, unos 48 minutos

Aprenderás a:

  • Explicar las razones legítimas para distribuir un sistema y los costos que conlleva cada una.
  • Describir las ocho falacias de la computación distribuida y el fallo parcial, y diseñar respuestas a ellos.
Las 8 secciones
  1. 6.1 Por qué distribuir y las falacias de la computación distribuida
  2. 6.2 Arquitectura basada en servicios y arquitectura orientada a servicios
  3. 6.3 Microservicios: principios, beneficios y costosAvanzado: primera lectura más ligera
  4. 6.4 Arquitectura dirigida por eventos: brokers, mediadores y flujos de eventosAvanzado: primera lectura más ligera
  5. 6.5 Comunicación síncrona y asíncrona: REST, gRPC, GraphQL y mensajería
  6. 6.6 Modelos de consistencia, CAP y PACELCAvanzado: primera lectura más ligera
  7. 6.7 Transacciones distribuidas, sagas y el patrón de bandeja de salida (outbox)Avanzado: primera lectura más ligera
  8. 6.8 Arquitecturas serverless y basadas en espacios

Etapa 5 · Capítulos 7 a 9

Datos, seguridad y mantener los sistemas en marcha

Estos tres capítulos tratan lo que hace difíciles los sistemas reales: quién es el propietario de los datos y cómo se mantienen correctos, cómo se protege el sistema y cómo se mantiene rápido y disponible bajo presión. Cada uno se basa en el capítulo 6.

Capítulo 7: Arquitectura de datos

De intermedio a avanzado · unas 3½ horas de lectura · 9 videolecciones, unos 47 minutos

Aprenderás a:

  • Explicar por qué una base de datos compartida acopla los servicios, y asignar la propiedad de los datos, incluidos los casos en que varios servicios escriben los mismos datos.
  • Elegir una base de datos para cada conjunto de datos según la forma de los datos, los patrones de acceso, las necesidades de consistencia, la escala, las operaciones y las habilidades del equipo, y justificar el costo de cada almacén adicional.
Las 8 secciones
  1. 7.1 Propiedad de los datos y base de datos por servicio
  2. 7.2 Elegir una base de datos: relacional, documental, clave-valor, de columnas, de grafos y de series temporales
  3. 7.3 Transacciones, ACID y niveles de aislamientoAvanzado: primera lectura más ligera
  4. 7.4 Replicación, particionamiento y shardingAvanzado: primera lectura más ligera
  5. 7.5 CQRS y event sourcingAvanzado: primera lectura más ligera
  6. 7.6 Estrategias de caché y sus trampas
  7. 7.7 Evolución de esquemas, migraciones y compatibilidad
  8. 7.8 Analítica, streaming, almacenes de datos, lagos de datos y data meshAvanzado: primera lectura más ligera

Capítulo 8: Seguridad, privacidad y cumplimiento desde el diseño

De intermedio a avanzado · unas 3 horas de lectura · 9 videolecciones, unos 48 minutos

Aprenderás a:

  • Aplicar la tríada CIA, los principios de diseño de Saltzer y Schroeder, la defensa en profundidad y los valores predeterminados seguros a las decisiones arquitectónicas, y explicar de qué son responsables los arquitectos en un ciclo de vida de desarrollo seguro.
  • Modelar las amenazas de un diseño con un diagrama de flujo de datos con límites de confianza, STRIDE y árboles de ataque, y valorar y registrar los riesgos y las mitigaciones resultantes.
Las 8 secciones
  1. 8.1 Principios de seguridad para arquitectos
  2. 8.2 Modelado de amenazas: STRIDE, árboles de ataque y diagramas de flujo de datos
  3. 8.3 Identidad y acceso: autenticación, autorización, OAuth 2.0 y OpenID ConnectAvanzado: primera lectura más ligera
  4. 8.4 Cifrado, gestión de claves y secretosAvanzado: primera lectura más ligera
  5. 8.5 Comunicación segura y zero trustAvanzado: primera lectura más ligera
  6. 8.6 Seguridad de la cadena de suministro de software
  7. 8.7 Privacidad desde el diseño y el RGPD (GDPR)
  8. 8.8 Seguridad en operación: logging, detección y respuesta

Capítulo 9: Rendimiento, escalabilidad, resiliencia y operabilidad

De intermedio a avanzado · unas 3½ horas de lectura · 9 videolecciones, unos 45 minutos

Aprenderás a:

  • Elegir entre el escalado vertical y el horizontal y entre los ejes X, Y y Z del cubo de escalado, y dimensionar una flota para un pico conocido con la ley de Little y un margen de capacidad (headroom).
  • Seleccionar señales y ajustes de autoescalado que eviten el retraso y el flapping (oscilación), y explicar por qué la CPU suele ser la métrica equivocada.
Las 8 secciones
  1. 9.1 Estrategias de escalado: vertical, horizontal y el cubo de escalado
  2. 9.2 Balanceo de carga, ausencia de estado y sesiones
  3. 9.3 Asincronía, colas y back pressure
  4. 9.4 Timeouts, reintentos, circuit breakers, bulkheads y degradación eleganteAvanzado: primera lectura más ligera
  5. 9.5 SLI, SLO, SLA y presupuestos de errores
  6. 9.6 Observabilidad: logs, métricas y trazas
  7. 9.7 Planificación de capacidad y pruebas de rendimientoAvanzado: primera lectura más ligera
  8. 9.8 Ingeniería del caos, incidentes y aprendizaje sin culpas

Etapa 6 · Capítulos 10 a 12

Nube, gobernanza e IA

La última etapa trata las plataformas en la nube en las que se ejecutan los sistemas, cómo se juzgan y gobiernan las arquitecturas a lo largo del tiempo, y cómo se aplica todo ello a los sistemas construidos en torno a modelos de IA. Los capítulos 11 y 12 se apoyan en todo el curso, así que déjalos para el final.

Capítulo 10: Arquitectura nativa de la nube y de infraestructura

De intermedio a avanzado · unas 3 horas de lectura · 9 videolecciones, unos 47 minutos

Aprenderás a:

  • Comparar IaaS, CaaS, PaaS, FaaS y SaaS y los modelos de despliegue, y asignar responsabilidades para una carga de trabajo según el modelo de responsabilidad compartida.
  • Explicar cómo Kubernetes mantiene un estado deseado declarado mediante su plano de control, sus nodos y sus bucles de reconciliación, configurar requests, limits y sondas, y juzgar cuándo Kubernetes es excesivo.
Las 8 secciones
  1. 10.1 Modelos de servicio y de despliegue en la nube
  2. 10.2 Contenedores y orquestación con KubernetesAvanzado: primera lectura más ligera
  3. 10.3 La aplicación de doce factores y los principios nativos de la nube
  4. 10.4 Infraestructura como código e infraestructura inmutableAvanzado: primera lectura más ligera
  5. 10.5 Pipelines de CI/CD y estrategias de despliegue
  6. 10.6 Multirregión, recuperación ante desastres y edge computingAvanzado: primera lectura más ligera
  7. 10.7 Ingeniería de plataformas y plataformas internas para desarrolladores
  8. 10.8 FinOps, arquitectura de costos y dependencia del proveedor (lock-in)

Capítulo 11: Evaluación, toma de decisiones y gobernanza

Avanzado · unas 3½ horas de lectura · 9 videolecciones, unos 47 minutos

Aprenderás a:

  • Explicar cuándo y por qué evaluar una arquitectura, y aplicar los nueve pasos del ATAM para obtener riesgos, no riesgos, puntos de sensibilidad, puntos de compromiso y temas de riesgo.
  • Facilitar revisiones ligeras como el risk-storming y los pre-mortems, y convertir sus resultados en un registro de riesgos con responsables.
Las 8 secciones
  1. 11.1 Evaluación de la arquitectura y el ATAMAvanzado: primera lectura más ligera
  2. 11.2 Revisiones ligeras y risk-stormingAvanzado: primera lectura más ligera
  3. 11.3 Funciones de aptitud y arquitectura evolutivaAvanzado: primera lectura más ligera
  4. 11.4 Gobernanza de la arquitectura en organizaciones ágilesAvanzado: primera lectura más ligera
  5. 11.5 Team Topologies y diseño sociotécnicoAvanzado: primera lectura más ligera
  6. 11.6 Modernizar sistemas heredados: strangler fig y migración incrementalAvanzado: primera lectura más ligera
  7. 11.7 Liderazgo, influencia y toma de decisionesAvanzado: primera lectura más ligera
  8. 11.8 Ética, sostenibilidad y el caso de negocioAvanzado: primera lectura más ligera

Capítulo 12: Arquitectura de sistemas con IA

Avanzado · unas 4 horas de lectura · 9 videolecciones, unos 48 minutos

Aprenderás a:

  • Explicar cómo se entrenan y sirven los modelos de aprendizaje automático y los modelos de lenguaje grandes, y qué significan los tokens, las ventanas de contexto, el muestreo, los embeddings y las alucinaciones para el diseño de un sistema.
  • Elegir dónde debe ejecutarse un modelo y cómo se le llama, y diseñar un gateway de IA, el enrutamiento de modelos, cascadas, escaleras de alternativas (fallback ladders) y revisión humana para un conjunto dado de requisitos.
Las 8 secciones
  1. 12.1 Aprendizaje automático y modelos de lenguaje grandes para arquitectosAvanzado: primera lectura más ligera
  2. 12.2 Dónde encajan los modelos en una arquitecturaAvanzado: primera lectura más ligera
  3. 12.3 Generación aumentada por recuperación y búsqueda vectorialAvanzado: primera lectura más ligera
  4. 12.4 Agentes, uso de herramientas y orquestaciónAvanzado: primera lectura más ligera
  5. 12.5 Evaluación y pruebas de sistemas con IAAvanzado: primera lectura más ligera
  6. 12.6 Guardrails, seguridad (safety) e inyección de promptsAvanzado: primera lectura más ligera
  7. 12.7 Costo, latencia y LLMOpsAvanzado: primera lectura más ligera
  8. 12.8 Gobernanza de datos, IA responsable y el Reglamento de IA de la UEAvanzado: primera lectura más ligera

Después del capítulo 12

Si has hecho las pruebas de capítulo por el camino, el examen final y el caso práctico de arquitectura se abren cuando hayas superado las trece. Acerca del curso explica cómo funcionan. Si ya trabajas con software, la ruta para estudiantes con experiencia sigue los mismos capítulos a un ritmo más rápido.

Empieza por el capítulo 0Explorar los capítulos