Temario del curso
Introducción a los Sistemas Distribuidos
- ¿Qué es un sistema distribuido?
- Desafíos comunes: latencia, consistencia y disponibilidad.
- Visión general de los componentes del sistema y los modelos de comunicación.
Principios de Escalabilidad
- Escala vertical frente a escala horizontal.
- Balanceo de carga y elasticidad.
- Escalado de almacenamiento, computación y E/S.
Patrones Arquitectónicos
- Arquitecturas cliente-servidor y multinivel.
- Arquitecturas orientadas a servicios y de microservicios.
- Arquitectura impulsada por eventos y colas de mensajes.
Teorema CAP y Modelos de Consistencia
- Explicación del teorema CAP.
- Consistencia fuerte frente a consistencia eventual.
- Elegir entre consistencia y disponibilidad.
Estrategias de Distribución y Almacenamiento de Datos
- Particionamiento y fragmentación (sharding).
- Estrategias de replicación y lecturas/escrituras con quórum.
- Bases de datos distribuidas y almacenes de clave-valor.
Comunicación y Coordinación en Sistemas Distribuidos
- REST, gRPC, intermediarios de mensajes (por ejemplo, Kafka, RabbitMQ).
- Elección de líder y consenso distribuido.
- Uso de Zookeeper o etcd para coordinación.
Tolerancia a Fallos y Confiabilidad
- Diseño para fallos y degradación elegante.
- Mecanismos de reintento, tiempos de espera y cortacircuitos.
- Monitoreo, observabilidad e ingeniería del caos.
Prácticas de Implementación Modernas y Nativas de la Nube
- Contenedores, orquestación y Kubernetes.
- Estados sin estado e inmutabilidad.
- Mejores prácticas para la seguridad en sistemas distribuidos.
Resumen y Próximos Pasos
Requerimientos
- Comprensión de conceptos básicos de redes y diseño de sistemas.
- Experiencia en prácticas generales de desarrollo de software.
- Familiaridad con computación en la nube y diseño de APIs, lo cual es útil.
Público Objetivo
- Arquitectos de software y líderes técnicos.
- Ingenieros de backend y profesionales de DevOps.
- Diseñadores de sistemas que construyen aplicaciones escalables en la nube.
Testimonios (3)
Proyecto preparado en el que podríamos trabajar desde el inicio sin perder tiempo configurando archivos innecesarios para los ejercicios. Disposición a responder todas las preguntas planteadas por los participantes.
Robert Walczak - Hitachi Energy
Curso - Systems Modeling with SysML and Enterprise Architect (EA)
Traducción Automática
La presentación del formador y su forma de comunicarse.
Gianpiero Arico - Urmet Spa
Curso - Embedded Linux Systems Architecture
Traducción Automática
Practica ejercicios en EA.
Pawel - Krajowa Szkola Skarbowosci
Curso - UML in Enterprise Architect (workshops)
Traducción Automática