Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Diseño de Sistemas a Gran Escala y Arquitectura de Software
Highest Rated
Rating: 4.8 out of 5(1,569 ratings)
6,931 students

Diseño de Sistemas a Gran Escala y Arquitectura de Software

Llega a arquitecto o a líder técnico aprendiendo diseño de sistemas escalables y arquitectura de software.
Last updated 4/2025
Spanish

What you'll learn

  • Atributos de un sistema software a gran escala.
  • Diseñar sistemas con alta escalabilidad, disponibilidad y fiabilidad.
  • Diseñar sistemas que soporten decenas de millones de usuarios concurrentes.
  • Prepararte para entrevistas de diseño de sistemas (system design).
  • Patrones de Arquitectura Software. Arquitecturas multilayer y multitier, Microservicios, CQRS y Event Sourcing.

Course content

7 sections32 lectures6h 11m total length
  • Introducción al curso11:57
  • Rendimiento9:12
  • Escalabilidad10:55
  • Fiabilidad12:40
  • Mantenibilidad8:36

Requirements

  • Conocimientos básicos de programación y diseño de software.

Description

Como programadores, muchas veces nos centramos demasiado en las funcionalidades de nuestro sistema y no le damos el valor que merece a la escalabilidad y a la disponibilidad .

La mayoría de aplicaciones que utilizamos en nuestro día a día son bastante sencillas en cuanto a funcionalidades. El mayor reto de un programador no es implementar dichas funcionalidades, si no que las mismas funcionen de forma eficiente para decenas de millones de usuarios concurrentes.

En este curso veremos una serie de componentes, técnicas y patrones para construir sistemas con alta escalabilidad, rendimiento, disponibilidad y fiabilidad.


Los contenidos del curso serán los siguientes:

  • Atributos de calidad de un sistema a gran escala. Empezaremos con una introducción viendo la importancia de la arquitectura de software y comentando en detalle los atributos de calidad que todo sistema a gran escala debe tener. Esos son el rendimiento, la escalabilidad, la fiabilidad y la mantenibilidad.

  • Conceptos clave en el diseño de sistemas a gran escala. A continuación, pasaremos a ver una serie de componentes que nos ayudarán a escalar nuestras aplicaciones y servidores. Veremos los Load Balancer o balanceadores de carga, las API Gateway, los Message Brokers, la Caché, los CDN o Content Delivery Network y el despliegue multi data center.

  • Almacenamiento de datos a gran escala. También trataremos en detalle ciertas técnicas para conseguir que nuestro almacenamiento de datos escale bien. Empezaremos viendo los distintos tipos de sistemas de almacenamiento disponibles, comparando los sistemas relacionales con los no relacionales o NoSQL. A continuación, veremos los índices y la desnormalización, y pasaremos a técnicas más complejas como la replicación de datos y el particionado de Base de Datos o sharding. Para finalizar la sección, veremos el teorema CAP.

  • Patrones de Arquitectura Software. Veremos una serie de opciones para organizar nuestro software a más bajo nivel. Comentaremos las arquitecturas multilayer y multitier, la arquitectura orientada a microservicios, el Command Query Responsibility Segregation o CQRS y el Event Sourcing.

  • Ejercicios Prácticos. Para finalizar el curso, aplicaremos todo lo aprendido en las secciones teóricas analizando y diseñando una serie de sistemas a gran escala reales. Propondremos diseños para un acortador de URLs como tinyurl o bitly, un sistema de chat como WhatsApp, Telegram o Facebook Messenger, un E-Commerce como Amazon o Ebay y un sistema de publicaciones cortas como Twitter.


Este curso no sólo te va a ayudar si quieres mejorar tus conocimientos en arquitectura de software y diseño de sistemas. También te ayudará si te estás preparando para pasar entrevistas de system design que piden en muchas empresas a partir de niveles mid o senior.


Quiero recalcar que en este curso no se va a tratar nada de código. El diseño de sistemas y la arquitectura de software es un tema a alto nivel y no depende estrictamente de los lenguajes y las tecnologías usadas, por lo que no tiene sentido incluirlas ni debe estar en el alcance de este curso.


El primer paso ya lo has dado, te has interesado por la Arquitectura de Software y el diseño de sistemas ¡Te animo a unirte a este curso para mejorar como programador!

Who this course is for:

  • Profesionales que quieran aprender sobre la arquitectura de software y el diseño de sistemas.
  • Profesionales que aspiren a posiciones mid-level, senior o superior.
  • Programadores que quieran escalar su sistema a millones de usuarios concurrentes.
  • Personas que estén preparando entrevistas de diseño de sistemas (system design).