</> CodeBooks
    ← Volver a Arquitectura de software (página 6)
    Portada de Designing Distributed Systems

    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?

    TeóricoPráctico

    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.

    Más de Arquitectura de software con nivel Intermedio