Contents
- 1 Temario para un Curso de Python Orientado a Arquitectura de Software (Python Arquitecto) – 12 Clases de 3 Horas
- 2 Dirigido a
- 3 Objetivos del Curso
- 4 Temario
- 4.1 Clase 1: Rol del Arquitecto y Fundamentos de Arquitectura de Software
- 4.2 Clase 2: Principios de Diseño y Modularidad
- 4.3 Clase 3: Patrones de Diseño en Python
- 4.4 Clase 4: Domain-Driven Design (DDD)
- 4.5 Clase 5: Arquitectura de Microservicios
- 4.6 Clase 6: Mensajería y Sistemas Asíncronos
- 4.7 Clase 7: Gestión de Datos y Bases de Datos
- 4.8 Clase 8: Seguridad en Sistemas Python
- 4.9 Clase 9: Monitoreo y Observabilidad
- 4.10 Clase 10: Escalabilidad y Rendimiento
- 4.11 Clase 11: Despliegue y Entrega Continua
- 4.12 Clase 12: Proyecto Final y Evaluación
- 5 Evaluación del Curso
Temario para un Curso de Python Orientado a Arquitectura de Software (Python Arquitecto) – 12 Clases de 3 Horas
Dirigido a
- Desarrolladores avanzados de Python interesados en evolucionar hacia roles de arquitecto de software.
- Profesionales que diseñan sistemas distribuidos, aplicaciones empresariales, o soluciones escalables utilizando Python.
- Aquellos que desean adquirir experiencia en patrones de diseño, principios de arquitectura y herramientas avanzadas.
Objetivos del Curso
Al finalizar el curso, los estudiantes serán capaces de:
- Diseñar y documentar arquitecturas de software utilizando Python.
- Implementar principios de arquitectura como SOLID y DDD (Domain-Driven Design).
- Diseñar sistemas distribuidos y resilientes con microservicios en Python.
- Integrar herramientas de monitoreo, logging, y tracing en sistemas Python.
- Implementar soluciones avanzadas como APIs, mensajería, y procesamiento paralelo.
- Aplicar estrategias de despliegue, seguridad y mantenimiento de sistemas a gran escala.
Temario
Clase 1: Rol del Arquitecto y Fundamentos de Arquitectura de Software
- ¿Qué es un arquitecto de software?
- Tipos de arquitectura:
- Monolítica, Microservicios, Serverless.
- Introducción a los principios SOLID y patrones de diseño.
- Prácticas: Diseñar un diagrama básico de arquitectura para una aplicación de ejemplo.
Clase 2: Principios de Diseño y Modularidad
- Modularidad y desacoplamiento en Python:
- Uso de módulos y paquetes.
- Diseñar sistemas modulares.
- Separación de responsabilidades con principios SOLID.
- Prácticas: Refactorización de código para cumplir SOLID.
Clase 3: Patrones de Diseño en Python
- Introducción a patrones de diseño:
- Singleton, Factory, Adapter, Observer, Decorator.
- Implementación en Python.
- Prácticas: Diseñar un sistema de notificaciones con patrones.
Clase 4: Domain-Driven Design (DDD)
- Introducción a DDD:
- Entidades, Agregados, Repositorios, Servicios de Dominio.
- Diseño centrado en el negocio.
- Prácticas: Implementar un sistema de pedidos usando DDD.
Clase 5: Arquitectura de Microservicios
- Introducción a microservicios:
- Principios básicos y cuándo usarlos.
- Comunicación entre microservicios (REST vs gRPC vs mensajería).
- Prácticas: Diseñar un sistema de e-commerce basado en microservicios.
Clase 6: Mensajería y Sistemas Asíncronos
- Introducción a colas y mensajería:
- RabbitMQ, Kafka.
- Implementación en Python:
- Uso de
aio_pika,kafka-python.
- Uso de
- Prácticas: Crear un sistema de procesamiento de eventos usando RabbitMQ.
Clase 7: Gestión de Datos y Bases de Datos
- Diseño de bases de datos en arquitecturas modernas:
- Bases de datos relacionales vs no relacionales.
- Integración con ORMs como SQLAlchemy.
- Estrategias de partición y replicación.
- Prácticas: Diseñar y conectar un servicio a una base de datos escalable.
Clase 8: Seguridad en Sistemas Python
- Principios básicos de seguridad:
- Encriptación, autenticación, autorización.
- Implementación de OAuth2 y JWT.
- Seguridad en APIs REST y microservicios.
- Prácticas: Proteger una API con autenticación y autorización.
Clase 9: Monitoreo y Observabilidad
- Introducción a monitoreo:
- Logs estructurados con
structlog. - Tracing distribuido con OpenTelemetry.
- Logs estructurados con
- Herramientas: Prometheus, Grafana.
- Prácticas: Configurar monitoreo en un servicio Python.
Clase 10: Escalabilidad y Rendimiento
- Principios de escalabilidad horizontal y vertical.
- Optimización de código:
- Perfilado con
cProfileyline_profiler.
- Perfilado con
- Uso de cachés como Redis.
- Prácticas: Implementar caching en endpoints críticos.
Clase 11: Despliegue y Entrega Continua
- Contenerización con Docker y Kubernetes.
- Estrategias de CI/CD:
- Integración con GitHub Actions.
- Despliegues Blue-Green y Canary.
- Prácticas: Desplegar un sistema Python en un clúster de Kubernetes.
Clase 12: Proyecto Final y Evaluación
- Desarrollo guiado de un sistema escalable y modular:
- Ejemplo: Plataforma de gestión de usuarios y pedidos.
- Microservicios con mensajería, autenticación y monitoreo.
- Presentación del proyecto y discusión grupal.
- Repaso de conceptos clave.
- Feedback y cierre del curso.
Evaluación del Curso
- Proyectos prácticos: Cada clase incluye ejercicios orientados a problemas reales.
- Proyecto final: Desarrollo de una solución completa para demostrar habilidades adquiridas.
- Retroalimentación personalizada: Durante y al final del curso.
