
Designing Distributed Systems
Brendan Burns
- Editorial
- O'Reilly
- Año
- 2025
- Páginas
- ~220
- Nivel
- Intermedio
De qué trata
Segunda edición actualizada del libro de referencia de Brendan Burns, cofundador de Kubernetes y vicepresidente corporativo en Microsoft Azure. La obra identifica, categoriza y formaliza patrones de diseño reutilizables para el desarrollo de sistemas distribuidos basados en contenedores, sumando en esta edición capítulos dedicados a la inferencia y entrenamiento distribuido de modelos de inteligencia artificial y al diseño de sistemas resilientes en entornos de producción. Está dirigida a desarrolladores backend, ingenieros de confiabilidad de sitios (SRE) y arquitectos de software con experiencia en contenedores Docker y nociones básicas de orquestación con Kubernetes.
El núcleo del libro estructura las arquitecturas distribuidas en tres familias principales de patrones: patrones de nodo único (Single-Node) como Sidecar, Ambassador y Adapter; patrones de servicio multi-nodo para balanceo, sharding de documentos y consultas distribuidas (Scatter/Gather); y patrones de computación por lotes (Batch) como colas de trabajo, flujos dirigidos por eventos y canalizaciones coordinadas. Burns ilustra cada concepto empleando contenedores Docker, manifiestos YAML y controladores de Kubernetes, integrando tecnologías como Nginx, Redis, Apache Kafka, etcd y marcos para el despliegue e inferencia de modelos de aprendizaje automático.
A través de secciones prácticas denominadas 'Hands On', el libro enseña a implementar patrones arquitectónicos resolviendo problemas específicos mediante configuraciones reproducibles de contenedores y servicios. Su gran contribución es dotar a la ingeniería de software de un vocabulario de patrones distribuidos equiparable al que supuso el catálogo de diseño orientado a objetos de GoF, facilitando la modularidad y la reutilización de componentes en la infraestructura moderna. No enseña a programar la lógica de negocio interna ni a montar clústeres bare-metal desde cero, por lo que conviene tener soltura previa en la terminal y en la manipulación de recursos de Kubernetes.
- Kubernetes
- Docker
- Patrones de diseño
- Sidecar
- Ambassador
- Scatter/Gather
- Colas de trabajo
- Inferencia de IA
- Apache Kafka
- Redis
- Microservicios
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✓ Incluye proyectos
Proyectos
Cola de trabajo distribuida para procesamiento de vídeo
Implementación de un sistema de escalado dinámico de workers que toma tareas pendientes y genera miniaturas de vídeo de forma distribuida utilizando contenedores Docker y colas de trabajo en Kubernetes.
Canalización orientada a eventos con Apache Kafka
Flujo de integración desacoplado para el alta y procesamiento de usuarios que conecta receptores, filtros y transformadores mediante contenedores y tópicos de Apache Kafka.
Enrutamiento y particionamiento con embajador Redis
Configuración del patrón Ambassador como proxy local de red en un Pod para fragmentar datos y despachar lecturas y escrituras hacia múltiples instancias de Redis de manera transparente para la aplicación principal.

